
JVM
JVM
叭了个叭叭叭叭叭
比起平凡度日更想带着梦想讴歌感动
展开
-
JVM内存区域
JVM内存区域 JVM内存区域主要分为:线程私有区域(程序计数器、虚拟机栈、本地方法区)、线程共享区域(JAVA堆、方法区)、直接内存。 1 线程私有区域(Thread Local) 线程私有数据区域生命周期与线程相同,依赖用户线程的启动/结束 而 创建/销毁。 1.1 程序计数器(Program Counter Register) 一块较小的内存空间,是当前线程所执行的字节码的行号指示器,每条...原创 2019-07-31 17:41:03 · 111 阅读 · 0 评论 -
垃圾回收与算法
垃圾回收与算法 GC要做的三件事: 哪些内存需要回收?(what) 什么时候回收?(when) 怎么回收?(how) 1 如何确定垃圾 由于引用计数法的循环引用问题,Java 使用的是可达性分析的方法。 1.1 引用计数法(Reference-Counting) 每个对象有一个引用计数器,当对象被引用一次则计数器加1,当对象引用失效一次则计数器减1,对于计数器为0的对象意味着是垃圾对象,可以被...原创 2019-08-05 11:45:48 · 178 阅读 · 0 评论 -
JVM运行时内存
JVM运行时内存 Java 堆从 GC 的角度还可以细分为: 新生代( Eden 区 、 From Survivor 区 和 To Survivor 区 )和老年代。 1 新生代 用来存放新生的对象。一般占堆的 1/3 空间。 新生代又分为 Eden 区、ServivorFrom、ServivorTo 三个区。 1.1 Eden区 Java新对象的出生地(如果新创建的对象占用内存很大,则直接分配...原创 2019-08-01 16:26:07 · 120 阅读 · 0 评论 -
JAVA四种引用类型
JAVA四种引用类型 强引用 在 Java 中最常见的就是强引用。 把一个对象赋给一个引用变量,这个引用变量就是一个强引用。 当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。 因此强引用是造成 Java 内存泄漏的主要原因之一。 软引用 弱引用 虚引用 ...原创 2019-08-14 10:31:54 · 186 阅读 · 0 评论