初次窥探虚拟机_深入理解Java虚拟机书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 深入理解Java虚拟机 > 初次窥探虚拟机
ansondeng 深入理解Java虚拟机 的书评 发表时间:2015-03-18 14:03:15

初次窥探虚拟机

(妈的,这又是一次从小白角度看问题,希望以后重读这些书的时候能够更自信些)

     虽然做app开发有段时间了,java也能较顺手的使(在google ide的帮助下),但虚拟机却是一个完全黑暗无知的地带。这对我这中悲观保守主义者来说简直就是深深的恐惧,所以本书即使买了这么久还是必须要读完一遍的原因,其实我是被强迫的。
     我对虚拟机最大的疑问是GC具体怎么实现的,开发时出现的OOM错误找不到根本原因对于自称死理性症患者的我来说是不可放过的。总结一下GC:1)怎么判断对象可被回收。引用计数法,是个人都知道。另外,对象是否能引用到GC Root,可达性分析法,具体能作为GC Root对象的只有几类,详情看书;2)怎么回收不用垃圾。标记-清除,根据标记回收垃圾对象;复制,把内存分两(多)个区,一份用一份清闲,回收时把用的这部分中剩下对象全部复制到清闲这部分,原来用的全清空变成清闲的,原来清闲的变成使用的;标记-整理,完成标记-清除操作时,把剩余对象移动到堆的一端,消除内存碎片;分代收集,多轮判断对象是否可回收,例如第一轮筛选的对象为新生代,第二轮筛选的为老年代,新生代用复制(有大量对象要回收),老生代用标记-清除或标记-整理(少量对象要回收)。
     第二个大的疑问是JIT怎么执行,java到底是需要编译还是解释执行。也总结一下:java代码先被解释为class文件,即编译成字节码,字节码可以直接在虚拟机上执行。字节码运行的是建立在虚拟机上一套指令集(也就是建立在处理器硬件指令集上)。这里都是在解释执行;虚拟机会在字节码运行时分析热点部分,并把该部分的字节码直接编译为硬件指令集(当然会进行深度优化),这就比在虚拟机指令集上运行要快,这也就是JIT。
     本书内容还包括class文件结构、字节码具体如何执行,还有虚拟机中并发、线程是如何实现的。这些部分都只是稍稍看了下,暂时找不到有何用,留待未来吧。

展开全文
有用 0 无用 0

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

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读