JVM相关笔记

来源:互联网 发布:细说php第四版pdf下载 编辑:程序博客网 时间:2024/05/22 05:33

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

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

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

原创粉丝点击