1. java引用數據類型的傳遞
引用數據類型就是以對象的形式存在於計算機棧內存中,在堆內存中保存著一個地址引用,這個引用地址指向了這個對象。我們通過操作這個地址引用,就能獲取到這個對象,並對其進行操作。類似於c中的指針。
你具體想問的什麼問題呢
基本類型八種:
byte、short、int、long、float、double、boolean、char,
除了這八種,都是引用類型,包括string
2. Java中怎麼引用傳遞
//Java中怎麼引用傳來遞,在main中的代源碼
public static void main(String[] args) {
Ldc l = new Ldc("你好");//這里的值可以改
System.out.println(l.str);
}
//----------------------------------------------------------------------------------------------------
//新建一個Ldc類代碼如果
public class Ldc {
public String str ="";
Ldc(String str){
this.str="我在這里返回你傳遞來的參數:"+str;
}
}
3. JAVA中的傳遞都是值傳遞嗎有沒有引用傳遞呢
都是值調用,沒有引用調用。
例如:
首先,編寫一個調用倆對象的方法:
public static void swap(E x,E y){
E temp = y;
y=x;
x=temp;
}
則調用該方法swap(a,b),swap方法的參數x和y兩個對象的引用的拷貝,最終這個方法交互的是這兩個拷貝。最終方法結束後,參數變數x和y被丟棄了。原來的變數a和b仍然引用這個方法調用之前所引用的對象。這個過程說明:java程序設計語言對對象採用的不是引用調用,實際上,對象引用進行的是值傳遞
4. java類方法如何實現引用傳遞和值傳遞
參數是基本類型就是傳值,傳對象就是引用傳遞。
swap(Integer x, Integer y)可以傳遞引用,但是沒辦法實現交換。這跟Integer的實現方式有關。所以不是引用傳遞就一定能改變外面的值。
下面是引用傳遞,交換的情況,又臭又長。
classUntitled{
intneedFix;
publicstaticvoidswap(Untitledx,Untitledy){
inttemp=x.needFix;
x.needFix=y.needFix;
y.needFix=temp;
}
publicstaticvoidmain(String[]args){
Untitle1=newUntitled();
Untitle2=newUntitled();
u1.needFix=3;
u2.needFix=4;
swap(u1,u2);
System.out.println(u1.needFix+","+u2.needFix);
}
}
另外,你可以考慮一下引用傳遞,不過也是一種傳值,java裡面沒有事實上的指針。直接交換引用指向的對象是沒有作用的。
Untitledtemp=x;
x=y;
y=temp;
無效。
5. Java中參數傳遞有沒有引用傳遞
Java只有一種參數傳遞方式:值傳遞!
真正的引用傳遞(pass by reference)是指當引元傳遞給函數時,被調用的函數獲得的是對原值的引用,而非原值的副本。如果函數修改了參數值,那麼調用代碼中的值也會改變,那是因為引元和參數使用了內存中的同一塊地址。
1樓說的數組,傳遞的是數組的引用的拷貝,而不是數組的引用。
其他幾位所說的「引用傳遞」實際上是指「傳遞了引用的拷貝」,所以歸根結底還是「值傳遞」。
6. java中的引用傳遞是什麼
值傳遞:(形式參數類型是基本數據類型):方法調用時,實際參數把它的值傳遞給對應的形式參數,形式參數只是用實際參數的值初始化自己的存儲單元內容,是兩個不同的存儲單元,所以方法執行中形式參數值的改變不影響實際參數的值。
引用傳遞:(形式參數類型是引用數據類型參數):也稱為傳地址。方法調用時,實際參數是對象(或數組),這時實際參數與形式參數指向同一個地址,在方法執行中,對形式參數的操作實際上就是對實際參數的操作,這個結果在方法結束後被保留了下來,所以方法執行中形式參數的改變將會影響實際參數。