1·跨平台/可移植性
这是Java的核心优势。Java程序的跨平台主要是指字节码文件可以在任何具有Java虚 拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释 器负责将字节码文件解释成为特定的机器码进行运行。
2·安全性
1.Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域, 而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据 或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
2.Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,
Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
3.而在运行环境提供了四级安全性保障机制:字节码校验器 -类装载器 -运行时内存布局 -文件访问限制
3·面向对象
1.Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多 态)。
2.由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影 响了其面向对象的彻底性!
3.Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计 语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固 有缺陷。
4·简单性
Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。
5·高性能
Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接待C++的效率。
因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
6·分布式
Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
7·多线程
多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
8·健壮性
1.Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
2.对指针的丢弃是Java的明智选择。
3.Java的安全检查机制使得Java更具健壮性。