![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM详解
文章平均质量分 90
lakers_bing
睿智坚强科比精神
展开
-
JVM之------java内存管理
1,JVM 运行的时候会发它管理的内存分为五个区域: (1)程序计数器:保存下一条该执行的指令 (2)虚拟机栈:也就是通常所说的栈,它描述的是java方法执行时的内存模型,每个方法被执行的时候都会同时创建一个栈帧,用于存储方法运行时的一些信息:局部变量表、操作数栈、动态链接、方法出口等信息;因此,每个方法从被调用到执行结束的过程就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程; 局部原创 2013-11-28 14:29:38 · 517 阅读 · 0 评论 -
GC之---MaxTenuringThreshold参数
MaxTenuringThreshold这个参数用于控制对象能经历多少次Minor GC才晋升到旧生代,默认值是15,那是不是意味着对象要经历15次minor gc才晋升到旧生代呢,来看下面的一个例子。 public class GCTenuringThreshold{ public static void main(String[] args) throws Exception{ GC原创 2013-12-18 18:44:11 · 695 阅读 · 0 评论 -
GC之--G1 GC
Garbage-first garbage collector,简称G1 GC,是最终将用于代替Concurrent Mark-Sweep garbage collector(CMS GC)的新一代垃圾回收器。原本的计划是作为JDK7新特性的一部分发布,但其后JDK7一直在坚持不懈的跳票,G1也无法再等下去了。目前JDK1.6update14及以后版本的jvm中已经继承了G1 GC,可以使用参数-转载 2013-12-21 10:00:59 · 1709 阅读 · 2 评论 -
GC之--细说年轻代
1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这原创 2013-12-21 10:51:57 · 787 阅读 · 0 评论 -
myeclipse jvm调整
在以下原创 2014-04-16 09:49:55 · 745 阅读 · 0 评论 -
JVM之-------GC
1,在java的五个内存区域中,程序计数器、虚拟机栈、本地方法栈三个区域随着线程的创建而产生,随着线程的死亡而消失,即内存的回收自动完成; 但是堆和方法区就不一样了,这部分的内存分配和回收都是动态的;GC要重点负责的就是这部分内存的回收; 2,垃圾收集器需要完成的三件事情: (1)哪些内存需要回收? (2)什么时候回收? (3)如何回收? 哪些内存需要回收? 也就是判断堆原创 2013-11-28 14:30:45 · 582 阅读 · 0 评论 -
GC之----CMS
CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器资源,并且应用中存在比较多的长生命周期的对象的应用。CMS是用于对tenured generation的回收,也就是年老代的回收,目标是尽量减原创 2013-12-18 18:28:37 · 545 阅读 · 0 评论