基本類(lèi)型賦值
int a = 3;
int a
聲明 int 型的引用a, 存儲(chǔ)在棧中
3
查找堆棧中是否存在為3
的字面值,若不存在挂滓,在堆棧中開(kāi)辟一個(gè)地址存放3
字面量
=
將引用a
指向存儲(chǔ)3
字面量的地址
String類(lèi)型賦值
String s = "hello"妆档;
String s
聲明 String 類(lèi)型的引用 s,存儲(chǔ)在棧中
"hello"
存儲(chǔ)在String 常量池中
=
將引用s
指向存儲(chǔ)hello
的地址
類(lèi)賦值
StringBuffer buffer = new StringBuffer("hello");
new StringBuffer("hello")
在堆中創(chuàng)建一個(gè)對(duì)象
StringBuffer buffer
聲明StringBuffer類(lèi)型的引用buffer
=
將buffer
指向創(chuàng)建的對(duì)象的地址
總結(jié)
=
左邊聲明某類(lèi)型的引用,存儲(chǔ)在棧中
=
右邊將值存儲(chǔ)在內(nèi)存中膀懈,基本類(lèi)型值存儲(chǔ)在棧中富岳,常量值存儲(chǔ)在常量池中,對(duì)象存儲(chǔ)在堆中
=
連接引用指向存儲(chǔ)值的地址
參數(shù)傳遞
理解為引用的傳遞
但是在效果上基本數(shù)據(jù)類(lèi)型和類(lèi)的參數(shù)傳遞有區(qū)別
這是為什么呢陈瘦?