一:Java 概述
**一、简介**
1. 定义:Java 是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。应用在桌面应用程序、Web应用程序、分布式系统和嵌入式系统等领域。
2. 发展历程
1. 1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。
2. 1999年6月,Sun公司发布了第二代Java平台(简称为Java2)的3个版本:J2ME(Java2 Micro Edition,Java2平台的微型版),应用于移动、无线及有限资源的环境;J2SE(Java 2 Standard Edition,Java 2平台的标准版),应用于桌面环境;J2EE(Java 2Enterprise Edition,Java 2平台的企业版),应用于基于Java的应用服务器。Java 2平台的发布,是Java发展过程中最重要的一个里程碑,标志着Java的应用开始普及。
3. 2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。
4. 2007年3月起,全世界所有的开发人员均可对Java源代码进行修改。
5. 2009年,甲骨文公司宣布收购Sun。2014年,甲骨文公司发布了Java8正式版
二、编程开发
1. 开发环境
1. JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK [13] 。
2. JRE(JAVA Runtime Environment)是JavaSE API子集和Java虚拟机这两部分的统称,是支持Java程序运行标准环境。JDK默认集成JRE,但是运行普通Java程序只需安装JRE。
2. 开发工具
1. Eclipse:一个开放源代码的、基于Java的可扩展开发平台。
2. NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。
3. IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
4. MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境
三、特点
1. 简单性:Java 摒弃了C++的操作符过载、多继承特征、结构和指针,能够自动处理对象的引用和间接引用。
2. 面向对象:Java 是一个面向对象的语言。类(class)是数据和操作数据的方法的集合,数据(data)和方法(method)一起描述对象(object)的状态和行为。除此之外Java还可以使用各种程序包(Package)。
3. 分布性:Java 程序编译一次即可到处运行。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
4. 编译和解释性:Java 编译程序最终生成字节码(byte-code)文件,而不是通常的机器码,可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
5. 稳健性:Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
6. 安全性:Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。Java运行系统使用字节码验证过程来保证装载到网络上的代码不违背任何Java语言限制。
7. 可移植性:Java 使得语言声明不依赖于实现的方面,Java 环境本身对新的硬件平台和操作系统是可移植的。
8. 高性能:Java 字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。
9. 多线程:Java 是多线程语言,它提供支持多线程的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。
10. 动态性:Java 语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。
四、学习路线