深入理解Java虚拟机(第2版)的笔记(21)

>我来写笔记

按有用程度 按页码先后 最新笔记

  • RednaxelaFX

    RednaxelaFX (Script Ahead, Code Behind)

    针对verbose GC log来说: GC日志开头的“[GC”和“[Full GC”说明了这次垃圾收集的停顿类型,而不是 用来区分新生代GC还是老年代GC的。如果有“Full”,说明这次GC是发生了Stop-The-World 的 这句说得不太好。这样说的话就暗指"[GC"不是stop-the-world而"[Full GC"才是stop-the-world了。 实际上这两种前缀还真不是用来区分停顿类型,而是用来区分收集区域的。 "[GC"说明只收集GC堆的..   (1回应)

    2014-02-11 03:39   7人喜欢

  • RednaxelaFX

    RednaxelaFX (Script Ahead, Code Behind)

    由于使用了准确式内存管理,Exact VM可以抛弃掉以前Classic VM基于handler的对象查找方式(原因是GC后对象将可能会被移动位置,如果地址为123456的对象移动到654321,在没有明确信息表明内存中哪些数据是reference的前提下,那虚拟机是不敢把内存中所有为123456的值改成654321的,所以要使用句柄来保持reference值的稳定),这样每次定位对象都少了一次间接查找的开销,提升执行性能。 “基于handler的对象查找方式”这个说法与...   (2回应)

    2013-07-08 17:33   3人喜欢

  • RednaxelaFX

    RednaxelaFX (Script Ahead, Code Behind)

    至此,官方提供的JDK可以运行于Windows(不含Windows 9x)、Linux、Solaris和Mac OS平台上,支持ARM、x86、x64和Sparc指令集架构类型。 这里其实得说清楚一点。目前,Oracle所提供的Java SE的JDK支持这些平台: (以Oracle Java SE 7 update 25为准) http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html Linux ARM v6/v7 Soft Float ABI Linux x86 Linux x86 Linux x64 Linux...

    2013-07-08 15:11   1人喜欢

  • fankaicn

    fankaicn

    提一个小问题,这里介绍给新对象分配内存时,把bump the pointer翻译为“指针碰撞”,不太好理解。其实bump不只有碰撞的意思,还有增加的意思,所以我觉得把bump the pointer、翻译为“指针扩张”是更加贴切的。

    2018-07-10 13:34

  • 灵魂深处

    灵魂深处

    这一章只是大致介绍一下java的历史,以及市面上有哪些虚拟机。另外编译虚拟机以及调试虚拟机目前没有太多关注,感觉暂时不用了解。

    2018-06-08 00:44

  • 不欺售欺

    不欺售欺

    常量池中主要存放两大类常量:字面量和符号引用。字面量比较接近Java语言层面的常量概念,如文本字符串、声明为final的常量值等。 这里写的声明为final的常量值其实不太准确,这里应该是指字段。我试了下在方法体里面声明的final int 的局部变量,这个值并没有加入到常量池中。其实后面本书也提到方法体内的final为编译时的约束,编译成字节码后是看不出变量是不是final的(见P309)。

    2018-04-09 19:25

  • wyyl1

    wyyl1

    介绍主内存与工作内存之间是怎样交互的 锁定、解锁、读取、载入、使用、赋值、存储、写入 目前已经放弃这8种操作去定义Java内存模型的访问协议

    2018-03-28 10:10

  • 元勰

    元勰

    这节讲到类加载器的双亲委托机制。类加载器要加载一个类的时候,先交给自己的父类加载。父加载器加载不了。再交给自己来加载。这么做主要保证对于一个类的加载,在任何时候都是一样的。 这种问题本质就是搜索。先看这个文件在哪里,谁来处理。这里面有一个东西,就是计算机网络在dns解析的时候用到的路由表。本地找不到,再到父级路由找,再往上找一直到跟路由。感觉这两者理念差别并不大。主要原因在于,java类加载是先让父类...

    2018-03-20 16:49

  • wyyl1

    wyyl1

    加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班地开始,而解析阶段则不一定:它在某些情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或晚期绑定)。注意,这里笔者写的是按部就班地“开始”,而不是按部就班地“进行”或“完成”,强调这点是因为这些阶段通常都是相互交叉的混合式进行的,通常会在一个阶段执行的过程中调用、激活另外一...

    2018-03-06 11:56

  • wyyl1

    wyyl1

    虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。

    2018-03-06 11:27

<前页 1 2 3 后页>

笔记是你写在书页留白边上的内容;是你阅读中的批注、摘抄及随感。

笔记必须是自己所写,不欢迎转载。摘抄原文的部分应该进行特殊标明。

深入理解Java虚拟机(第2版)

>深入理解Java虚拟机(第2版)