笔筒虫
笔筒虫
全部文章
《深入理解Ja...
Java多线程&并发(13)
Java常用类库(5)
Java常识(6)
Java虚拟机(6)
MySQL数据库(7)
《深入理解Java虚拟机》读书小册(8)
剑指offer题解(13)
未归档(65)
算法基础(5)
计算机操作系统(3)
计算机网络(6)
通过UML和小DEMO学习设计模式(10)
归档
标签
去牛客网
登录
/
注册
笔筒虫的博客
全部文章
/ 《深入理解Java虚拟机》读书笔记
(共7篇)
七:垃圾回收器
1.Serial收集器 (-XX:+UseSerialGC 复制算法) 1.是一个单线程收集器,只会使用一个CPU或一条收集线程去完成垃圾收集工作 2.进行垃圾收集时,必须暂停其他所有的工作线程,直至Serial收集器收集结束为止(“Stop The World”) 3.是H...
2019-05-13
0
543
关于《深入理解Java虚拟机读书笔记》这个分类
该分类的内容来源? 周志明先生的《深入理解Java虚拟机第二版》 为什么都标的原创? 现在部分是对书籍做的一个整理和要点提取,后面会逐渐二次提炼整理,逐步更新 为什么大多都是提问的形式? 因为这是我博客的风格,用提问的方式来确保自己是否掌握了这个知识点 基于哪个版本的? 在周先生书籍的...
2019-05-12
0
472
六:HotSpot对象存活判定和垃圾回收算法的实现(是如何发起内存回收的)
首先需要明确 如果逐个检查可以作为GC Roots节点的引用的话,是非常耗时的(很多应用一个方法区就几百兆) 需要保证在分析的过程中对象的引用关系不能发生改变,否则就不能够保证结果的正确性。因此在GC过程中,必须要停顿(枚举根节点是必须要停顿的) 枚举根节点 因此HotSpot中通过使...
2019-05-12
0
559
五:对象的内存布局是什么样的?
在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding) 注:下面的都是在HotSpot中的实现 对象头包括两部分信息,Mark Word和类型指针 对象头的结构: Mark Wor...
2019-05-12
0
776
四:虚拟机是如何为对象分配内存空间的?
“指针碰撞”(Bump the Pointer) && “空闲列表”(Free List) 假设Java堆中内存是绝对规整的,所有用过的内存都放在一边,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪动一段与对象大小相等...
2019-05-12
0
599
三:虚拟机是如何定位到需要访问的对象的?
一、使用句柄访问 使用句柄访问的话,那么Java堆中将会划分出一块内存来作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象实例数据与类型数据各自的具体地址信息 二、使用直接指针进行访问 使用直接指针访问,那么Java堆对象的布局中就必须考虑如何放置访问类型数据的相...
2019-05-12
0
465
一:说说对象创建过程?
一、虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过(如果没有,那必须先执行相应的类加载过程) 二、类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定...
2019-05-12
0
568