Java语言类似C++,因此熟悉C++的程序员很容易掌握java,另外它摒弃了C++中易发生错误的地方,尤其是Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。
(2)跨平台性
所谓的跨平台性就是指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。而在Java中它自带的虚拟机可以很好的实现跨平台性,它提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。
(3)面向对象
Java是一种面向对象语言,它可以使得程序的开发更加简单易用。比如具有代码扩展,代码复用等功能。
(4)安全
Java的安全性可从两个方面得到保证。一方面,在Java语言里,指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java语言在机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
(5)多线程
多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理。 Java除了内置的多线程技术之外,还定义了一些类、方法等来建立和管理用户定义的多线程。
(6)分布性
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口,它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
(7)可移植的
Java系统本身具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的,另外Java还严格规定了各个基本数据类型的长度
(8)解释的
Java解释器能直接运行目标代码指令,链接程序通常比编译程序所需资源少,所以程序员可以在创建源程序上花上更多的时间。
(9)高性能
如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令,翻译目标代码的速度与C/C++的性能没什么区别。
(10)动态性
Java语言的设计目标之一是适应于动态变化的环境,Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。
总结: