java具有11个关键的术语,这些术语是从java的设计者所编写的白皮书中摘取,这些术语分别为:简单性、面向对象、分布式、健壮性、安全性、体系结构中立、可移植性、解释型、高性能、多线程、多态性。以下开始我们将逐一解说这些术语。
一、简单性
Java是C++语法的纯净版本,剔除了C++语言中烦人的头文件、指针运算、结构、联合等等一系列的特性和设计。(之后的博客中会给出说明和对比 ps:不懂C++也没关系,不影响阅读和学习),所以C++可以轻易的转为Java语法。
另一个就是小,没错就是小!Java起初的时候大约只有175KB!emmmmm,之后经过扩充已经变得相当的大了。但是没关系,Java提供了独立且较小的类库Java Micro Edition版本来适用于嵌入式设备。
二、面向对象
这个同学们应该都听说过,Java是一门面向对象语言。那什么是面向对象?别惊讶,我面试的时候面试官就问过我这个问题。
简单的讲,面向对象是一种程序设计技术。它将重点放在了数据(即对象)和对象的接口上。举个例子:
一个厨子首要关注的做出来的菜,其次才会关注做菜的工具。而非面向对象的厨子首要关注的是做菜的工具,其次才是做出来的菜。(本质上Java面向对象的能力和C++是相同的)。
三、分布式
Java应用可以通过URL打开和访问网络上的对象,它可以处理像HTTP和FTP之类的TCP/IP协议,其访问网络对象便捷到如同访问本地对象!(之前一直是C++连接web服务器)。如果没有这一点,很多访问量比较的大的项目就无法有效的提供服务。
四、健壮性
Java编写的程序具有多方面的可靠性,其编译器能够检测许多其他语言中只有在运行时才能检测出来的问题,它和C++最大的区别就是Java采用的指针模型可以消除重写内存和损坏数据的可能性。
五、安全性
Java适用于网络/分布式环境,它自身的设计中就加入了很多预防攻击的手段。举个例子:比如运行时的堆栈溢出(蠕虫和病毒常用手段),再比如破坏自己的进程空间之外的内存,未经授权读写文件等等。
Java中的不可信代码全部在沙箱环境中进行运行,Java程序的运行离不开沙箱。
ps:实际上它没那么有用。
六、体系结构中立
Java编译器会生成一个体系结构中立的目标文件格式,它是一个编译过的代码,只要有Java运行的系统,这些代码就可以在许多处理器上运行。编译器通过生成和特定的计算机体系结构无关的字节码来实现这一特性,这些代码不仅可以在一在任何机器上解释执行,还可以动态的翻译成本地机器代码。
七、可移植性
Java中的所有基本类型的大小和有关运算都有明确的说明,它定义了可移植的接口,对不同的系统分别做出了不同的实现。这些不同实现的接口保证了Java的可移植性。
八、解释型
Java中的解释器可以在任何移植了Java解释器的机器上执行Java的字节码(看起来不错,实际上Java的开发环境并没有将重点放在这个上面~)。
九、高性能
Java字节码可以在运行时刻动态的翻译成对应运行这个应用的特定CPU的机器码。(更强的是即时编译器可以监控经常执行那个代码并优化它可以提高速度)。
十、多线程
Java是第一个支持并发程序设计的主流语言!别的不多说~(ps:多线程可以带来更好的交互响应和实时行为)。
十一、动态性
Java能够适用不断发展的环境,库中可以自由的添加新的方法和实例变量,而对客户端没有任何影响。(这方面Java超出C和C++)。