![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
Dim_Jerry
这个作者很懒,什么都没留下…
展开
-
Java堆
6. 堆 1. 概述 ➢ 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 ➢ Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 ➢ 堆内存的大小是可以调节的。 ➢《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。 ➢ 所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(ThreadLocal Allocation Buffer, TLAB)。 ➢ 默认堆空间大小: 初始内存大小: 物理电原创 2020-05-27 11:07:47 · 227 阅读 · 0 评论 -
双亲委派机制的特点
双亲委派机制: 1. 原理: 如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行; 如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器; 如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式。 如果程序中没有定义过自己的类加载器,一般情况下,应用程序加载类加载器就是这个程序的默认加载器。 2.双亲委派模型的好处 1. 防止内存中出现多份同样原创 2020-05-24 15:12:51 · 364 阅读 · 0 评论 -
JVM的整体结构和生命周期
1. JVM 的整体结构 详细图: 上图中,我们可以根据位置,暂且分为三层结构。 1.1上层: Java虚拟机是用来解释运行字节码文件的,所以它的入口原材料是 Class Files, 字节码文件首先要经过类装载器子系统(Class Loader SubSystem),类装载器子系统的作用就是将class files 文件加载到内存中,生成一个大的class 对象。 在这个过程中,就会涉及到加载(loading)、链接(Lingking)、初始化(Initialization)。 1.2中层:原创 2020-05-24 14:45:14 · 268 阅读 · 0 评论