JVM相关笔记

本文介绍了JVM内存划分,包括方法区、Java堆、Java栈及本地方法栈等关键区域的功能。详细讨论了Java堆作为线程共享内存的主要用途,并探讨了对象分配策略如指针碰撞与空闲列表法。此外,还分析了并发环境下创建对象的解决方案。

JVM 把内存分为几块不同的数据区
1.方法区
2.java堆
3.java栈
4.本地方法栈

java 堆
是被所有线程共享的一块内存区域,主要是存放对象实例的.
那么怎么分,有两种办法,
1.指针碰撞
就是一大块.一次找到一块的大小,然后指针往后移这么大的,
2.空闲列表法
有的时候不是连续分配的. 所以就用一张表,记录下来哪些地方是空闲的.’

然后创建对象是一个频繁的操作啊. 你想想你的代码中是不是时常new 一个对象
这就涉及到多线程并发的问题了,解决这个问题两个方案
1.CAS保证数据操作的原子性
2.按线程分配内存,然后预先分配一个块,本地线程分配缓冲TLAB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值