Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
1.面向对象性
面向对象是现代编程语言的重要特性之一,也是Java语言的特色所在。在现实世界中任何实体都可以表示为对象,而对象间通过消息来相互传递、作用。对于传统的面向过程编程语言而言,若其中心是过程,驱动是算法,那么对于面向对象的编程语言而言,则对象是它们的中心,消息是它们的驱动。用公式表示,前者可表示为:程序=算法+数据结构;后者可表示为:程序=对象+消息,两者的基点显而易见。
Java语言和所有新一代的程序设计语言一样,也采用了面向对象技术,并据此而升华、完善,使得面向对象技术更趋简单。所有的Java程序和 Applet程序均是对象,通过封装性、继承性多态性进行开发。封装性实现了模块化和信息隐藏,继承性实现了代码的复用,用户可以建立运作自己的类库、构造方法重载等。
2.简单便捷性
Java语言的简单首先体现在精简的系统上,力图用最小的系统实现足够多的功能;对硬件的要求不高,在小型的计算机上可便捷地运行。其次,Java基于面向对象技术,通过提供最基本的方法来完成指定的任务,只需了解一些基本的概念就可以编写出适合于各种情况的应用程序。Java语言源于C++语言(Java语言采用了C语言中的大部分语法,熟悉C语言的程序员会发现Java语言在语法上与C语言极其相似),但剔除了C++中复杂罕用的功能,略去了运算符重载、多继承的复杂概念,取用了单一继承、多线程、引用等机制,使程序设计更加简单,充分体现了系统的简单便捷性。
3.平台无关性
网络上充满了各种不同类型的计算机和操作系统,为使Java程序能在网络的任何地方运行,Java编译器编译生成了与体系结构无关的字节码结构文件格式,然后再由Java虚拟机(JVM)转换成某种处理器的专用代码,因而任何种类的计算机只要在其处理器和操作系统上有Java运行的环境,字节码文件就可以在该计算机上运行,从而实现了用Java语言编写的应用程序不用修改就可在不同的软硬件平台上运行,如 UNIX、 Linux、Mac或 Windows,使得“一次编写,到处运行( Write Only, Run Anywhere”梦想成真,也体现了系统的平台无关性。
4.语言健壮性
作为一种强制类型语言,Java在编译和连接时都进行大量的类型检査,以防止不匹配问题的发生。若引用一个非法类型或执行一个非法类型操作,Java将在解释时指出该错误。在Java程序中取消了指针计算,大大減少了该类错误发生的可能性;而且Java的数组并非用指针实现,这样就可以避免数组越界的发生。垃圾自动回收机制也增加了Java的健壮性。
5.运作安全性
作为网络语言,Java必须提供足够的安全保障,并且要防止病毒的侵袭。Java运行应用程序时,严格检查其访问数据的权限,例如,不允许网络上的应用程序修改本地数据。下载到用户计算机中的字节代码在其被执行前要经过一个核实工具,一旦字节代码被核实,便由Java解释器来执行,该解释器通过阻止对内存的直接访问来进一步提高Java的安全性。同时, Java语言健壮性、实现内存管理自动化的虚拟机、提供加密技术与支持多种安全网络协议也增强了Java的运作安全性。
6.系统移植性
Java语言的无关性,成为该类应用程序可方便地移植到网络上其他计算机上运行的良好基础,使得Java语言应用程序在已配备了Java语言解释及运行环境的任意一台计算机上运行成为可能,即使在不同的操作系统平台上。与此同时,Java语言类库与不同平台的接口也得到了实现,这样类库具有的可移植性更深化了系统开发的可移植性。Java运行时系统可以移植到不同的处理器,Java的编译器是由Java语言实现的,解释器是由Java语言和标准C语言实现的,这就使得Java语言系统自身就已经实现了可移植性,因此Java系统可以较为方便地进行移植工作。
7.动态扩展性
语言具有动态性,即可以在本地或网上动态地加载各种类库,在执行过程中可随意增加新方法、实例变量等,这一特点使其非常适合于网络运行,同时也非常有利于软件的开发。此种运行中的程序只在需要时才会加载相应模块的机制,可加快程序的运行效率与开销。Java语言是基于C++的一种编程语言,它们之间有许多相似性,便于扩展。Java的动态扩展性体现在:Java语言
可以把内部的方法映射成软件库所定义的功能,可实现动态地与虚拟机链接。
8.程序优化性
虽然Java语言程序是解释执行的,但程序仍然具有非常高的优化性,经过周详设计的Java字节码技术可快速地将编辑的Java语言转换成高性能的机器码来执行,相应的自动寄存器分配与编译器对字节码的一些优化可使其生成高质量的代码。随着Java虚拟机的改进和“即时编译”( Just in Time)技术的出现,Java的执行速度有了更大的提高,Java言系统的高优化性使其即使在相当低档的CPU上仍能顺利运行。
9.多线程机制
多线程机制使应用程序可以同时进行不同的操作,处理不同的事件。线程是一种特殊的进程,多个线程不仅可以共用同一块内存区域,而且可以共享同一组系统资源。线程间进行通信和切换时的系统开销要比进程机制小得多。Java语言本身提供了一个 Thread类和一组内置的方法,它负责生成线程、执行线程或者查看线程的执行状态。
在Java的多线程机制中,不同的线程处理不同的任务,互不干涉,不会由于某一任务处于等待状态而影响了其他任务的执行,使得各线程并发运作、独立执行,提高了系统的运行效率,这样就可容易地实现网络上的实时交互操作。