非常值得一读的书 (外加一些问题)_深入理解Java虚拟机书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 深入理解Java虚拟机 > 非常值得一读的书 (外加一些问题)
厚积薄发 深入理解Java虚拟机 的书评 发表时间:2011-07-26 09:07:29

非常值得一读的书 (外加一些问题)

很值得一读,不少地方比操作系统的课本讲的还透彻。作为java高级程序员,一定要看这本书。

有几个问题,不知道是不是我理解错了:

1 能不能在给出jdk api源码时,顺便给个jdk下源码的完整路径。
示例代码无所谓。

2 354页的incrementAndGet方法的jdk源码函数名为getAndIncrement,错误?

3 原书第360页的两个图,经作者注解,出自: http://www.cs.princeton.edu/picasso/mats/HotspotOverview.pdf

但是我觉得原处应该就有错误,当轻量级锁被获取后,状态应该变成00,但原出处和本书,貌似都保留了一个错误的01。

展开全文
有用 1 无用 0

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“非常值得一读的书 (外加一些问题)”的回应

柳轻言 2011-12-19 13:22:16

正想买这本书来看

厚积薄发 2011-07-28 13:08:29

谢谢,出本好书不容易,讲底层的书又很少。辛苦了

IcyFenix 2011-07-26 20:21:02

您好,我是本书的作者,首先感谢您的支持和肯定。

对于您的3个问题:

1.在本书中引用jdk/jvm源码的地方并不多,我没有太过注意路径这点。计划在第2版(还没动笔)时会加入适量对HotSpot VM的源码分析内容,届时我会注意把代码路径说明清楚。

2.代码说明中写的方法名字是incrementAndGet(),而代码中所使用的则是getAndIncrement()。这2个方法是原子类用于对应“++i”和“i++”操作的。原本用哪个来演示都没问题,但是说明与代码不统一的确笔者疏忽所致。在下次重印时间将把代码修正过来。书的勘误可参见这里:http://icyfenix.iteye.com/admin/blogs/1119214

3.图中的01标志位并没有错,请注意图13-3,这时候栈帧中画的是"displaced hdr”,对象头中存储的仍然是“hash”和"age",换句话说就是CAS更新操作还没有进行,标志位自然应当是“01-未锁定”。而图13-4显示的是CAS更新成功后的状态,这时候对象头已经被替换了,而栈帧中lock record里面存储着对象原本的对象头,这里的“原本”就是指处于未锁定状态的对象头,tag为01,存储内容为hashcode和gc age。