mirror of
https://github.com/youthlql/JavaYouth.git
synced 2026-03-14 05:43:50 +08:00
存稿
This commit is contained in:
@@ -363,7 +363,7 @@ Java代码的行号和字节码指令行号的对应关系
|
||||
1. 参数值的存放总是从局部变量数组索引 0 的位置开始,到数组长度-1的索引结束。
|
||||
2. 局部变量表,**最基本的存储单元是Slot(变量槽)**,局部变量表中存放编译期可知的各种基本数据类型(8种),引用类型(reference),returnAddress类型的变量。
|
||||
3. 在局部变量表里,**32位以内的类型只占用一个slot**(包括returnAddress类型),**64位的类型占用两个slot**(1ong和double)。
|
||||
- byte、short、char在储存前辈转换为int,boolean也被转换为int,0表示false,非0表示true
|
||||
- byte、short、char在储存前被转换为int,boolean也被转换为int,0表示false,非0表示true
|
||||
- long和double则占据两个slot
|
||||
4. JVM会为局部变量表中的每一个Slot都分配一个访问索引,通过这个索引即可成功访问到局部变量表中指定的局部变量值
|
||||
5. 当一个实例方法被调用的时候,它的方法参数和方法体内部定义的局部变量将会**按照顺序被复制**到局部变量表中的每一个slot上
|
||||
|
||||
@@ -30,7 +30,7 @@ date: 2020-10-06 22:09:58
|
||||
|
||||
### 可见性概念
|
||||
|
||||
可见性(Visibility):是指一个线程对共享变量进行修改,另一个先立即得到修改后的新值。
|
||||
可见性(Visibility):是指一个线程对共享变量进行修改,另一个线程立即得到修改后的新值。
|
||||
|
||||
### 可见性演示
|
||||
|
||||
@@ -38,7 +38,7 @@ date: 2020-10-06 22:09:58
|
||||
/* 笔记
|
||||
* 1.当没有加Volatile的时候,while循环会一直在里面循环转圈
|
||||
* 2.当加了之后Volatile,由于可见性,一旦num改了之后,就会通知其他线程
|
||||
* 3.还有注意的时候不能用if,if不会重新拉回来再判断一次。(也叫做虚假唤醒)
|
||||
* 3.还有注意不能用if,if不会重新拉回来再判断一次。(也叫做虚假唤醒)
|
||||
* 4.案例演示:一个线程对共享变量的修改,另一个线程不能立即得到新值
|
||||
* */
|
||||
public class Video04_01 {
|
||||
|
||||
Reference in New Issue
Block a user