![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 94
JVM学习笔记
Allen Chou
这个作者很懒,什么都没留下…
展开
-
【深入理解Java虚拟机】读书笔记——虚拟机类加载机制
虚拟机把字节码文件从磁盘加载进内存的这个过程,我们可以粗糙的称之为「类加载」,因为「类加载」不仅仅是读取一段字节码文件那么简单,虚拟机还要进行必要的「验证」、「初始化」等操作,下文将一一叙述。类加载的基本流程一个类从被加载进内存,到卸载出内存,完整的生命周期包括:加载,验证,准备,解析,初始化,使用,卸载。如图:这七个阶段按序开始,但不意味着一个阶段结束另一个阶段才能开始。也就是说,不同的阶段往往是穿插着进行的,加载阶段中可能会激活验证的开始,而验证阶段又有可能激活准备阶段的赋值操作等,但整原创 2021-02-17 22:41:04 · 316 阅读 · 2 评论 -
详解Java GC、新生代、老年代
Java 中的堆是 JVM 所管理的最大的一块内存空间,堆主要用于存放各种类的实例对象和数组。,如下图所示:在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old)。新生代 ( Young ) 又被划分为三个区域:Eden、S0、S1。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。Java 中的堆也是 GC 收集垃圾的主要区域。GC 分为两种:Minor GC、Full GC ( 或称为 Major GC )。1.年轻..原创 2021-02-13 22:47:35 · 6090 阅读 · 1 评论 -
【深入理解Java虚拟机】读书笔记——垃圾收集器与内存分配策略
垃圾收集 (GC)垃圾收集(Garbage Collection,GC),它的任务是解决以下 3 件问题:哪些内存需要回收? 什么时候回收? 如何回收?其中第一个问题很好回答,在 Java 中,GC 主要发生在 Java 堆和方法区中,对于后两个问题,我们将在之后的内容中进行讨论,并介绍 HotSpot 的 7 个垃圾收集器。判断对象的生死...原创 2021-02-13 22:31:41 · 204 阅读 · 1 评论 -
【深入理解Java虚拟机】读书笔记——Java内存区域与内存溢出异常
Java内存区域与内存溢出异常一、 运行时数据区域总共也就这么 5 个区(直接内存不属于 JVM 运行时数据区的一部分),除了程序计数器其他的地方都有可能出现 OOM (OutOfMemoryError),其中像是程序计数器和两个栈(Java 虚拟机栈 & 本地方法栈)都是每个线程要有一个的,所以肯定是线程隔离的。而其他 2 个区就是线程共享的了,也就是说,如果有多个线程要同时访问这两个区的数据,是会出现线程安全问题的。程序计数器当前线程所执行的字节码的行号指示器,字节码解.原创 2021-02-11 13:45:32 · 259 阅读 · 2 评论 -
【深入理解Java虚拟机】读书笔记——走进Java
第1章 走进 JavaJava 技术体系从广义上讲,Clojure、JRuby、Groovy等运行于Java虚拟机上的语言及其相关的程序都属于Java技术体系中的一员。如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组成部分:Java程序设计语言 各种硬件平台上的Java虚拟机 Class文件格式 Java API类库 来自商业机构和开源社区的第三方Java类库首先介绍JDK和JRE的区别:JDK:Java程序设计语言 + Java虚拟机 + Java AP原创 2021-02-09 23:40:37 · 329 阅读 · 1 评论