JVM
文章平均质量分 65
Java Virtual Machine
不想当程序汪的第N天
我没秃,我还不够强
展开
-
JVM 垃圾收集器
JVM 垃圾收集器Serial 收集器ParNew 收集器Parallel Scavenge 收集器CMS 收集器G1 收集器Serial 收集器Serial 收集器称为串行收集器,是历史最久远的垃圾收集器,它是一个单线程收集器,并不是只使用一个线程进行垃圾收集,最主要的是它在进行垃圾收集时必须暂停其他所有工作线程直到收集结束。新生代采用标记-复制算法,老年代采用标记-整理算法。ParNew 收集器ParNew 收集器其实就是多线程版的 Serial 收集器,使用多线程进行垃圾收原创 2021-02-27 20:04:48 · 96 阅读 · 0 评论 -
【JVM】GC垃圾回收
JVM在进行GC时,并不是新生代、老年代一起进行,大部分都是在新生代中回收,GC又分为Minor GC和Major GC。Minor GC 和 Major GC 区别Minor GC:只针对新生代区域,指的是发生在新生代中的垃圾收集,由于大多数对象存活率不高,所有Minor GC非常频繁,回收速度快。Major GC:指的是发生在老年代的垃圾收集,出现Major GC时,经常会伴随至少...原创 2020-04-25 10:41:19 · 95 阅读 · 0 评论 -
【JVM】堆
一个JVM实例只存在一个堆内存,堆内存的大小是可以调节的。堆内存逻辑上分为三部分:新生代、老年代、永久代。但JDK1.8后,分为:新生代、老年代、元空间。新生代新生代包括伊甸区和幸存区,幸存区又包括幸存0区和幸存1区。在堆内存中也会存在内存溢出的现象,我们每次通过new出来的对象是存放在堆中的伊甸区,当new对象数量过多,伊甸区达到饱和,触发GC,进行垃圾回收,在GC过后幸存下来的对象...原创 2020-04-24 15:35:22 · 134 阅读 · 1 评论 -
【JVM】栈
栈管运行,堆管存储。不仅在JVM中有栈的概念,在数据结构中,两大重要概念为:队列、栈。队列FIFO(First In First Out),先进先出。栈FILO(First In Last Out),先进后出。Stack(栈)栈主管Java程序的运行,在线程创建时创建,它的生命周期是跟随线程的生命周期,线程结束栈内存也就释放,对于栈而言不存在垃圾回收问题,生命周期和线程是一致的,是线...原创 2020-04-23 20:14:33 · 82 阅读 · 0 评论 -
【JVM】方法区
从我的上一篇JVM体系结构文章的中可以看出,方法区是属于所有线程共享的区域,并且存在垃圾回收,但严格来说,方法区的垃圾回收非常少。Method Area供各种线程共享的运行时内存区域,它存储了每一个类的结构信息,...原创 2020-04-20 10:54:06 · 71 阅读 · 0 评论 -
【JVM】Native
从我的上一篇JVM体系结构文章的中可以看出,有三部分,本地方法栈、本地方法库、本地方法接口。这三部分都与”本地“有关系,这一篇文章来一起探讨一下。Native首先,我们要先知道 Native 是什么?Native 在 Java 中是一个关键字,简单来说,Native 主要作用于方法之上,是能让 Java 能调用非 Java 代码的接口。一个 native 方法是指该方法的实现由非 Java...原创 2020-02-21 14:12:04 · 298 阅读 · 0 评论 -
【JVM】ClassLoader
类加载器从我的上一篇JVM体系结构文章的中可以看出,在 JVM 的内存模型中,类加载器是处于一个较为重要的位置。类加载器负责将 Java 的 .class 文件加载入 JVM 的内存区域,.class 文件的开头都有特定的文件标识,并且将这些内容转换成方法区中的运行时数据结构,类加载器只负责加载 .class 文件,Execution Engine 决定其是否能运行。...原创 2020-02-21 13:05:29 · 150 阅读 · 1 评论 -
简单一篇,JVM体系结构
JVM学习 Java 肯定会听说过 JVM,从字面上看,JVM 指的是 Java Virtual Machine(Java虚拟机),在作者之前几次面试经历中,经常会被问到什么是 JVM 和 JVM 调优的问题。也正是因为有了 JVM 的存在,才使得 Java 语言拥有跨平台的特性。我认为,JVM 不能用Java虚拟机潦草概括,JVM 是一种Java虚拟机规范,而众多大厂家通过实现此规范研发出不...原创 2020-02-20 11:44:44 · 136 阅读 · 2 评论