java语言的特点
来源:程序员人生 发布时间:2017-03-23 16:41:40 阅读次数:3855次
厦门万策智业(hpeixun.wanczy.com)觉得Java是一种简单性、面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、动态性、具有多线程能力的新一代语言。这样比较抽象,其实南京联迪杰易职业培训学校更加认为它是一种联系方式,一种人与电脑,人与数据之间的交流方式,而且交流的方式就是一行行漂亮的代码,就像过去的鸿雁传书,当初的书信传递。
Java是一种简单的语言
Java删除了许多极少被使用、不容易理解和容易令人混淆的C++功能。删除的功能主要包括运算符重载、多重继承以及广泛的自动强迫同型。与C++相比,Java语言也提供重载函数,不过它重载的对象是函数而非变量或是运算符。
Java的目标之一是要协助开发能独立地在小型机器上顺利执行的软件。Java的基本解释器和对象类支持约占40KB空间,而若增加基本的标准程序库和线程支持则需增加约175KB。体积小对于在嵌入式系统中的使用是很重要的,正因为这样,Java才能够通过网络轻易下载。
Java是稳健的
Java的目标是要协助开发人员建立各方面可靠的程序,Java强调:开发人员可在设计初期即检查可能存在的问题,其后则进行动态的检查,并排除容易出现的错误。C++语言的优点是允许在编译时进行深入的检查,以便提前发现错误。
Java与C/C++之间最大的不同点之一在于Java拥有一种模型,能排除内存被覆盖和毁损数据的可能性。Java不采用指针计算法,而是提供真正的数组阵列。这允许程序执行下标检查,但它不允许将一个整数转成指针的情形发生。
Java面向对象的语言
面向对象是在业界中一度流行的术语之一。不过,它确定是一项很强的设计功能,它可以促成明确的接口定义,并允许开发人员建立可重复使用的软件部件。
Java是分布式语言
Java拥有广泛的能轻易地处理TCP/IP协议的运行库,例如HTTP与FTP类库等等。这使得在Java中比在C或C++中更容易建立网络连接。Java应用程序可以借助URL通过网络开启和存取对象,就如同存取一个本地文件系统一样简单。
Java的安全性
Java设计的目的是要能够使用于网络/分布式运算环境。为此,Java非常强调安全性,以确保建立无病毒且不会被侵入的系统。Java的验证技术是以公钥加密法为基础。键壮性与安全性之间存在一种很强的相互作用关系。例如,指针语意的改变,让应用程序不可能伪造对象结构存取权,或存取它们在对象中没有存取权的?数据。这等于关上大门,杜绝大多数病毒的侵入。
高效能的Java程序
虽然解决过的字节代码性能已相当不错,不过有些情形下还是要求程序达到更高执行效能。字节代码可以动态地解释为执行应用程序特定CPU的机器码。这对于习惯使用一般编译器与动态载人器的程序设计者而言,有点类似将最终的机器码生成器放到动态载入器之内。
字节代码格式在设计上即已考虑了机器码的产生,因此实际的机器码生成程序相当简单。其生成的机器码是有效的,编译器自动分配寄存器,而在生成字节代码期间也会进行一些优化。
我们以解决码在一台SunMicrosystemSPARCStation10上执行时,达到每秒三十万个函数调用速率。字节代码转换至机器码的速度性能,几乎和直接生成机器目标代码的C或C++没有什么两样。
Java是解释执行的
Java解决器可以直接在任何已移植该解释器的机器上解释、执行Java字节代码。再者,由于其链接过程比较倾向于逐步增量与轻量过程,因此程序开发更快、更精密。
Java对多线程的支持
Java拥有一组复杂的同步化基本单元,它们是以广泛使用的C.A.R.Hoare监视器与条件变量图为基础的。将这些概念融合到语言中之后,它们就变得更容易使用且更为健壮。这种融合方式大部分来自Xerox的Cedar/Mesa系统。
多线程所带来的其它好处包括更好的交互式回应能力与实时运行能力。然而这会受到底层平台的限制:独立执行的Java运行环境有着很好的实时执行能力,而若在其他系统例如Unix、Windows、Macintosh或WindowsNT等平台上执行时,则会由于底层平台的原因而使实时响应能力受到影响。
Java的动态特性
就各方面而言,Java是一种比C或C++更具动态特性的语言。它在设计上强调为不断发展的运算环境提供支持。Java能了解由ObjectiveC引用过来的接口概念。简单地说,接口就是规范一组与对象相对应的成员函数,但对象如何实现这些成员函数则亟待解决。一个类实现一个接口是要提供这个接口所包含的所有成员函数的实现,与此相反,派生子类则从父类继承了一组成员函数以及它们的实现。一个Java类可以实行多个接口,但只能从一个父类继承。接口告诉连接对象它可以做什么而不是怎么做,使得它在代码上更具有灵活性和可复用性。在C或C++程序中,如果你有一个指针指向一个对象,但你不知道该对象的类型是什么,那么你将没有办法找出它。然而,在Java中根据运行类型信息进行查找是很直截了当的,因为在编译阶段和运行阶段都会检查数据类型转换。所以你在Java中完全可以信任这种转换,而C与C++的编译器则只是相信你自己已做了正确的处理。
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠