跨平台/可移植性 | 这是 Java 的核心优势。Java 在设计时就很注重移植和跨平台性。比如:Java 的 int 永远都是 32 位。不像 C++可能是 16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。 |
安全性 | Java 适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使 Java 可以很容易构建防病毒,防篡改的系统。 |
面向对象 | 面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于 C++为了照顾大量 C 语言使用者而兼容了 C,使得自身仅仅成为了带类的 C 语言,多少影响了其面向对象的彻底性!Java 则是完全的面向对象语言 |
简单性 | Java 就是 C++语法的简化版,我们也可以将 Java 称之为“C+±”。跟我念“C 加加减”,指的就是将 C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于 C 语言,因此学习起来完全不费力 |
高性能 | Java 最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java 语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过 JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使 Java 程序的执行效率大大提高,某些代码甚至接待 C++的效率,因此,Java 低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多 C++应用转到 Java 开发,很多 C++程序员转型为 Java 程序员 |
分布式 | Java 是为 Internet 的分布式环境设计的,因为它能够处理 TCP/IP 协议。事实上,通过 URL 访问一个网络资源和访问本地文件是一样简单的。Java 还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。 |
多线程 | 多线程的使用可以带来更好的交互响应和实时行为。 Java 多线程的简单性是 Java 成为主流服务器端开发语言的主要原因之一 |
健壮性 | Java 是一种健壮的语言,吸收了 C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java 程序不可能造成计算机崩溃。即使 Java 程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。 |