JVM - 基础逻辑

该篇博客是 对于我理解JVM 的线索,并未达到供读者观看程度。
下面图片 之前是我画图做的,这次迁移过来,方便自己阅读。

在这里插入图片描述

在这里插入图片描述

1. GC堆

1. java 虚拟机所管理的内存中最大的一块。
	2. java 堆是被所有线程共享的一块内存区域	
	3. 唯一目的:存放内存实例对象,几乎所有的对象实例都在这里分配。
	4. tips:所有的对象分配在堆上面 并不是很绝对。
		 1. jit 编译器 
		 2. 逃逸分析
		 3. 栈上分配
		 4. 标量替换

2.方法区

	这个区域的内存回收目标 主要是针对常量池的回收和对类型的卸载。
	回收的条件很苛刻。

3.常量池

	常量池 并不是只有编译器才能产生,运行器也能将新的常亮放入池中。
   常量池 无法申请内存会抛出outofMemoryError  异常

在这里插入图片描述

JAVA 虚拟机栈

 1. 线程私有
    2. 描述的是JAVA方法执行的内存模型
    
两种异常
  	 线程请求的栈深度大于虚拟机锁运行的深度,将抛 stackOverFlowError
  	 动态扩展 无法申请到足够的内存,outOfMemoryError
    创建方法说明:
	 	每个方法从调用直至执行完成的过程,就对应一个栈帧在虚拟机中入栈到出栈过程.
	 	说明:堆栈中的栈  指的是虚拟机栈  或者说是虚拟机中局部变量表部分。	
	 	
对象引用:
  Reference  它不等同于对象本身,可能是一个指向对象起始地址的引用指针

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值