1.2 Java白皮书关键术语
1 简单性
无头文件 指针运算(指针语法) 结构 联合 操作符重载 虚基类等
2 面向对象
与C++相当,区别在于多重继承,Java通过接口,运行时自省
3 分布式
有丰富例程库,可以处理HTTP、FTP等TCP/IP协议,通过URL打开和访问网络上的对象,像访问本地文件一样便捷(还是通过C++?)。
4 健壮性
前期问题检测:能检测到其他语言在运行时检测出的问题
后期动态检测
采用的指针模型可以消除重写内存和损坏数据的可能性
5 安全性
(适用于网络/分布式环境;不可信代码在沙箱环境运行;代码需有数字签名且用户同意)
防范攻击:
① 运行时堆栈溢出(蠕虫 病毒)
② 破坏自己进程之外的内存
③ 未经授权读写文件
6 体系结构中立
编译生成字节码,可以在任何机器上动态翻译为机器码,可移植性之一;
虚拟机可以检测指令序列行为,保证安全性
7 可移植性
① 数据类型大小固定
② 定义了可移植接口
8 解释型(解释器)
9 高效性能
字节码可以在运行时动态翻译为运行这个应用的CPU的机器码
(即时编译器可以监控经常执行哪些代码并对其优化,以提高速度)
10 多线程(并发性)
11 动态性(将某些代码添加到正在运行的程序中)
可以在库中添加新方法和实例变量,而对客户端无影响
1.3 Java applet与Internet(已过时)
applet:一种在浏览器中运行的Java程序
1.4 Java 发展史