① java 基本數據類型 變數賦的值,儲存在計算機的哪裡啊 eg: int i=0; 0儲存在哪裡啊 是在棧中堆
0是在棧中的。
java中八來大基本類型源都是值傳遞的,比如
public class Test1 {
public static void main(String[] args) {
int i=1;
add(i);
System.out.println(i);
}
public static void add(int i){
i++;
}
}
運行結果為1
值傳遞確實是將值復制給方法中的局部變數
比起這個以後肯定會碰到String的值傳遞,因為String類型一旦創建就無法改變,是final類,所以雖然String是引用類型,但傳值規律是和基本類型一樣的。
② JAVA基礎問題,到底是值傳遞還是引用傳遞
傳遞的是對象沒錯,問題出在str = "修改後的str"; 這一句上。
這句話表示新建一個對象,內容是「修改後的str」,然後賦給str
因此,原對象內容並沒有發生變化。這也是java和c++不同的地方。
String[]和int[]中存放的是指向對象的地址,因此修改後它的值可以返回到主函數中。這個是毋庸置疑的。
數組也是一樣,因為數組傳遞的是地址(我這么認為)因此,你對對象的改變就會反應到主函數中。
你採用的String 和 String[]變數的區別是:String變數傳遞的是一個對象,當它被賦予一個新對象內容時,原對象不會發生變化。而String[]是一個數組,傳遞的是對象的地址。新對象賦給新地址,地址沒有變,但對象變了,因此String【】內容變了。