根据java 设计时的白皮书的内容。我们可知java有十一大特性。分别是:
1.简单性
从语法上来讲,Java语法是C++语法的一个纯净版本。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等。
简单的另一方面是小。java的目标之一是支持开发能够在小型机器上独立运行的软件。基本的解释器支持大约为40KB;再加上基础的标准类库和对线程的支持大约需要增加175KB。(java早期版本的大小,现在有一个java微型版本ME专门用于嵌入式开发)。
2.面向对象
面向对象是一种程序设计技术。他重点是将重点放在数据(即对象)和对象的接口上。开发java时面向对象技术已经非常成熟。java的面向对象特性和C++旗鼓相当。Java和C++的主要不同点在于多重继承,在Java中,取而代之的是接口的概念。与C++相比,Java提供更丰富的自省功能。
3.分布式
java具有非常丰富的例库,用于处理像HTTP/FTP之类的通信协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度和访问本地文件一样。
4.健壮性
java能够检测出其他语言在运行时才能检测出来的问题。(java设计过程中投入了大量的精力来进行早期问题的检测、后期动态的检测,并消除了容易出错的情况…java和c++最大的不同是java采用的指针模型消除了重写内存和损坏数据的可能性。)
5.安全性
java适用于网络/分布式环境。为了达到这一目标,在安全方面做了很多工作。使用java可以构建防病毒、防篡改系统。
java实现安全性的手段包括:
防范运行时的堆栈溢出。
防止程序破坏自己进程空间以外的内存。
禁止未经授权的读写文件。
6.体系结构中立
java编译器生成一种体系结构中立的目标文件格式,这是一种编译过的代码,只要有java运行时系统(JVM),这些编译后的代码就会在许多处理器上运行。java虚拟机通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易在任何机器上解释执行,而且还可以动态的翻译成本地机器代码(即时编译)。
7.可移植性
与c、c++不同,java规范中没有“依赖具体实现的部分”的地方。基本数据类型和有关运算都做了明确的说明。(如:java的int一直为32位的整数)。
除了用户界面的有关部分外,所有其他java库都很好支持了平台独立性。这样可以做很多操作而不用担心底层操作系统。
8.解释性
java解释器可以在任何移植了解释器的机器上执行java字节码。由于链接是一个增量式且可轻量级的过程,所以,开发过程也可以变得快捷,且更加具有探索性。
9.高性能
字节码可以在运行时刻动态的翻译成对应运行这个应用的特定CPU的机器码。
即时编译器可包含更多可用信息。例如:即时编译器可以监控经常执行那些代码并优化这些代码以提升速度。
10.多线程
多线程可以带来更好的交互相应和定时行为。java在这方面非常出色。
11.动态性
当需要将某写代码添加到正在运行的程序中时,动态性将是一个非常重要的特性。