JAVA“白皮书”关键性术语
简单性
java语法是C++的纯净版,没有C++中的头文件、指针运算、结构、联合、操作符重载、虚基类等。
java简单另一个方面就是小。java的目标之一是支持开发能够在小型机器上独立运行的软件。
面向对象
在本质上,Java面向对象的能力与C++是一样的。Java与C++的主要不同点在于多重继承。(java不支持多重继承,c++可以)
分布式
Java 有一个丰富的例程库,用于处理HTTP 和 FIT 之类的 TCP / IP 协议。Java 应用程序能够通过 URL 打开和访问网络上的对象, 其便捷程度就好像访问本地文件一样 。
健壮性
Java与C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。
Java编译期能够检测许多其他语言中仅才允许中才能检测出来的问题。
安全性
体系结构中立
编译器生成一个体系结构中立的目标文件格式(.class),这是一种编译过的代码 , 只要有Java 运行时系统 , 这些编译后的代码可以在许多处理器上运行。 Java 编译器通过生成与特定的计算机体系结构无关的字节码指令来实现这一特性 。 精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态地翻译成本地机器代码。
可移植性
与 C 和 C ++ 不同 , Java 规范中没有 “ 依赖具体实现 ” 的地方基本教据类型的大小以及有关运算都做了明确的说明。【例如:Java 中的int 永远为 32 位的整数,而在 C / C ++ 中,int可能是 16 位整数、32 位整数,也可能是编译器提供商指定的其他大小。】
在Java 中, 数据类型具有固定的大小,这消除了代码移植时令人头痛的主要问题 。二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰 。字符串是用标准的 Unicode 格式存储的 。
解释性
Java 解释器可以在任何移植了解释器的机器上执行 Java 字节码。
高性能
字节码可以 ( 在运行时刻 ) 动态地翻译成对应运行这个应用的特定 CPU的机器码。
多线程
多线程可以带来更好的交互响应和实时行为 。
多态性
从各种角度看 , Java 与 C 或 C + + 相比更加具有动态性。它能够适应不断发展的环境库中可以自由地添加新方法和实例变量,而对客户端却没有任何影响。在Java 中找出运行时类型信息十分简单 。