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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

java

Java 对象引用以及对象赋值

發(fā)布時(shí)間:2024/4/17 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 对象引用以及对象赋值 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Vehicle veh1 = new Vehicle();

通常這條語(yǔ)句執(zhí)行的動(dòng)作被稱(chēng)為創(chuàng)建一個(gè)對(duì)象,其實(shí)他包含了四個(gè)動(dòng)作。

1.new Vehicle ?:表示在堆空間內(nèi)創(chuàng)建了一個(gè)Vehicle類(lèi)的對(duì)象。

2.():表示調(diào)用Vehicle的構(gòu)造函數(shù),初始化新創(chuàng)建的對(duì)象。

3.Vehicle veh1 :表示在棧空間內(nèi)創(chuàng)建了一個(gè)Vehicle類(lèi)的引用。

4. = :表示把棧空間的這個(gè)引用指向堆空間內(nèi)的對(duì)象。

?

二、對(duì)象引用和對(duì)象之間的關(guān)系

我們可以把這條語(yǔ)句拆成兩部分:

Vehicle veh1;

veh1 = new Vehicle();

對(duì)象好比是一只很大的氣球,大到我們抓不住它。引用變量是一根繩, 可以用來(lái)系汽球。?如果只執(zhí)行了第一條語(yǔ)句,還沒(méi)執(zhí)行第二條,此時(shí)創(chuàng)建的引用變量veh1還沒(méi)指向任何一個(gè)對(duì)象,它的值是null。引用變量可以指向某個(gè)對(duì)象,或者為null。?它是一根繩,一根還沒(méi)有系上任何一個(gè)汽球的繩。執(zhí)行了第二句后,一只新汽球做出來(lái)了,并被系在veh1這根繩上。我們抓住這根繩,就等于抓住了那只汽球。

?Vehicle veh2;

就又做了一根繩,還沒(méi)系上汽球。如果再加一句:

?veh2 = veh1;

系上了。這里,發(fā)生了復(fù)制行為。但是,要說(shuō)明的是,對(duì)象本身并沒(méi)有被復(fù)制,被復(fù)制的只是對(duì)象引用。結(jié)果是,veh2也指向了veh1所指向的對(duì)象。兩根繩系的是同一只汽球。

如果用下句再創(chuàng)建一個(gè)對(duì)象:

veh2 = new Vehicle();

則引用變量veh2改指向第二個(gè)對(duì)象。

?從以上敘述再推演下去,我們可以獲得以下結(jié)論:

(1)一個(gè)對(duì)象引用可以指向0個(gè)或1個(gè)對(duì)象(一根繩子可以不系汽球,也可以系一個(gè)汽球);

(2)一個(gè)對(duì)象可以有N個(gè)引用指向它(可以有N條繩子系住一個(gè)汽球)。

???????如果再來(lái)下面語(yǔ)句:

?????? veh1 = veh2;

按上面的推斷,veh1也指向了第二個(gè)對(duì)象。這個(gè)沒(méi)問(wèn)題。問(wèn)題是第一個(gè)對(duì)象呢?沒(méi)有一條繩子系住它,它飛了。多數(shù)書(shū)里說(shuō),它被Java的垃圾回收機(jī)制回收了。

這不確切。正確地說(shuō),它已成為垃圾回收機(jī)制的處理對(duì)象。至于什么時(shí)候真正被回收,那要看垃圾回收機(jī)制的心情了。

?

三 例程分析

public class ObjectRef {//基本類(lèi)型的參數(shù)傳遞public static void testBasicType(int m) {System.out.println("m=" + m);//m=50m = 100;System.out.println("m=" + m);//m=100}//參數(shù)為對(duì)象,不改變引用的值 ??????public static void add(StringBuffer s) {s.append("_add");}
//參數(shù)為對(duì)象,改變引用的值 ?????public static void changeRef(StringBuffer s) {s = new StringBuffer("Java");}
public static void main(String[] args) {int i = 50;testBasicType(i);System.out.println(i);//i=50StringBuffer sMain = new StringBuffer("init");System.out.println("sMain=" + sMain.toString());//sMain=initadd(sMain);System.out.println("sMain=" + sMain.toString());//sMain=init_addchangeRef(sMain);System.out.println("sMain=" + sMain.toString());//sMain=init_add}}

  

  add方法的參數(shù)是一個(gè)對(duì)象,當(dāng)把sMain傳給參數(shù)s時(shí),s得到的是sMain的拷貝,所以s和sMain指向同一個(gè)對(duì)象,因此,使用s操作影響的其實(shí)就是sMain指向的對(duì)象,故調(diào)用add方法后,sMain指向的對(duì)象的內(nèi)容發(fā)生了改變。

??????在changeRef方法中,參數(shù)也是對(duì)象,當(dāng)把sMain傳給參數(shù)s時(shí),s得到的是sMain的拷貝,但與add方法不同的是,在方法體內(nèi)改變了s指向的對(duì)象(也就是s指向了別的對(duì)象,牽著氣球的繩子換氣球了),給s重新賦值后,ssMain已經(jīng)毫無(wú)關(guān)聯(lián),它和sMain指向了不同的對(duì)象,所以不管對(duì)s做什么操作,都不會(huì)影響sMain指向的對(duì)象,故調(diào)用changeRef方法前后sMain指向的對(duì)象內(nèi)容并未發(fā)生改變。

?  對(duì)于add方法的調(diào)用結(jié)果,可能很多人會(huì)有這種感覺(jué):這不明明是按引用傳遞嗎?對(duì)于這種問(wèn)題,還是套用Bruce Eckel的話(huà):這依賴(lài)于你如何看待引用,最終你會(huì)明白,這個(gè)爭(zhēng)論并沒(méi)那么重要。真正重要的是,你要理解,傳引用使得(調(diào)用者的)對(duì)象的修改變得不可預(yù)期。

?

參考原文:http://www.cnblogs.com/focusChen/articles/2497768.html

轉(zhuǎn)載于:https://www.cnblogs.com/lyr2015/p/6432170.html

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Java 对象引用以及对象赋值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 香蕉视频色版 | 亚洲国产一级 | 国产精品白虎 | 狠狠一区 | av在线网址大全 | 人人舔人人 | 在线蜜桃| 天堂亚洲网 | 国产av一区二区三区传媒 | 成人久久视频 | 国内自拍视频网站 | 国产99精品视频 | 免费在线色 | 欧美日韩欧美日韩在线观看视频 | 日本少妇作爱视频 | 亚洲黄网在线观看 | 国产精品7777777 | 国产区精品在线观看 | 亚洲国产伊人 | 老司机av影院 | 日韩性xxxx| 黄色一级一片免费播放 | 97超碰网 | 日韩中文字幕一区二区三区四区 | 91九色蝌蚪在线 | av乱码| 骚狐网站 | 久久无码专区国产精品s | 免费人妻精品一区二区三区 | 久操福利视频 | 亚洲区自拍| 欧美亚洲视频在线观看 | 国产性猛交╳xxx乱大交一区 | 丰满少妇aaaaaa爰片毛片 | 二区中文字幕 | 99er在线观看 | 久一在线视频 | 51av视频| 成人av色| 朝鲜一级黄色片 | 2018中文字幕在线观看 | 欧美资源在线 | 久久久亚洲av波多野结衣 | 国产69精品久久久久999小说 | 亚洲色偷偷综合亚洲av伊人 | 人人妻一区二区三区 | 97精品在线观看 | 制服.丝袜.亚洲.另类.中文 | 丰满人妻老熟妇伦人精品 | 无码人妻久久一区二区三区 | 亚洲最大成人网站 | 日本视频在线免费观看 | 韩国精品视频在线观看 | 欧美黄网站在线观看 | 亚洲一区三区 | 亚洲AV成人无码一二三区在线 | 成人免费黄色网 | 国产日韩一区二区在线 | 久久久久亚洲国产 | 男女互操在线观看 | 丰满人妻一区二区三区免费视频棣 | 2020狠狠干| 精品国产欧美一区二区 | 男人的天堂在线播放 | 国产激情无套内精对白视频 | 精品黄色一级片 | 色伊人 | 欧美在线视频精品 | 亚洲国产精品久久精品怡红院 | 欧美成人精品 | 99re6在线精品视频免费播放 | 国产三级全黄裸体 | 国产成人精品三级麻豆 | 日韩av成人在线观看 | 久久久久久久久久久久久久 | 亚洲精品乱码久久久久久蜜桃图片 | 久久香蕉国产 | 一区二区三区久久精品 | 中国zzji女人高潮免费 | 91第一页| 欧美污视频在线观看 | 亚洲调教欧美在线 | 亚洲无人禁区 | 丰满人妻一区二区三区免费 | 久久在线精品 | 亚洲欧美在线视频观看 | 日本一区电影 | 国产成人av免费观看 | av 一区二区三区 | 在线观看无遮挡 | 国产精品久久久久毛片 | 久久综合社区 | 太久av| 天天尻 | 中文字幕人乱码中文字 | 中文字幕有码在线 | 狠狠综合久久av一区二区 | jizzjizz在线| 日本黄色免费 |