Java对象创建
2019-03-29 15:51:07 24 举报
Java对象的创建
作者其他创作
大纲/内容
Yes
这个符号引用代表的类是否已被加载、解析和初始化过
new指令
类加载
虚拟机为对象分配内存
多线程情况下,分配内存是不安全的。解决办法:1.对分配内存空间的动作进行同步处理——虚拟机采用CAS配上失败重试的方式保证更新操作的原子性;2.把内存分配的动作按照线程划分在不同的空间中进行,即每个线程在Java堆中预先分配一小块内存称为本地线程分配缓冲(TLAB),哪个线程要分配内存,就在其线程的TLAB上分配,只有TLAB使用完并分配新的TLAB时,才需要同步锁定
虚拟机将分配到的内存空间初始化为0,不包括对象头
这个指令的参数是否能在常量池中定位到一个类的符号引用
java堆内存不规整:虚拟机需要维护一张表,记录哪些内存是可用的,在分配的时候从列表中找到一块足够大的空间划分给对象实例,并更新列表上的记录——空闲列表
No
java堆内存绝对规整:所有用过的内存放在一边,空闲的在另一边,中间放着一个指针作为分界点的指示器。那分配内存就是把那个指针指向空闲空间那边挪到一段与对象大小相等的距离——指针碰撞
执行<init>方法
0 条评论
下一页