一、Java白皮书的关键术语
注释:关于白皮书的内容可以在上找到The Java Language Environment: Contents
https://www.oracle.com/java/technologies/language-environment.html关于11个关键术语的概括参考https://horstmann.com/corejava/java-an-overview/7Gosling.pdf
https://horstmann.com/corejava/java-an-overview/7Gosling.pdf
- 简单性
Java剔除了C++中许多很少使用、难以理解、容易混淆的概念。如剔除了头文件,指针运算(甚至没有指针语法)、结构、联合、操作符重载、虚基类等- 面向对象
简单来说,面向对象设计是一种程序设计技术,它将重点放在数据(即对象)和对象的接口上。用木匠打比方:一个“面向对象的”木匠主要关注的是所制作的椅子,其次才是使用的工具;一个“非面向对象的”木匠主要考虑的是使用的工具。
- 分布式
Java有一个丰富的的例程库,用于处理HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网上的对象,其便捷程度就好像访问本地文件一样。
- 健壮性
Java编译器能够检测许多其他语言中仅在运行时才能够检测出来的问题。
- 安全性
Java要适用于网络/分布式环境。安全性颇为重视,使用Java可以构建防病毒、防篡改的系统。
- 体系结构中立
Java编译器通过生成与特定计算机体系结构无关的的字节码指令来实现编译代码在很多的处理器上运行。精心设计的字节码文件不仅可以很容易地在任何机器上解释执行,而且可以很容易地动态装换为原生机器代码。- 可移植性
Java规范中没有“依赖具体方法实现”的地方。基本数据类型的大小以及有关运算的行为都是明确的。但跨平台可移植性依旧是个问题。
- 解释性
Java解释器可以在任何移植了解释器的机器上直接执行Java字节码。由于链接是一个增量式的轻量级过程,所以,开发过程也会更加快捷,更具有探索性。
- 高性能
尽管解释型字节码的性能通常已经足够让人满意,但是有些场合下还需要更高的性能。字节码可以(在运行时)动态转换为面向运行这个应用的特定CPU的机器码
- 多线程
多线程可以带来更好的交互响应和实时行为。- 动态性
Java设计为能够适应不断演进的环境。库可以自由地添加新方法和实例变量,而对客户端没有任何影响。在Java中找出运行时类型信息十分简单。