【JVM+GC】JVM的理解以及总结,通俗易懂

【问题一】Jvm的体系结构:

Jdk 减 工具=jre,jre 减 类库=jvm

方法区和堆被所有线程共享

Java栈(虚拟机栈)=白色   运行时数据区线程私有

线程私有,线程1份 2个线程 2份

虚拟机栈:存储当前线程运行方法所需的数据,指令,返回地址

包含main方法和所有运行的方法。

方法(栈帧)中包含局部变量表(this,八大基本数据类型+引用(地址 hotspot版本(句柄池)  直接指针))

栈帧包括操作数栈/动态链接(运行时的多态)/返回地址

本地方法栈native

存储当前线程运行native方法所需的数据,指令,返回地址

本地方法native 底层jvm使用C++实现的

程序计数器

当前线程正在执行的字节码指令的地址(行号)

线程私有,100个线程 虚拟机栈,本地方法栈 100份

Eg:机器cpu执行(16核)-->100个线程

GC的作用域------> 共享的区域

【问题二】常见的垃圾回收算法

  1. 引用计数
  2. 复制回收算法
  3. 标记清除
  4. 标记整理

1.引用计数法(应用:微软的COM/ActionScript/Python...)

缺点:

  • 每次对对象赋值时均要维护引用计数器,且计数器本身也有一定的消耗ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值