【0】README
0.1) 本文转自 core java volume 1,仅供了解,所谓爱屋及乌嘛;
0.2) java的设计者编写了颇有影响力的白皮书,用来解释设计的初衷以及完成的情况,并发布了一个摘要;
【1】该摘要归纳为11个关键术语
1.1)简单性;
1.2)面向对象: java 与 C++ 的主要不同点在于多继承;
1.3)网络技能(Network-Savvy): java有一个扩展的例程库,用于处理像HTTP 和 FTP 之类的TCP/IP 协议;
1.4)健壮性: java 和 C++ 最大的不同在于 java采用的指针模型可以消除重写内存和损坏数据的可能性;这个特性非常有用, 它使得 java 编译器能够检测许多在其他语言中仅在运行时刻才能够检测出来的问题;java是绝对安全的, 其原因是永远不会存取一个坏的指 针,造成内存分配错误,也不必防范内存泄露;
1.5)安全性: java 适用于网络/分布式环境,使用 java 可以构建防病毒、防篡改的系统;
一开始, java就设计成 能够防范各种攻击, 其中包括:
- 1.5.1)运行时堆栈溢出; 如,蠕虫等病毒常用的攻击手段;
- 1.5.2)在自己的处理空间之外破坏内存;
- 1.5.3)未经授权读写文件;
Attention): 自java1.1 以来,java就有了 数字签名类 的概念,通过数字签名类,可以确定类的作者;如果信任这个类的作者,这类就 可以在你的机器上拥有更多的权限;
1.6)体系结构中立: java编译器通过生成与特定的计算机体系结构无关的 字节码指令来实现这一特性;(编译器生成一个体系结构中立的 目标文件格式,这是一种编译过的代码,只要有 java 运行时系统, 就可以在许多处理器上运行)
即时编译: 虚拟机有一个选项,可以将使用最频繁的 字节码序列 翻译成 机器码,这个过程被称为 即时翻译;
1.7)可移植性: 在java 中, 数据类型具有固定的大小, 这消除了代码移植时令人头痛的问题, 二进制数据以固定的格式进行存储和传输,消除了字节顺序的困扰, 而字符串采用的是 标准的 Unicode 格式存储的(例如, java中的int 永远为32位整数, 而在C/C++中,int 可能是16位整数、32位整数,也可以是编译器提供商指定的其他大小);
1.8)解释性: java 解释器可以在任何移植了解释器的机器上执行 java 字节码;(现在,使用 即时编译器 将字节码 翻译成 机器码)
1.9)高性能: 在运行时, 字节码可以快速地翻译成运行这个应用程序的特定CPU 的机器码;
1.10)多线程:多线程可以带来更好的交互响应和实时行为;(多线程编译的简单性 是 java 成为颇具魅力的服务器段开发语言的主要原因之一)
1.11)动态性: java 能够适应不断发展的环境,库中可以自由地添加新方法和实例变量, 而对客户端没有影响;