`
trydofor
  • 浏览: 144937 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

《深入Java虚拟机(2)》摘录

阅读更多

《深入Java虚拟机(2)》摘录
作者:臭豆腐[trydofor.com]
日期:2010-04-24
授权:署名-非商业-保持一致 1.0 协议
声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。

文档目录
[[<=$INDEX]]

1. 第一章 Java体系结构介绍
【P2】四个独立但相关的技术:程序设计语言,class文件格式,API,虚拟机。
【P5】两种类装载器:bootstrap(JVM实现)和用户自定义(Java编写)。
【P6】运行时的每一个类装载器都有自己的名词空间。
【P7】class文件的字节序是高位在前(BIG-ENDIAN),同网络字节序。

2. 第二章 平台无关
【P20】平台无关要:不依赖于虚拟机回收时机,不依赖于线程优先级。

3. 第三章 安全
【P28】装载器载入类时,采用双亲委派(bootstrap无双亲),保护可信任类库边界。
【P31】java.lang.Virus是如何隔离的 ---- 运行时包。
【P32】class文件检验器,第一趟扫描,结构检查。CAFEBABE。
【P33】第二趟扫描,类型数据的语义检查。final被覆盖。
【P33】第三趟扫描,字节码验证。类的方法。
【P34】第四趟扫描,符合引用的验证。被引用类。
【P36】二进制兼容,修改必须不破坏已存在的类见调用关系。
【C3.6】安全管理器。
【C3.7】代码签名和认证。对散列签名。
【P51】策略文件。grant语句。
【C3.11】访问控制器。保护域。(一般不用,略)

4. 第四章 网络移动性
【C4】略。

5. 第五章 Java虚拟机
【C5.3】方法区和堆是共享的。程序计数器和栈是线程独享。
【C5.3.1】JVM数据类型:基本类型(其中boolean特殊,returnAddress类型
执行finally用),引用类型(类,接口,数组,null)。
【P91】用户ClassLoader及其实例在堆中,类信息,类(静态)变量在方法区。
【P97】常量池解析,把常量池中的符号引用替换为直接引用。
【P103】栈基本单位:帧,包括局部变量区,操作数栈和帧数据区(非编译时决定)。
【P104】byte,short,char,boolean在帧时做int处理,存回堆或方法区时变成原来类型。

6. 第六章 Java class文件
【P121】一个class文件只能包含一个类或接口。
【C6】十分底层,略过。拓展学习cglib封装。

7. 第七章 类型的生命周期
【C7.1】载入--连接(验证--准备--解析)--初始化。
【P162】JVM在首次主动使用类时,初始化他们。
【P162】主动使用:创建新实例;调用静态方法;使用类或接口的非常量静态字段;
调用特定的反射方法;初始化其子类;作为JVM启动时初始化的。
【P163】static final 常量表达式的,编译时生成常量的本地拷贝,非主动使用。
【P164】显式实例化途径:new;newInstance();clone();反序列化。
【P166】(args[0]+args[1]);隐式创建3个String和1个StringBuffer实例。
【P174】构造函数不允许捕捉被调用的this(),super()构造函数抛出的异常。
【C7.2.2】void finalize() 在GC释放内存前执行一次(慎用)。

8. 第八章 连接模型
【P177】class文件把它所有的引用符号保持在常量池。
【P178】运行时连接类,Class.forName或自定义ClassLoader loadClass()。
【P180】forName自动初始化,如JDBC注册驱动;而loadClass需要initialize=true。
【P182】引用数组,由元素的ClassLoader定义,基本类型数组,有bootstrap定义。
【P184】加载类时先处理超类,止于Object。从Object返回的路上处理接口。
【BTW】CONSTANT:Class--Fieldref--Methodref--InteffaceMethodref--String--Integer...
【BTW】不hack高级应用,一般用不上,略。

9. 第九章 垃圾回收
【P239】JVM规范中未要求特定的垃圾回收技术。
【P241】引用计数GC,跟踪GC,压缩GC,拷贝GC,按代GC,自适应GC。
【C9.9】火车算法。车厢,火车,火车站。
【P247】是GC运行了对象的finalize方法,无法预测,慎重使用。
【P248】强引用禁止GC,软,弱,影子引用不禁止。
【P251】软和弱引用调用get时,可得到对象的强引用或null,影子则只有null。
【BTW】深入学习 http://mindprod.com/jgloss/phantom.html

10. 第十章 到 结尾
【BTW】十分底层,即用即查。

11. 收尾总结
本次阅读未能深入,因为实在是太深了。
本书如无特殊需求,特大毅力,是啃不下去的。
作为了解性内容,备查就好。

原文:http://www.trydofor.com/a9w3-auhome/trydofor/article/2010/0427154940/body.htm

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics