MinorGC 和 FullGC的理解】的更多相关文章

1.GC回收机制熟悉么,分代算法知道么?2.了解 Java 虚拟机的垃圾回收算法? 从年轻代空间(包括 Eden 和 Survivor 区域)回收内存被称为 Minor GC. Major GC 是清理永久代.Full GC 是清理整个堆空间—包括年轻代和永久代.> Android GCAndroid GC 原理探究- http://geek.csdn.net/news/detail/193654 > Java中的GC是什么? 为什么要有GC?GC目的:回收堆内存中不再使用的对象,释放资源回收…
前言 无论是日常工作,还是企业面试,我们都会经常接触到GC.我们都知道GC是java中的垃圾回收策略.GC帮我们省去了很多事.在GC中,我经常听到的就属于MinorGC和FullGC了.那么在什么情况下才会触发这两种GC呢? MinorGC触发条件 虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间     1.如果大于的话,直接执行minorGC     2.如果小于,判断是否开启HandlerPromotionFailure,没有开启直接FullGC…
新生代GC(Minor GC)指发生在新生代的垃圾收集动作,因为java对象大多都具备朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也比较快. 老年代GC(MajorGC/Full GC):指发生在老年代的GC,出现了MajorGC,经常会伴随至少一次的Minor GC,MaiorGC的速度一般会比Minor慢10倍以上. 老年代的连续空间大于新生代对象总大小,或者历次晋升的平均大小就会进行MinorGC,否则进行FullGC…
触发MinorGC(Young GC) 虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间 1.如果大于的话,直接执行minorGC 2.如果小于,判断是否开启HandlerPromotionFailure,没有开启直接FullGC 3.如果开启了HanlerPromotionFailure, JVM会判断老年代的最大连续内存空间是否大于历次晋升的大小,如果小于直接执行FullGC 4.如果大于的话,执行minorGC 触发FullGC 老年代空间不足 如…
主要讨论默认的Serial/Serial Old内存分配: 一.几种分配方案 1.  对象优先在Eden分配: 一般情况下,对象会在新生代的Eden区分配,Eden区没有足够空间时,虚拟机会 发起一次MinorGC:当MinorGC时,若无法放入survivor空间,就会再通过分配担保机制转移到老年代中: 2. 大对象直接进入老年代: 通过 -XX:PretenureSizeThreshold参数设置: 3. 长期存活的对象进入老年代: 通过 -XX:MaxTenuringThreshold参数…
1.对象已经死亡? 1.1引用计数法:给对象中添加一个引用计数器,每当有一个地方引用他时,计数器值就加1:当引用失效时,计数器值就减1:任何时刻计数器都为0的对象就是不可能再被使用 的.但是它很难解决对象之间相互循环引用的问题. 1.2根搜索算法:主流的商用语言(Java和C#),都是使用根搜索算法判定对象是否存活的.这个算法的基本思路:通过一系列的名为“GC Roots Tracing”的对象作为起点,从 这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一…
在进行Java程序设计时,一般不涉及内存的分配和内存回收的相关代码,此处引用一句话: Java和C++之间存在一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外的人想进去,墙里面的人想出来 ,个人从这两句话中,捕获到了 两个点 . java的自动内存管理机制,极大的节省了开发人员的精力,避免了易错且复杂的内存管理设计,相对于手动的内存管理这是极大的飞跃. java自动内存管理机制,其不能根据具体的场景提供最优的内存管理,其只提供普适的内存管理机制.想比于C++的手动内存管理,灵活性不够,存在制约…
1.内存分配参数---大纲 Ø如何设置堆内存 Ø如何设置栈内存 Ø如何设置方法区 Ø如何设置对的分配比率 Ø设置参数打印堆栈: ØJava程序的两种模式:Server&Client 2.设置堆内存 Ø设置最大堆内存 Ø参数:-Xmx10M,表示堆内存最大为10M,如果超过10M则会出现内存溢出的异常. Ø查看方法: maxMemory() Ø设置最小堆内存 Ø参数:-Xms2M,系统初始化的时候就会分配2M内存给java程序. Ø设置新生代内存 Ø参数1:-Xmn5M,表示堆内存中新生代内存大小…
java性能优化权威指南读后笔记 三重境界 1.花似雾中看:对于遇到的额问题还看不清,不知道真真假假,是是非非. 2.悠然见南山:虽然刚开始对这个领域还不清楚,但随着时间推移,你对它有许多自己的见解,但对重要的知识还缺乏理解. 3.一览众山小:你对这个领域已经很熟悉了,能够游刃有余的解决遇到的问题. 三大步骤 1.性能监控 1.JVM性能监控: 1.监控垃圾收集报告(GC日志) 2.监控JIT编译器 3.监控内加载 2.依据: 1.GC日志 2.堆转储快照 3.线程快照 4.异常堆栈 2.性能分…
前言:该篇主要对Java虚拟机相关的题目进行介绍. JVM篇 基本上在面试的时候,都会或多或少的涉及JVM,主要看面试官的侧重点,笔者在面试过程中,是通过volatile问题,引导了JVM相关问题上的. 1)JVM的内存区域,各区域存储什么,及其作用. ①程序计数器 #1.当前线程正在执行字节码行号指示器. #2.为了线程切换后能够恢复到正确的执行位置,每个线程都需要一个独立的程序计数器.(线程私有) #3.当线程执行的是一个Java方法,程序计数器记录的是正在执行的虚拟机字节码指令的地址. #…