日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 方法 参数 引用_Java 基础

發(fā)布時間:2025/4/16 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 方法 参数 引用_Java 基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本質(zhì)上,只有值傳遞這一種傳遞方式,所謂的引用傳遞是值傳遞的一種。即:1

2

3

4

5

6// 將2這個值復(fù)制一份傳遞給m

int a = 2;

m(a);

// 將引用o復(fù)制一份并將其值傳遞給m

m(o);

值傳遞的核心就在于”復(fù)制”。傳遞的并不是原始數(shù)據(jù),而是復(fù)制出的,與原始數(shù)據(jù)相等的東西。因此方法對這個克隆體所做的一切操作都不會影響原始數(shù)據(jù)。

雖然理論基礎(chǔ)是統(tǒng)一的,但是當(dāng)傳遞的是引用時,可能會讓人產(chǎn)生一些迷茫。這也是為什么很多人將引用傳遞從值傳遞中提出來單獨(dú)論述的原因。例如:1

2O o = new O();

m(o);

執(zhí)行m(o)時,會復(fù)制出一份引用o的副本o_c并將其傳遞給m。自此o與o_c就是兩個完全獨(dú)立的個體,不會再有任何瓜葛。但是問題在于,初始時,因為o_c是o的副本,因此其空間中存放的對象地址必然與o相同。進(jìn)而,如果m中有如下操作:1o = new O();

此舉相當(dāng)于將o_c中存放的對象地址指向了一個新的對象。而由于o與o_c已完全獨(dú)立,因此并不會導(dǎo)致o中存放的對象地址發(fā)生變化。

但是,如果我們在m中做如下操作:1o.setName("八云紫");

此時o_c并沒有修改其內(nèi)部存放的對象地址,而是直接操作了該對象中的數(shù)據(jù)。對此o中存放的對象地址依然沒有發(fā)生變化,但由于其所存放的對象本身被o_c的操作所修改,看起來仿佛是傳遞進(jìn)方法的引用影響了原始引用一樣。但是即便如此,o_c也沒有真正修改o中存儲的值。

舉一個生活中的小例子:小王手中有一個神秘網(wǎng)站的網(wǎng)址,從這個網(wǎng)站可以下載神奇的影片。本質(zhì)上,小王所擁有的并非網(wǎng)站本身,而僅僅是網(wǎng)址這個字符串。小劉抄到了這個網(wǎng)址,那么無論小劉做什么事,對小王所擁有的那個字符串都不會造成影響。注意:這里所說的不會被影響的事物是小王的”網(wǎng)址字符串”。若小劉僅僅只是修改他拿到的網(wǎng)址為另一個網(wǎng)址,那么對小王完全沒影響。如果小劉因為沒錢充會員導(dǎo)致無法下載神奇的影片而一怒之下黑進(jìn)了這個網(wǎng)站并將其中的影片全部換成了金剛葫蘆娃,那么小王也無法在這個網(wǎng)站下載神奇的影片了。此時,小李所改變的是網(wǎng)站本身,并不是小王所持有的網(wǎng)址字符串。

總結(jié)

以上是生活随笔為你收集整理的java 方法 参数 引用_Java 基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。