![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm原理
GongFuBoy丶
菜鸟一枚
展开
-
Java内存区域与内存溢出异常(一)
Java内存区域与内存溢出异常(一)概述对于一个C或C++程序开发者来说,他们参与了一个对象创建,分配,初始化和销毁的所有过程,但是Java相比于C开发来说,不同的是,jvm自动内存管理机制的帮助下去自动分配地址,创建对象和销毁对象;好处是关于内存溢出和内存泄漏的问题不容易发生,坏处就是一旦出现内存相关的问题,定位问题是极为复杂的运行时的内存局域 程序计数器作用程序计数器是一个很小的内存区域,可以认原创 2017-12-22 17:57:32 · 143 阅读 · 0 评论 -
垃圾收集器与内存分配策略(一)
垃圾收集器与内存分配策略(一)垃圾收集器概述 首先对于Java程序来说,程序计数器,虚拟机栈和本地方法栈的生命周期是伴随着线程的开始到结束就消失,而对于方法区和堆内存空间是随着方法执行去动态分配内存,而所分配的内存并不会随着线程执行结束而被回收,所以我们需要垃圾收集器来处理这一部分内存 判断对象是否存活引用计数器算法 概念给对象添加一个引用计数器,每当一个地方引用到它的时候,就加1,每当一个引用原创 2017-12-28 15:25:52 · 215 阅读 · 0 评论 -
垃圾收集器与内存分配策略(二)
垃圾收集器与内存分配策略(二)HotSpot的算法实现枚举根节点(寻找GC ROOT)由于目前大多数JVM垃圾回收判断机制都是采用的可达性分析,那么在JVM需要发生GC的时候,就需要寻找执行方法中的根节点(GC ROOT);如果说就目前程序一直在不停的执行,那么对于根节点(GC ROOT)是有可能在不停的变化的;我们这里需要JVM停止当前所有程序的执行(stop the world),才能进行根节点原创 2017-12-28 15:26:27 · 172 阅读 · 0 评论 -
垃圾收集器与内存分配策略(三)
垃圾收集器与内存分配策略(三)垃圾收集器Parallel Scavenge收集器 概念Parallel Scavenge是一个新生代收集器,使用复制算法,也是并行收集;相比于ParNew收集器不同的是:Parallel Scavenge可以设置吞吐量 吞吐量的概念吞吐量指的是CPU运行用户代码时间与CPU消耗总时间的比值(CPU消耗总时间为用户代码运行时间+垃圾回收消耗时间)吞吐量 = 运行用户代码原创 2017-12-28 15:27:19 · 171 阅读 · 0 评论 -
垃圾收集器和内存分配策略(四)
垃圾收集器和内存分配策略(四)垃圾收集器G1收集器 概念G1作为一个可以使用新生代和老年代两块不同内存区域的收集器(但是G1所管理的内存区域与传统的分代内存模型有一定的区别,它划分了很多块Region,每一块Region有新生代和老年代两块,所有Region一同组成新生代和老年代,同时作为新生代或者老年代内存可以是不连续的),保证了类似CMS的并发处理的特性,在JDK1.7后正式提供商用版本 使用算原创 2017-12-28 15:27:53 · 204 阅读 · 0 评论