Java语言之所以流行起来,并长久不衰的原因是得益于Java有很多优秀的关键特点这些特点包括:简单,面对对象,分布式,结构中立,可移植,解释执行,健壮,安全,高性能,多线程和动态。
简单
Java的设计目标就是方便学习,使用简单。由于当时C++程序员很多,介绍C++的书籍也很多,所以Java语言的设计风格类似C++语言风格,但Java摈弃了C++中容易引发程序错误的地方。(如:指针,内存管理,运算符重载,多继承等)一方面可以让C++程序员快速迁移到Java,另一方面没有编程基础的人也能很快的学会Java。
面对对象
面对对象是Java的最重要的特性。Java是彻底的,纯粹的面对对象语言,在Java中可以说“一切皆对象”。Java完全具备面对对象的三个基本特性:封装性,继承性,多态性。其中封装性实现了模块化和信息隐藏,继承性实现了代码的复用,用户可以实现自己的类库,而且Java采用的是相对简单的面对对象技术去掉了多继承等复杂概念,只支持单继承。
分布式
Java就是为分布式系统设计的。JDK(Java Development Kits,Java开发工具包)中包含了支持HTTP和FTP等基于TCP/IP协议的类库。Java程序可以通过URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
结构中立
Java需要在很多不同网络设备中运行,这些设备中有很多不同的计算机和操作系统,为了能使Java程序在网络任何地方运行,Java编译器编译生成了与机器结构(cpu和操作系统)无关的字节码(byte-code)文件。任何种类的计算机只要可以运行Java虚拟机,字节码就可以在此计算机上运行。
可移植
体系结构中立也使Java程序具有可移植性,针对不同CPU和操作系统,Java虚拟机拥有不同的版本,这样就可以保证Java字节码可以移植在多个不同的平台上运行。
解释执行
为实现跨平台,Java设计成解释执行的,既Java源代码文件首先被编译为字节码文件,这些字节码本身包含很多编译时生成的信息,在运行的时候Java解释器将字节码解释成特定的机器码进行运行。
健壮
Java语言是强类型语言,它在编译时进行代码检查,使得很多错误能够在编译时被发现,不至于在运行时发生而导致系统崩溃。Java摈弃了C++中的指针操作,指针是一种很强大的技术,能够直接访问内存单元,但同时也很复杂,如果指针操作不好会导致内存分配错误,内存泄漏等问题,而Java中就不会出现因为指针导致的问题,内存管理方面C/C++等语言采用手动分配和释放经常会导致内存泄漏,从而导致系统崩溃而Java采用自动内存垃圾回收机制,程序员不需要管理内存从而减少内存错误的发生,提高了程序的健壮性。
安全
在Java执行过程中,类装载器负责将字节码文件加载到Java虚拟机中,这个过程中由字节码校验器检查代码中是否存在非法操作。如果校验器检查通过,由Java解释器将字节码解释成为机器码进行执行,这种检查可以防止木马病毒,另外Java虚拟机采用“沙箱”运行模式,既把Java的代码和数据都限制在一定空间内执行,不允许程序访问该内存空间外的内存。
高性能
Java编译器在编译时会对字节码进行一些优化,使之生成高质量代码。Java字节码格式就是针对机器码转换而设计的,实际转换时相当简便。Java在解释运行时使用一种即时编译技术,可使Java程序执行速度有很大提升,多年发展使Java虚拟机有很多改进,这些都使Java程序的执行速度提升很大。
多线程
Java是为网络编程设计的,这要求Java能够并发处理多个任务。Java支持多线程编程,多线程机制可以实现并发处理多个任务,互不干涉,不会因为某一任务处于等待状态而影响其他任务的执行,这样就可以容易实现网络上的实时交互操作。
动态
Java应用程序可以在运行的时候动态加载各种类库,即使更新类库也不必重新编译这一类库的应用程序,这一特点非常适用于网络环境下运行,同时也非常利于软件开发。