JVM
张Fuliang
这个作者很懒,什么都没留下…
展开
-
JVM笔记之运行时数据区域
1.程序计数器程序计数器是一块较小的内存区域,他可以看做是当前线程所执行的字节码的行号解释器。每条线程都会有一个独立的程序计数器,各个线程互不影响,独立存储,这类内存区域叫做 ** “线程私有”**的内存。2.java虚拟机栈与程序计数器一样,java虚拟机栈也是线程私有的。他的生命周期与线程相同。虚拟机栈描述的是java方法执行的内存模型: 每个方法在执行的时候都会创建一个栈...原创 2019-04-17 17:14:16 · 105 阅读 · 0 评论 -
JVM笔记之堆中对象分配、布局、与访问的全过程
HotSpot对象揭秘1.对象的创建当虚拟机遇到一个new指令的时候,先检查在常量池中是否已经加载了该类的符号引用。并检查这个类是否已经执行了类加载过程,没有则要加载该类。类加载检查通过后,将为新生对象在 堆 上分配内存。分配内存的两种方法:指针碰撞: 如果java堆中的内存是绝对工整的,已分配的在一边,未分配的在另一边。中间用一个指针分割。空闲列表: java堆中内存是零散的,那么就...原创 2019-04-23 12:34:34 · 270 阅读 · 0 评论 -
垃圾收集器与内存分配策略
垃圾收集器与内存分配策略如何判断对象是否已死引用计数算法给对象添加一个引用计数器,每当有一个地方引用的的它时,计数器就加1,当引用失效的时候,计数器的值就减1.任何时候计数器的值为0的对象是不可能被使用的。可达性分析算法通过一些的"GC Roots"作为对象的起始点,向下搜索,搜索走过的路径叫做引用链,当一个对象到 GC Roots没有任何引用链的的时候(到这个对象不可达)的时候,这些...原创 2019-07-16 01:32:26 · 142 阅读 · 0 评论 -
垃圾收集算法
垃圾收集算法标记-清除算法过程:首先标记出要回收的对象,然后标记完成后统一对被标记对象进行回收。标记过程有“引用计数算法”,“可达性分析算法”。存在问题:效率不高:标记和回收的效率都不高空间问题:容易产生大量的空间碎片,当虚拟机需要分配大块内存时,可能触发下一次垃圾回收(GC).复制算法过程: 将内存划分为两个区间,在任意时间点,所有动态分配的内存只能分配在其中一个区间(...原创 2019-07-16 01:46:34 · 118 阅读 · 0 评论