JVM
@Peanut
这个作者很懒,什么都没留下…
展开
-
双亲委派机制
1、当AppClassLoader(应用程序类加载器)加载一个class时,它首先不会自己去尝试加载这个类,而是把类加载请求委派给父类加载器ExtClassLoader(扩展类加载器)去完成。2、当ExtClassLoader(扩展类加载器)加载一个class时,它首先也不会自己去尝试加载这个类,而是把类加载请求委派给BootStrapClassLoader(启动类加载器)去完成。3、如果Bo...转载 2020-03-22 18:57:14 · 86 阅读 · 0 评论 -
堆外内存和堆内内存
转载:https://blog.csdn.net/qq_36470686/article/details/84591536.转载 2020-03-22 18:39:57 · 197 阅读 · 0 评论 -
Minor GC安全检查
JVM堆内存分为:年轻代和老年代Minor GC:发生在年轻代,频率较高速度较快多数Java对象优先在Eden区分配空间,如果Eden空间不足,就会执行Minor GC。并把所有存活下来的对象转移到其中一个survivor区。Minor GC同样会检查存活下来的对象,并把它们转移到另一个survivor区。总共有两个survivor区,要保证总会有一个survivor区是空的,便于下次...原创 2020-03-22 17:54:19 · 200 阅读 · 0 评论 -
类加载机制过程
1.加载。将代码转换成二进制字节流加载进内存。加载完之后创建一个Class对象,这个对象是访问数据的入口。2.验证。JVM规范验证和代码逻辑验证。3.准备内存分配和初始化。对static修饰的类变量进行内存分配和初始化为0,其他类成员变量到初始化阶段才初始化。4.解析针对接口、字段、方法等进行解析,将常量池中的符号引用替换成内存的直接引用。5.初始化遇到5种情况会进行初始化:ne...转载 2020-03-22 14:42:38 · 86 阅读 · 0 评论 -
为什么存在GC?
因为年轻代每次只使用一个survivor保存仍存活的对象有了GC,就不需要程序员去人工释放内存空间,可以有效的防止内存泄露,有效的使用可以使用的内存。...原创 2020-03-22 14:18:55 · 131 阅读 · 0 评论 -
java垃圾回收器
垃圾收集器可以分为回收新生代和回收老年代两种类型收集器。回收新生代收集器有:Serial、PraNew、Parallel Scavenge,回收老年代的收集器有:Serial Old、Parallel Old、CMS,回收整个Java堆:G1收集器。Serial收集器(复制算法):新生代单线程收集器,在进行垃圾回收时需要停止其他的所有工作线程。Serial Old收集器(标记-...原创 2020-03-22 14:04:27 · 109 阅读 · 0 评论 -
JVM内存布局
JVM五大内存布局:堆、方法区(元空间)、虚拟机栈、本地方法栈、程序计数器堆和方法区线程共享虚拟机栈、本地方法栈和程序计数器线程私有即每个线程都会有自己的分配空间堆是内存最大的一块,主要存放对象实例和数组;方法区主要存储已被虚拟机加载的类信息、常量、静态变量、编译器编译后的代码等数据。虚拟机栈主要存放局部变量表、操作栈、动态链接、方法出口等信息;本地方法栈和虚拟机栈基本一样,不...原创 2020-03-21 21:26:06 · 163 阅读 · 1 评论 -
从年轻代转移到老年代
1.通过年龄计数器判断一个对象是否需要转移。1.通过年龄计数器判断一个对象是否需要转移。对象每经过一个GC仍然存活,年龄计数器加一。当年龄超过设定的值,则将其通过担保机制转移到老年代。2.或者动态绑定,当Suvivor中年龄相同的对象数量超过一半,则年龄大于等于该年龄的的对象转移到老年代,无需等待设置的最大年龄值。3.大对象直接进入老年代。转载地址:https://my.oschina....转载 2020-03-21 20:59:41 · 698 阅读 · 0 评论 -
哪些对象存放到老年代?
1.大对象(字符串与数组),是指需要大量连续内存空间的java对象,比如字符串和数组。即超过了设定值的对象,直接在老年代中分配。2.长期存活的对象可以从年轻代进入老年代。...原创 2020-03-21 20:08:44 · 1260 阅读 · 0 评论 -
JVM垃圾回收算法
1.标记-清除算法:分为“标记”和“清除”两个阶段,先利用可达性分析算法,标记出存活的对象。标记完之后,再扫描整个空间中未被标记的对象进行回收。缺点:效率低,会造成大量碎片。(清除后会产生大量的不连续的内存碎片)2.标记-整理算法:在标记-清除算法的基础上,标记出所有需要回收的对象,但是不会直接清理,而是将存活的对象向一端移动,在移动过程中清理掉可回收对象,并更新对应的指针。优点:解决了...原创 2020-03-21 19:50:33 · 128 阅读 · 0 评论 -
JVM垃圾回收机制
垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。有两种方法:1.引用计数法:给对象添加一个引用计数器,每当有一个地方引用这个对象时计数器值就+1;引用失效时,计数器值就-1;任何时刻计数器为0的对象代表不可能再被使用。优点:引用计数收集器可以很快地执行,交织在程序运行中。缺...原创 2020-03-21 19:11:58 · 102 阅读 · 0 评论