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