1.1JAVA程序设计平台
标画
一旦一种语言得到广泛应用,与现存代码尴尬的兼容性问题就摆在了人们的面前
java有一个庞大的库,其中包含了很多可重用的代码,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。
这个地方在本书后面有对应的实用案例,比如当一个string类使用的时候如果被截断了的话,多余的内容会被当做垃圾自动回收,以减少系统空间资源的占用。
1.2.2面对对象
用木匠打一个比方:一个“面向对象的”木匠始终首先关注的是所制作的椅子,其次才是所使用的工具;一个“非面对对象的”木匠主要考虑的是所用的工具。在本质上,java的面对对象能力和c++是一样的。
这个地方加深了我对c++中面对对象概念的理解,这个比喻十分的有意思。
java的几个关键术语
1.简单性
- java语法是c++的纯净版本(?)
2.面向对象
3.分布式
java有一个丰富的例程库,可以用于处理像是HTTP和FTP之类的TCP/IP协议
4.健壮性
java采用的指针模型可以消除重写内存和损坏数据的可能性
java编译器能够检测出许多在其他语言中仅在运行时才能够检测出来的问题
5.安全性
java可以构建防病毒、防篡改的系统。
java能够防范各种攻击
- 运行时堆栈溢出,这是蠕虫和病毒常用的攻击手段
- 破坏自己的进程空间之外的内存
- 未经授权读写文件
- java浏览器插件不在信任远程代码,除非代码有数字签名而且用户同意执行这个代码。
- 不可信的代码将在一个沙箱环境中运行(?),不会脱离沙箱。
6.体系结构中立
精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以动态地转换成本地机器代码
- 解释型虚拟机指令
- 全速运行机器指令
java虚拟机还有一些其他优点,它可以检查指令序列的行为,从而增强其安全性
7.可移植性
8.解释型
9.高性能
10.多线程
11.动态性