目录
1.1 Java语言诞生与发展
1.2 Java语言的特点
1.3 运行机制与虚拟机
1.1 Java语言诞生与发展
Java语言的诞生最早可以追溯至1991年,那时称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境,其最初目的只是为了开发一种独立于平台的软件技术。
1994年,开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。
1995年,SUN公司正式推出Java,并快速引发了全球范围内的Java开发与应用的热潮。
1996年1月,Sun公司正式发布了Java开发工具包(Java Development Kit)JDK 1.0,其中包括两大部分:运行环境和开发工具。
1998年12月,Sun公司隆重发布了JDK 1.2,标志着Java2平台的诞生。在Java 1.2版以后将JDK 1.2改名为J2SDK,将Java改名为Java 2,并推出了备受业界追捧的Swing组件库。
1999年,Sun公司推出了以Java2为核心的J2EE、J2SE和J2ME三大平台。随着三大平台的迅速推进,全球形成了一股巨大的Java应用浪潮。
2000年5月,Sun公司推出J2SE1.3,丰富了已有的API并加强对新API的拓展;
2002年2月,Sun公司发布J2SE1.4,它是J2SE第一个参与了 Java共同体过程(JCP)的J2SE版本。Borland、Compaq、Symbian、IBM等公司参与共同体规范定制;
2004年10月,Sun公司隆重发布J2SE5.0,J2SE的这次变更之重大和意义之深远,无论在成熟度、稳定性、可伸缩性、安全性上都有大幅度提升,市场的反应证明它的确值得升级为J2SE 5.0。
2009年4月,著名的甲骨文公司(财团)收购SUN公司,次年发布了对Sun各项业务的整合规划,Java平台的发展迎来新的飞跃。
1.2 Java语言的特点
(1)Java语言是简单的
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
(2)Java语言是面向对象的
Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯面向对象程序设计语言。
( 3)Java语言是分布式的
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、 ServerSocket等。
(4)Java语言是健壮的
Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
(5)Java语言是跨平台的
Java语言具有跨平台性,且提出了“一次编译、随处运行”的口号,这是因为Java源文件(.java)在Java平台上被编译为体系结构中立的字节码格式(.class), 然后可以在实现这个Java平台(装有JVM)的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
(6)Java语言是可移植的
Java的可移植性源于其跨平台性,此外Java还严格规定了各个基本数据类型的长度,它们在不同的机型上都保持固定的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
(7)Java语言是多线程的
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制。
1.3 运行机制与虚拟机
Java程序最大特点就是“一次编译,随处运行”,其实现的核心就是Java虚拟机(Java Virtual Machine, JVM),它是java实现跨平台的最核心的部分。
所有的Java程序会首先经Java编译器被编译为一种与平台无关的字节码文件(.class格式),该文件不能被直接执行,必须经过由JVM负责的特定解释操作,生成可以被各类本地平台所识别的机器码指令后才能被执行,如图所示。