本文目錄一覽:
- 1、Java方法的參數傳遞
- 2、Java的參數傳遞是值傳遞還是引用傳遞
- 3、java方法參數怎麼引用傳遞boolean
- 4、誰知道Java中參數是引用傳遞還是值傳遞?
- 5、java方法參數可以傳boolean嗎
Java方法的參數傳遞
我幫你解下迷惑吧。
java中傳遞對象參數,只是傳遞對象的在內存中的地址。
像你這個方法
public static void swap(DataWrap dw)
其中DataWrap dw是本方法內的變量
dw會指向傳入對象的內存地址,現在假設這個Object的內存地址x0fe19,只是假設。
那麼傳過來的只是x0fe19,dw指向這個地方。
當你給dw重新賦值的時候,改變的是在這個地方的Object對應的屬性,也就是傳入的對象的屬性了。
當你為dw賦null值的時候,其實只是讓這個方法內的局部變量指向空而已,並不能改變傳入對象的內容。
Java的參數傳遞是值傳遞還是引用傳遞
java中方法參數傳遞方式是按值傳遞。所謂值傳遞,就是將實際參數值的副本(複製品)傳入方法內,而自己本身不會受到任何影響。
如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。
如果參數是引用類型,傳遞的是該參量所引用的對象在堆中地址值的拷貝。
java方法參數怎麼引用傳遞boolean
Java中的參數傳遞:分為值傳遞和引用傳遞
但本質上,Java中只有值傳遞。引用傳遞,其實可以理解為傳的是類似指針的東西。
值傳遞就是把基本變量的值拷貝一份,傳遞這個拷貝。引用傳遞則是傳遞的引用的地址,也就是該變量在內存空間的地址。
1.值傳遞
只有基本數據類型採用值傳遞,特點是傳遞的是值的拷貝,傳遞完後兩者就沒有關係了。也就是說方法內和方法外的值互不相干
基本數據類型:
·整型:int,long,byte,short
浮點型:float,double
字符型:char
布爾型:boolean
註:8種基本數據類型以外的數據類型都為引用類型。
2.引用傳遞
指的是在方法調用時,傳遞的參數是按引用進行傳遞,其實傳遞的引用的地址,也就是變量所對應的內存空間的地址。
傳遞的是一個拷貝,即副本。也就是說,對於一個參數傳遞,存在兩個地址指向同一個內存空間。這裡我們可以用內存分配示意圖來體現
3.String類型傳遞
先說結論,String類型傳遞與基本數據類型的傳遞效果相似。
說明:
String類對象一旦創建,其內容不可更改:
String類的所有方法都不會改變String類對象內容,要改變String類對象的值就必須創建一個新的String對象。
也就是說,當進行參數傳遞時,如果方法內對String類對象的值進行了修改,那麼實際上是創建了一個新的String類對象,然後讓原來的變量指向它而已。但是這個「原來的變量」是一份拷貝副本,只是一開始創建的時候與主方法中的傳遞的值相同而已,現在改變之後,兩者就毫無關係了。
誰知道Java中參數是引用傳遞還是值傳遞?
java中方法參數傳遞方式是按值傳遞。所謂值傳遞,就是將實際參數值的副本(複製品)傳入方法內,而自己本身不會受到任何影響。
如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。
如果參數是引用類型,傳遞的是該參量所引用的對象在堆中地址值的拷貝。
java方法參數可以傳boolean嗎
可以,Java 編程語言只有值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是該對象的引用一個副本。指向同一個對象,對象的內容可以在被調用的方法中改變,但對象的引用(不是引用的副本)是永遠不會改變的。
Java參數,不管是原始類型還是引用類型,傳遞的都是副本(有另外一種說法是傳值,但是說傳副本更好理解吧,傳值通常是相對傳址而言)。
如果參數類型是原始類型,那麼傳過來的就是這個參數的一個副本,也就是這個原始參數的值,這個跟之前所談的傳值是一樣的。如果在函數中改變了副本的值不會改變原始的值.
如果參數類型是引用類型,那麼傳過來的就是這個引用參數的副本,這個副本存放的是參數的地址。如果在函數中沒有改變這個副本的地址,而是改變了地址中的 值,那麼在函數內的改變會影響到傳入的參數。如果在函數中改變了副本的地址,如new一個,那麼副本就指向了一個新的地址,此時傳入的參數還是指向原來的 地址,所以不會改變參數的值。
原創文章,作者:QYLY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/148155.html