浅谈Jvm GC机制
来源:互联网 发布:网络转播权 编辑:程序博客网 时间:2024/05/31 06:21
在谈GC之前不得不先来谈谈JVM对于内存的管理,因为GC的主要对象是内存中的堆区域。
内存在JVM中主要被分成了栈、堆、方法区还有程序计数器。还有更细的分发,比如又将栈分为虚拟机栈和本地方法栈等。栈中主要存储的是堆中对象的引用。它是线程私有的,堆中主要存放的是对象的实例,它是线程共享的。方法区里面主要存储的是被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
讲一个简单的例子。A a = new A();当程序读到new时首先会去方法区中查找A对象是否已经被虚拟机加载进来,如果没有加载进来的话边要加载对象A,然后内存自动管理机制会在堆中开辟出一段空间用以存放a对象。
GC说白了要主要在解决三个问题:1、回收哪些对象;2、什么时候回收;3、怎样回收。首先关于回收哪些对象问题,实现的算法主要有两种:一种是计数的方法,就是当对象被引用一次时就加1,引用失效时就减1。当计数为0时就回收。第二种是可达性算法。这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起点,从这些节点开始向下收索,收索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连(用图论的话来说,就是从GC Roots到这个对象不可达)时则证明此对象是不可用的。
先分享到这吧。
1 0
- 浅谈Jvm GC机制
- JVM GC机制
- JVM GC机制
- JVM GC机制
- JVM GC机制
- jvm gc机制
- JVM GC机制
- jvm----GC回收机制
- JVM内存GC机制
- JVM内存 GC机制
- jvm Gc的机制
- 浅谈Java GC机制
- JVM的GC机制<一>新生代GC
- JVM的GC机制<一>新生代GC
- JVM-垃圾回收机制(GC)
- JVM GC 垃圾回收机制
- Java GC机制和JVM
- JVM 垃圾回收机制(GC)
- Android开发时你遇到过什么相见恨晚的工具或网站
- 论Android Studio 中 mipmaps 与 drawable 的区别?
- 句柄、引用、指针与对象(转)
- MTK平台相关功能支持
- Struts2模型驱动核心机制详解
- 浅谈Jvm GC机制
- wamp环境下开启vhost后报403
- dom4j解析字符串型soap.xml文件
- Bellman-ford队列优化算法 SPFA算法
- ACM--括号匹配C++实现
- 【红宝书笔记】数据类型小纪录
- vpn gate client
- Java_Iterable_Iterator_foreach学习笔记
- eclipse 读取不到手机 Adb failed to restart Make sure the plugin is properly configured