Java參數(shù)按值傳遞示例演示
在Java中,方法參數(shù)的傳遞方式實(shí)際上是按值傳遞。但是,這里需要區(qū)分基本數(shù)據(jù)類型(如 int
, float
, char
等)和引用類型(如對象、數(shù)組等)的值傳遞。
- 按值傳遞:當(dāng)基本數(shù)據(jù)類型被作為參數(shù)傳遞給方法時,實(shí)際上傳遞的是該數(shù)據(jù)類型的值。在方法內(nèi)部,這個值會被復(fù)制到一個新的變量中,因此對這個新變量的任何修改都不會影響到原始變量。
- 按指針傳遞:在Java中,沒有嚴(yán)格意義上的按指針傳遞。當(dāng)對象(或引用類型)作為參數(shù)傳遞給方法時,傳遞的是對象的引用值,而不是對象本身。這個引用值會被復(fù)制到方法內(nèi)部的新變量中,這意味著這兩個引用變量都指向同一個對象。因此,在方法內(nèi)部對這個新引用變量進(jìn)行的任何操作都會影響到原始對象。但是,如果在方法內(nèi)部將新引用變量指向另一個對象(即重新分配),這將不會影響到原始引用變量。
代碼demo:
public class Main { public static void main(String[] args) { int a = 10; modifyInt(a); System.out.println("After modifyInt: " + a); // 輸出: After modifyInt: 10 List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3)); modifyList(list); System.out.println("After modifyList: " + list); // 輸出: After modifyList: [100, 2, 3] resetList(list); System.out.println("After resetList: " + list); // 輸出: After resetList: [100, 2, 3] } public static void modifyInt(int x) { x = 20; } public static void modifyList(List<Integer> list) { list.set(0, 100); } public static void resetList(List<Integer> list) { list = new ArrayList<>(); } }
到此這篇關(guān)于Java參數(shù)按值傳遞的文章就介紹到這了,更多相關(guān)Java參數(shù)傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot結(jié)合JWT實(shí)現(xiàn)用戶登錄、注冊、鑒權(quán)
用戶登錄、注冊及鑒權(quán)是我們基本所有系統(tǒng)必備的,也是很核心重要的一塊,本文主要介紹了SpringBoot結(jié)合JWT實(shí)現(xiàn)用戶登錄、注冊、鑒權(quán),具有一定的參考價值,感興趣的小伙伴們可以參考一下2023-05-05ShardingSphere如何進(jìn)行sql重寫示例詳解
這篇文章主要為大家介紹了ShardingSphere如何進(jìn)行sql重寫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09淺談java線程中生產(chǎn)者與消費(fèi)者的問題
下面小編就為大家?guī)硪黄獪\談java線程中生產(chǎn)者與消費(fèi)者的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07java的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼
下面小編就為大家?guī)硪黄猨ava的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08SpringBoot打War包上傳到阿里云的LINUX服務(wù)器的操作方法
這篇文章主要介紹了SpringBoot打War包上傳到阿里云的LINUX服務(wù)器,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02spring的事務(wù)傳播屬性REQUIRED_NESTED原理
這篇文章主要介紹了spring的事務(wù)傳播屬性REQUIRED_NESTED原理,在spring中,要想使用事務(wù)中的回滾點(diǎn),可以使用傳播屬性NESTED,需要的朋友可以參考下2023-05-05SpringMVC異步處理操作(Callable和DeferredResult)
這篇文章主要介紹了SpringMVC異步處理操作(Callable和DeferredResult),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01