❶ java傳地址
a的地址賦值給b變數,就是b指向的值是a原來指向的值
java好像只有傳值和傳引用,好像沒有傳地址
❷ JAVA數組地址傳遞問題!
在Java中,參數的傳遞嚴格意義上講都是傳值的,只不過簡單很容易分清楚。而對於對象,有些復雜。
首先,在Java中是先聲明一個類的變數。然後,用類生成一個類的實例,也就是在內存中的類的實例區域,最後把這個區域的指針賦給類的這個變數。注意,變數中存的是指向對象的指針。
若是按傳址傳參數,是要改變這個對象變數所指的內存對象區域,也就是要在方法內把新對象賦給方法外的對象變數。但是,這在Java中辦不到。因為Java是把對象變數中的對象指針傳入方法,並沒有把變數本身的地址傳入方法;在方法中,會生成新變數接受這個對象的指針。所以,在Java方法中,可以改變當前對象中的內容,卻不能改變方法外邊變數的值,即所指向的對象。對於傳值、傳址的分析就是為了在應用中少犯錯誤。其他是次要的。
明白沒有,是傳值而不是傳值的地址!地址沒有變,C當然不變了!
❸ java中怎麼讓函數傳地址
你好 java中沒有地址傳遞
java中都是基於值的傳遞
基本類型變數作為參數傳遞的話,是直接把變數值復制過去
引用類型作為參數傳遞的話,是把引用裡面的值復制過去
❹ Java中如何改變參數的值(實現按址傳遞)
java方法中傳值和傳引用的問題是個基本問題,但是也有很多人一時弄不清。你的題目本身就有歧義,無法直接針對題目作答(因為java不存在類似c或c++那樣的傳址)。我從頭講起:
(一)基本數據類型:傳值,方法不會改變實參的值。
(二)對象類型參數:傳引用,方法體內改變形參引用,不會改變實參的引用,但有可能改變實參對象的屬性值。例如
public class TestFun4 {
public static void testStringBuffer(StringBuffer sb){
sb.append("java");//改變了實參的內容
}
public static void main(String[] args) {
StringBuffer sb= new StringBuffer("my ");
new TestFun4().testStringBuffer(sb);
System.out.println("sb="+sb.toString());//內容變化了
}
}