深入理解jvm虚拟机

本章描述

本章主要深入理解虚拟机,如何处理内存溢出

为什么了解jvm

写出更好的Java代码,使代码更健壮

线程私有内存区

运行时数据区域
程序计数器
	Java多线程切换需要计数器进行分配线程执行
  1. 栈 (执行方法的)
    入口和出口只有一个
  2. 虚拟机栈(变量)
 包含栈帧(用于加载局部变量表),局部变量表(存储变量),操作数栈(所有操作在里面进行操作)
  用于存放全局变量
  1. 方法区
    存放 final 修饰和 static修饰 和方法
  2. 本地方法栈
 用于存放由native修复的 方法,动态链接去调用本地方法栈

线程共享内存区

在这里插入图片描述

分配堆内存

1如果规整使用内存碰撞,如果不规则的使用空闲列表进行处理
2分配内存时使用CAS比较和交换

内存空间初始化(一个对象内存布局 头信息|数据信息 8个字节)
优化技术-逃逸分析(是一种技术手段)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值