Java 简介
Java是Sun Microsystems于1995年5月推出,面向对象程序设计语言和Java平台的总称
Java三个体系
JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)
主要特性
Java语言简单
Java语法与C语言和C++语言接近。Java丢弃C++很少使用的、难理解、令人迷惑的特性,如操作符重载、多继承、自动的强制类型转换。Java语言不使用指针,而是引用。提供自动的废料收集,程序员不必为内存管理而担忧。
Java语言面向对象
Java语言提供类、接口和继承等面向对象的特性,只支持类之间的单继承,支持接口之间的多继承,支持类与接口之间的实现机制(关键字为implements)。Java语言动态绑定,C++语言只对虚函数使用动态绑定。Java语言纯的面向对象程序设计语言
Java语言分布式
Java语言支持Internet应用开发,Java应用编程接口中有网络应用编程接口(java net),网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
Java语言健壮
Java强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的保证。指针的丢弃是Java明智选择。Java安全检查机制使Java健壮
Java语言安全
Java网络环境中,提供安全机制防恶意攻击。Java对网络下载类有安全防范机制(类ClassLoader),分配不同的名字空间以防替代本地的同名类、字节代码检查,安全管理机制(类SecurityManager)让Java应用设置安全哨兵
Java语言体系结构中立
Java程序在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),在实现Java平台的任何系统中运行。适合异构的网络环境和软件分发
Java语言可移植
可移植性来源于体系结构中立性,Java规定各基本数据类型的长度。Java强可移植性,Java编译器用Java实现,Java运行环境ANSI C实现
Java语言解释型
Java程序在Java平台上被编译为字节码格式,实现Java平台的任何系统中运行。Java平台的Java解释器对字节码解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
Java高性能
Java的运行速度随着JIT(Just-In-Time)编译器技术接近于C++
Java语言多线程
Java语言线程由Thread类或其子(孙)类来创建。两种方法创建线程:其一,用型构为Thread(Runnable)的构造子类将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。Thread类已经实现了Runnable接口,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
Java语言动态
Java语言适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,可网络载入所需要的类。利于软件的升级。Java类有运行时刻的表示,能进行运行时刻的类型检查。
Java开发工具
Java语言 系统内存在1G以上
Linux 系统、Mac OS 系统、Windows 95/98/2000/XP,WIN 7/8系统
Java JDK 7、8 //www.oracle.com/technetwork/cn/java/javase/downloads/index.html
Notepad 编辑器或 其他编辑器 https://notepad-plus-plus.org/
IDE:Eclipse http://www.eclipse.org/downloads/
文人墨客
首先要明确一下两个概念上的区别:JDK、SDK。
SDK——soft development kit,软件开发工具包。sdk是一个大的概念,比如开发安卓应用,你需要安卓开发工具包,叫 android sdk,比如你开发java程序,需要用到java sdk,所以一般使用sdk这个概念,你需要在前面加上限定词。
JDK——可以理解为 java sdk,它是编写java程序,使用到的工具包,为程序员提供一些已经封装好的 java 类库。
文人墨客
补充下面向对象程序设计的 3 个主要特征:封装性、继承性、多态性。
封装性(encapsulation):封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有哪些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象的使用者分开,使用者不必知晓其行为实现的细节,只须用设计者提供的消息来访问该对象。
继承性:继承性是子类共享其父类数据和方法的机制。它由类的派生功能体现。一个类直接继承其他类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一个子类有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类的对象中的数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。
多态性:对象根据所接收的消息而做出动作。同一消息被不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:同样是 run 方法,飞鸟调用时是飞,野兽调用时是奔跑。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在 OOPL 中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。
文人墨客
在正式学习java并安装配置开发环境之前,有必要了解一些有关Java的专业术语:
JRE 与 Server JRE 区别, 以下是官网中的说明:
Software Developers: JDK (Java SE Development Kit). For Java Developers. Includes a complete JRE plus tools for developing, debugging, and monitoring Java applications.
Administrators running applications on a server: Server JRE (Server Java Runtime Environment) For deploying Java applications on servers. Includes tools for JVM monitoring and tools commonly required for server applications, but does not include browser integration (the Java plug-in), auto-update, nor an installer.
文人墨客
Java语言其实是有个曾用名的~叫Oak,而且起这个名字的时候也是很随心的,只是因为看到了窗口外的一颗橡树(只是因为面向窗外多看了你一眼~),所以就叫为Oak,但Oak这个名字已经被注册。最后他们以Java这个名字命名了这个语言,据说是Sun公司的程序猿们都很喜欢喝咖啡,而且对爪哇岛的一种咖啡印象很深,所以就有了Java这个经典的名字和咖啡的图标。
"I named Java," said Kim Polese, then the Oak product manager and now CEO of Marimba Inc. "I spent a lot of time and energy on naming Java because I wanted to get precisely the right name. I wanted something that reflected the essence of the technology: dynamic, revolutionary, lively, fun. Because this programming language was so unique, I was determined to avoid nerdy names. I also didn't want anything with 'Net' or 'Web' in it, because I find those names very forgettable. I wanted something that was cool, unique, and easy to spell and fun to say.yin'yong