JAVA特性与优势
Java特性
跨平台/可移植性,安全性,简单性,面向对象
1. 跨平台/可移植性
这是Java的核心优势。Java程序的跨平台主要是指字节码文件可以在任何具有Java虚 拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释 器负责将字节码文件解释成为特定的机器码进行运行。“一次编译,随处执行”:“write once,run anywhere”
2.安全性
-
Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域, 而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据 或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
-
Java提供了自动内存管理机制,由垃圾回收器在后台自动回收,
Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
3. 而在运行环境提供了四级安全性保障机制:字节码校验器 -类装载器 -运行时内存布局 -文件访问限制
3. 简单性
是C++语法的纯净版,没有头文件,指针运算,结构,联合,操作符重载,虚基类等等。语法基于C,因此学起来完全不费力。
4. 面向对象
- Java和C++都是面向对象语言,即,它们都能实现面向对象思想(封装,继承,多态);
- 由于C++为了照顾大量C语言使用者而兼容C,使得自身仅仅成为了带类的C语言,影响了面向对象的彻底性
- Java是完全的面向对象语言,句法清晰,规模更小,易学,它是在对多种程序设计语言进行了深入细致研究的基础上,摒弃了其他语言的不足,从根本上解决了C++的固有缺陷
5.高性能
Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接待C++的效率。
因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。
6.分布式
Java具有支持分布式计算的特征,Java 语言支持 Internet 应用的开发,在 Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括 URL、URLConnection、Socket 等。Java 的 RIM 机制也是开发分布式应用的重要手段。
Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
7. 动态性
Java的动态特性是其面向对象设计的延申。Java程序的基本组成单位是类,而Java的类又是运行时动态装载的,这使得Java可以动态地维护应用程序及其支持类之间的一致性。
8. 多线程
多线程的使用可以带来更好的交互响应和实时行为。多线程的简单性是JAVA成为主流服务器端开发语言的主要原因之一。
9.健壮性
JAVA是一种健壮的语言,吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如:指针,内存的申请与释放等)。JAVA程序不可能造成计算机崩溃.JAVA系统仔细检测对内存的每次访问,确认它是合法的,而且不致引起任何问题。不过,即使JAVA程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该例外抛弃。再通过异常处理机制,程序就会发现这类例外,并加以处理。
Java优势
跨平台是Java语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖IT各行业的“第一大语言”,是计算机界的“英语”。
虽然,目前也有很多跨平台的语言,但是已经失去先机,无法和Java强大的生态体系抗衡。Java仍将在未来几十年成为编程语言的主流语言。
基于JAVA生态建立的产品将会越来越多;基于JAVA虚拟机的编程语言也将会越来越多;生态系统的强大,是JAVA能长盛不衰的根本。
总结
在互联网快速发展的时代,对应出现了不同的操作系统(不同的平台),那么JAVA就可以一份代码各个平台都可以运行起来。这种跨平台性是其他语言所不能相比的,这个特性才是JAVA最独特的地方。对于语言而言,虽然在一代一代的改进,但是万变不离其中,我们只需要去精通一门就可以了。