JVM知识点概要

1 篇文章 0 订阅
1 篇文章 0 订阅

JVM虚拟机

类装载子系统装载.class文件,加载到运行时数据区,通过字节码执行引擎一步步修改程序计数器,执行程序,在方法区中找到类信息进行执行

线程私有:栈,本地方法区,程序计数器

非线程私有:堆,方法区(元空间)

栈:

栈帧:(每个方法对应一个栈帧)先进后出FILO

  1. 局部变量表:存储方法中的局部变量 ,若局部变量为一个实例对象,则其地址指向堆中
  2. 操作数栈:存放程序执行时进行操作的数据的临时空间。
  3. 动态链接:方法代码是放到方法区的,当你需要调用时,需要入口地址,动态链接就是这个方法的入口地址
  4. 方法出口:当调用该方法时一开始时,就会将该方法的下一行(出口)保存到方法的方法出口中

本地方法栈

本地方法的标志native关键字,java语言调用C语言就是通过本地方法去调用的。

本地方法栈就是存放调用,执行本地方法时存储的相关信息的一小部分内存

方法区

:主要放常量,静态变量,类信息。类信息由字节码执行引擎执行,若静态变量为对象类型,那么其地址必指向堆

存放new出的对象,

若eden区的对象满了,则触发minor gc,gc root找到那些没被引用的对象清除,eden中留下剩下的对象进入survivor1区,如果survivor2区也有对象,则也移入s1区,以此循环,移入s2区,每移动一次,年龄加1,直到年龄为15移入老年代 ,老年代满了后进行full gc,老年代放不下了就会outofMemory(OOM)内存溢出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值