JVM笔记整理

 

-------------------------再也不敢问我jVM了------------------
javac Persion.java --->编译 java.class

class文件在jvm中运行

运行时数据区是什么?
    把不同的数据放到jvm不同的区域

怎么划分?为什么要这样划分


heap堆:存放对象

每一个线程有一个java虚拟机栈

线程执行方法的过程应该可以用一个数据结构表示:栈---》先进后出
一个进程可以一个java虚拟机栈表示,
方法的执行,可以通过压栈的方式---》一个方法对应一个栈帧

每个java虚拟机线程有一个私有的pc计数器
计数器:记录每个方法运行到的栈帧
计数器执行的方法如果是不是native方法就会记录方法的执行位置,
如果是native方法,计数器就记录为空


----------------运行时常量池---------------
属于java虚拟机“方法区”的一部分,


-------------------jvm问题?---------
运行时数据区的划分?各个区域中所存储的内容?


-------------------ms题
jdk8中还有方法区吗?
方法区,中包含了运行时常量池

Method Area
jdk1.7之前--->Perm Space 永久代
jdk1.8之前--->MetaSpace 元空间

------------------java虚拟机,压栈帧,执行方法的操作过程


-------------垃圾回收
(1)jvm运行时数据区--》逻辑视图
(2)具体落地到物理内存中---》逻辑视图-->内存模型---》memory Model

* 运行时数据--->内存模型的设计
* 内存中存储数据
* 什么时候会是垃圾
* 是垃圾,按照一定的回收算法


内存模型
    存两方面的数据:1.方法区2.堆
        为啥?:这两部分是虚拟机一旦创建,就被所有线程共享的


 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值