Java语言的特性:

1.简单性

Java语法是C++语法的一个“纯净版本”,它没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。此外,Java开发环境远远超出大多受其它编程语言环境。

2.面向对象

在Java的世界里,一切皆对象。

Java的面向对对象特性与C++旗鼓相当,与C++的不同点主要在于多重继承。在Java中,取而代之的是更简单那的接口概念,而且,与C++相比,Java提供了更丰富的运行时字形功能。

3.分布式(微服务)

Java有丰富的例程库,用于处理如HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度犹如访问本地文件一样。

4.健壮性

Java与C++的最大不同之处在于Java采用的指针可以小丑重写内存和损坏函数的可能性。且Java编译器能够检测许多在其它语言中仅在运行时才能够检测出来的问题。

5.安全性

Java适用于网络/分布式环境。使用Java可以构建防病毒、防篡改的系统。

Java可防范的常见的攻击:

  • 运行时栈溢出(蠕虫和把病毒常用的攻击手段)。
  • 破坏自己进程空间之外的内存。
  • 未经授权读写文件。

6.体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编码过的代码,只要有Java运行的系统,这些编译后的代码就可以在许多处理器上运行。Java 编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性,此字节码文件不仅可以很容易的在任何机器上运行,而且还可以动态的翻译成本地机器代码。

7.可移植性

与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。如:Java中的int规定为32位的整数;而在C/C++中,int可能为16位整数、32位整数、也可可能是编译器提供商指定的其它大小。在Java中,数据类型具有固定大小,这消除了代码移植过程中的问题。

8.解释型

Java解释器可以在任何移植了解释器的机器上执行Java字节码。由于链接是一个增量式且强量级的过程,所以开发过程也变得更加便捷。

9.高性能

经解释后的字节码可以(在运行时刻)动态的翻译成对应运行这个应用的特低音CPU的机器码。

10.多线程

Java是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。

11.动态性

Java与C/C++相比更加具有动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息比较简单(运用反射的特性)。