Java的历史可以追溯到1991年,源自PatrickNaughton和JamesGosling领导的一个SUN公司工程师小组的项目。SUN公司在1996年早期发布了Java第1版。多年来,SUN公司对Java产品不断改进升级,使之紧跟时代步伐,满足了日益复杂的软件开发需求。
Java是一种高级的、严格检查数据类型的、面向对象的程序设计语言,还是一种平台无关的、健壮的和安全的程序设计语言。Java具有下面所列的特点:
(1)、简单性。Java的风格类似C和C++,与C语言的语法很相似,但丢弃了C和C++中那些比较难懂的内容,如指针、操作符重载、自动强制类型转换等。对于熟悉C语言的程序员来说,是非常容易掌握Java语言的。Java提供了内存自动回收处理机制,使得程序员再不用fe心内存管理的问题。
(2)、面向对象。面向对象是一种新的程序设计范型。它从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能地运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关性弱,并且没有对应关系的其他概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。Java是纯面向对象的语言,提供了类、接口和继承等面向对象的特性。为了使用时能够更简单,Java只支持类直接的单继承和接口之间的多继承,并且也支持类与接口之间的实现机制。
(3)、分布式。Java支持Internet开发,强调网络特性,内置TCP/IP、HTTP和FTP协议库,便于开发网络应用程序;提供网络应用程序的类库,包括URL、URLConnection、Socket、ServerSocket等;Java的RMI(远程方法激活)机制也是开发分布式应用的重要方法。
(4)、健壮性。Java的健壮性体现在安全检查机制、垃圾回收机制、异常处理、强类型机制等方面。除了在运行时的错误检査外,Java还提供了广泛的编译时异常检查,以便尽早发现可能存在的错误。
(5)、安全性。Java的安全性可以从两方面得到保证。一方面,在Java语言中,指针和内存释放等C++中的功能被删除,避免了非法操作内存。另一方面,当用Java创建浏览器时,可以将语言功能和一些浏览器本身提供的功能结合起来,使Java更安全。Java可以防止被恶意代码攻击,因为它具有安全防范机制ClassLoder类、安全管理机制SecurityManager类等。
(6)、平台无关性。平台无关性指的是在不同的平台上,程序都可以运行。Java的运行
环境是用ANSIC实现的,所以具有很强的移植性,可以在不同的操作系统平台上运行。Java编译器将Java程序编译成二进制代码,即字节码。字节码有统一格式,不依赖于具体的硬件环境。
平台无关性包括源代码级和目标代码级两种类型。C/C++属于源代码级与平台无关,意味着它编写的应用程序不用修改,只需要重新编译就可以在不同平台上运行。Java属于目标代码级与平台无关,主要靠Java虚拟机(JavaVirtualMachine,JVM)来实现。JVM是可运行Java字节码文件的虚拟计算机。所有平台上的JVM向编译器提供相同的编程接口。而编译器只需要面向JVM,生成JVM理解的代码即可,然后由JVM来解释执行,从而提高了执行效率。
(7)、解释性。Java程序在自己的平台上被编译,并生成一种与平台无关的字节码(也就文件)。生成的字节码经过了优化,因此运行速度快,克服了以往解释性语言运行效率低的缺点。运行时,Java平台上的解释器对这些字节码进行解释执行,执行过程中需要的类在连接阶段被载入到运行环境中。Java解释器1秒钟可以调用300000个过程,解释目标代码的速度与C/C++基本没有什么区别。负责解释执行字节码文件的是Java虚拟机。可以说,Java语言既具有解释性语言的特征,又具有编译性语言的特征。
(8)、高性能。在所有解释性语言中,Java的运行速度比较高,已经接近C++。
(9)、多线程。程序同时处理多个任务就称为多线程oC/C++都具有多线程的特点。Java的多线程具有并发性,执行效率高。
(10)、动态性。动态性好的软件升级容易。Java程序中需要的类可以动态载入到运行环境,也可以通过网络载入需要的类。