導航:首頁 > 編程語言 > java傳值和傳址

java傳值和傳址

發布時間:2025-01-03 02:38:06

java基礎問題,到底是值傳遞還是引用傳遞

傳遞的是對象沒錯,問題出在str = "修改後的str"; 這一句上。
這句話表示新建一個對象,內容是「修改後的str」,然後賦給str
因此,原對象內容並沒有發生變化。這也是java和c++不同的地方。

String[]和int[]中存放的是指向對象的地址,因此修改後它的值可以返回到主函數中。這個是毋庸置疑的。
數組也是一樣,因為數組傳遞的是地址(我這么認為)因此,你對對象的改變就會反應到主函數中。

你採用的String 和 String[]變數的區別是:String變數傳遞的是一個對象,當它被賦予一個新對象內容時,原對象不會發生變化。而String[]是一個數組,傳遞的是對象的地址。新對象賦給新地址,地址沒有變,但對象變了,因此String【】內容變了。

② java參數在方法內部可以獲得正確值,但是引用方法後得不到參數的值

傳值方式不會影響數據,執行完後它對傳入的值沒有任何影響;

JAVA參數的兩種方式:
1、傳值——傳的是一個復制的值進去,不會影響到數據本身
2、傳引用(傳址)——即把這個對象的引用或地址傳進去,只要方法裡面的任何操作都會影響到這個對象的本身。

③ JAVA數組地址傳遞問題!

在Java中,參數的傳遞嚴格意義上講都是傳值的,只不過簡單很容易分清轎宴楚。而對於對象,有些復雜。

首先,在Java中是先聲明一個類的變數。然後,用類生成一個類的實例,也就是在內存中的類的實例區域,最後把這個區域的指針賦給類的這個變數。注意,變數中存的是指向對象的指針。

若是按傳址傳參數,是要改變這個對象變數所指的內存對象區域,也就是要在方法內把新對象賦給方法外的對象變橋羨量。但是,這在Java中辦不到。因為Java是把對象變數中的對象指針傳入方法,並沒有把變數本身的地址傳入方法;在方法中,會生成新變數接受這個對象的指針。所以,在Java方法中,可以改變當前對象中的內容,卻不能改變方法外邊變數的值,即所指向的對象。對於傳值、傳址的分析就是為了在閉消銀應用中少犯錯誤。其他是次要的。

明白沒有,是傳值而不是傳值的地址!地址沒有變,C當然不變了!

④ java 里為什麼不能改變參數的值,但能改變參數的屬性值

參數有兩種方式,普通類型如int,String等為傳值,其他的如JAVA對象,數組,集合等均為傳址。

傳值方式只是把值傳入參數,在方法里的任何動作與源無關,源的值不變;

傳址方式是把源對象的地址傳入方法,在方法里的動作都是直接操作源對象,所以能改變其值。

⑤ Java 傳遞參數時,傳遞一個變數快還是傳遞一個實體類

傳遞實體類參數是傳址調用
傳基礎類型參數是傳值調用
傳址調用要快於傳值調用
傳值調用會先申請一塊空間將參數的值存起來,以便調用
所以方法調用不能對實參做出任何修改
傳址調用得到參數時直接使用指向的內存地址,少了分配空間的這一步
方法可以對地址所指向的數據進行修改
所以傳址調用速度快
可以網路一下 傳值調用快還是傳址調用快

⑥ JAVA中map中存儲list集合問題。

因為map添加list是對list的引用,相當於傳址!明白傳值和傳址的區別,你就可以明白

閱讀全文

與java傳值和傳址相關的資料

熱點內容
哪個編程崗位好學 瀏覽:67
txt文件合並圖片 瀏覽:86
網頁上打開pdf文件 瀏覽:290
小米的數據線都是哪個產的 瀏覽:478
哪裡買港版iphone6s 瀏覽:830
如何配置文件伺服器 瀏覽:532
5800計算程序 瀏覽:450
qq上銀行卡怎麼注銷 瀏覽:537
小米手機CSV文件轉EXCEL 瀏覽:668
易方達app怎麼解綁銀行卡 瀏覽:931
維度app是哪個國家的 瀏覽:476
阿瓦隆之王快速升級 瀏覽:279
qq會員10元升級超級會員 瀏覽:808
taptap部分iOS聯網教程 瀏覽:563
北京電競數據分析哪個好 瀏覽:397
夢幻西遊手游版本大全 瀏覽:285
文件保險櫃什麼意思 瀏覽:956
javastring轉換成data 瀏覽:817
iphone5se是不是翻新機 瀏覽:367
如何製作磁碟啟動引導文件 瀏覽:979

友情鏈接