JAVA引用傳遞問題

2021-07-12 01:07:40 字數 1227 閱讀 5870

可能有些同學覺得,只要是引用傳遞,對引用的修改直接影響著原物件,其實不然,只有對引用物件的內部做了修改,才會影響原物件,如果直接將引用修改了,則對原物件沒有影響,唯一的影響就是:這個被修改的引用,現在不是原來物件的引用,而是新物件的引用。

引用傳遞指的是傳遞的時候,傳遞的是物件的引用。如果對引用的內部成員進行操作,則會直接影響到原物件,但是如果直接把此引用指向了其他物件,那對不起,這個引用從此以後,便與之前的物件沒有任何關係,當前代表的僅僅是新指向的物件。看下例子吧。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

classsimint

}

publicclassmain

publicstaticvoidchange2(simint si)

publicstaticvoidmain(string args)

}

引用傳遞是將實參的記憶體位址傳遞給形參 也可以理解為形參相當於新建的引用 該引用和實參指

向相同的記憶體位址 所以dosomething(integer integer)新建了引用integer 當

dosomething(var2)

;被呼叫時 integer和var2指向了相同的記憶體位址. 當

integer=new

integer(2);被呼叫時integer指向

了新的記憶體位址 但這並沒有改變var2指向的記憶體位址的值

Java引用傳遞

引用傳遞是將引數的引用 類似於c語言的指標 傳遞給被調方法,從而指向同乙個記憶體位址,實現對值的共同修改。liststudy 將a的值給changedata類,讓其修改數值。package listspackage public class liststudy public static void ...

Java 引用傳遞

在quartz任務排程時 log中出現異常 提示達到連線池的最大允許數量 涉及部分的 如下 conection con null 初始化jdbc鏈結資源 initjdbcresouce con 業務處理 略 銷毀jdbc鏈結資源 destoryjdbcresource con 經過檢視 發現是由於 ...

Java 引用傳遞

no.1 class message public int getnum public void setnum int num public class testdemo1 public static void fun message temp 記憶體圖 記憶體圖 對比 int x 10 y x y...