简单性
java语法是C++语法的一个纯净版本,没有头文件、指针运算、结构、联合、操作符重载、虚基类等。.
面对对象
面对对象设计师是一种程序设计技术。它将重点放在数据(即对象)和对象的借口上。任何一个物体都可以看作一类事物的实例。在面向对象特性上,java和C++不同在于多重继承。
公布式
java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。java应用程序能够通过URL打开和访问网络上的对象。
健壮性
java编写的程序具有多方面的可靠性,java与C++不同在于java采用的指针模型可以消除重写内存和损坏数据的可能性。
安全性
java试用于网络/分布式环境。
java设计成能够防范各种攻击,其中包括:
- 运行时堆栈溢出。如蠕虫和病毒常用的攻击手段。
- 破环自己的进程空间之外的内存。
- 未经授权读写文件。
可移植性
java没有C++中“依赖具体实现”的地方,其基本数据类型的大小都有明确的说明,具有固定的大小。java除了用户界面有关的部分外,所有其他的java库都能很好地支持平台独立性,不用操心底层操作系统。
解释型
java解释器可以在任何移植了解释器的机器上执行java字节码。
高性能
解释后的字节码可以(在运行时刻)动态地翻译成对应运行这个应用的特定CPU的机器码。即时编译器超越了传统编译器,其含有更多的可用信息。即时编译器可以监控经常执行哪些代码并优化这些代码以提高速度。更复杂的优化是消除函数调用(即内联)。
多线程
java支持并发程序设计,多线程可以带来更好的交互响应和实时行为。
动态性
java的库中能自由地添加新方法和实例变量,对客户端没有任何影响。
此文章内容来自java核心技术卷1