:当多个线程执行一个方法时,该方法内部的局部变量并不是临界资源,因为这些局部变量是在每个线程的私有栈中,因此不具有共享性,不会导致线程安全问题。...当monitor被占用时就会处于锁定状态,线程执行monitorenter指令时尝试获取monitor的所有权,过程如下:
如果monitor的进入数为0,则该线程进入monitor,然后将进入数设置为...虚拟机可以通过Java对象的元数据信息确定Java对象的大小,但是无法从数组的元数据来确认数组的大小,所以用一块来记录数组长度。..., 反过来看也不是101呀, 先打印的是01无锁, 再打印的是00轻量级锁....在第二次, 加了偏向锁, 打印了两次内存, 第一次是在同步代码块以外, 这时候打印的锁状态是101偏向锁, 难道说, 启动了偏向锁以后, 我的对象没有加任何同步块, 也会加一个锁么?