关于java的设计目标
关于java的设计目标
java不仅是一门语言,java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性,跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。(库+平台)
java白皮书中提到了11个关键目标,下面是对这11个关键术语的理解。
简单性:java的目标是构建一个无需经过深奥的专业训练就可以编程的系统,并且要符合原有的规范。因此,java很大程度上靠近c++,但是java中删除了c++中很多很少使用的特性,去除c++的复杂性。但是相对于可视化的编程环境,例如VB,java仍然比较复杂。另一方面,简单的另一个要求是小,但是现在java的类已经很多了。
面向对象:面向对象方面,java的面向对象特性与c++旗鼓相当,java与c++的不同之处在于多继承,在java中,取而代之的接口概念,以及java的元类概念。
网络技能:java的网络编程非常方便,同时远程方法调用机制使得分布式对象之间可以进行通信。
健壮性:java的健壮性在于java永远不会存取一个坏的指针,从而造成内存分配的错误,也不必防范内存泄露。同时,java可以满足指针才能满足的灵活性要求。
安全性:一个永恒的话题,永无止境的话题。
体系结构中立:java的运行环境是jre,java代码经过编译器编译后生成与体系结构无关的字节码,这样只要有字节码的解释器,就都可以运行。相对于c++编译后生成的机器码,需要解释的字节码运行速度慢一些,但是jvm提供了一些机制来加快字节码的运行,现在看来,java的运行速度是可以满足要求的。
可移植性:java运行基于jvm,可移植性是必然的。
解释型:解释型语言的执行速度慢,即使使用了所谓的增量式的链接。现在,使用即时编译器将字节码翻译成机器码,热点代码编译为机器码,运行速度也很快。
高性能:高性能来源于即时编译,并且相对于传统的编译器更有优势,因为可以获取更多的信息。
多线程:java中的多线程使用相当方便。Java底层还是使用操作系统或者线程库来实现。
动态性:java相对于c或者c++而言动态性更强,可以获得运行时对象的信息,非常灵活。
综上所述,可知java确实是一个十分易用的程序设计平台,而不仅仅是一门语言。