Synchronized锁的是什么?

并发编程中锁的作用:让多线程同步执行

多线程同步内部如何实现:wait/notify,synchrozied,ReentranLock(1.6后)

一、Synchroized同步锁,锁的是什么?

锁的是对象头,并非代码块

二、Java对象由哪几部分组成?

Java对象最多由三部分组成。

对象头(必有)

Java对象的实例数据(可有)

填充数据(可有)

例1(有填充数据的情况)

public class L{ 
boolean flag = flase; 
}

例2(无填充数据的情况)

public class L{
 int a = 2; 
}

三、对象头由哪几部分组成?

对象头有96bit,两部分组成

1、Mark Word(64bit)

存储对象的hashCode、锁信息、分代年龄,GC标志

2、Class pointer/Class Metadata Address(32bit或64bit)

类型指针指向对象的类元信息,JVM通过这个指针确定该对象是哪个类的实例

四、使用Synchroized关键字时,对象有几种状态?

有五种状态。

1、无状态 new出来的时候

2、偏向锁

3、轻量锁

4、重量锁

5、gc标记

发布了129 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41808387/article/details/104639168
今日推荐