<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    午后星期午

    值傳遞、引用傳遞的區(qū)別

    所謂值傳遞,就是說(shuō)僅將對(duì)象的值傳遞給目標(biāo)對(duì)象,就相當(dāng)于copy;系統(tǒng)將為目標(biāo)對(duì)象重新開(kāi)辟一個(gè)完全相同的內(nèi)存空間。
    所謂引用,就是說(shuō)將對(duì)象在內(nèi)存中的地址傳遞給目標(biāo)對(duì)象,就相當(dāng)于使目標(biāo)對(duì)象和原始對(duì)象對(duì)應(yīng)同一個(gè)內(nèi)存存儲(chǔ)空間。此時(shí),如果對(duì)目標(biāo)對(duì)象進(jìn)行修改,內(nèi)存中的數(shù)據(jù)也會(huì)改變。
    值傳遞,例如:
    class TestT1 
    public static void main(String[] args) 
    int i = 5; 
    int j = 6; 
    System.out.println("before exchange i = "+i);//交換前
    exchange(i, j); 
    System.out.println("after exchange i = "+i);//交換后
    }
    public static void exchange(int a,int b) 
    int k;
    k = a;a = b; b = k; 
    程序的結(jié)果是5!!! 
    這說(shuō)明,原始數(shù)據(jù)類型是按值傳遞的,這個(gè)按值傳遞也是指的是進(jìn)行賦值時(shí)的行為。 
    Java語(yǔ)言明確說(shuō)明取消了指針,因?yàn)橹羔樛窃趲?lái)方便的同時(shí)也是導(dǎo)致代碼不安全的根源,同時(shí)也會(huì)使程序的變得非常復(fù)雜難以理解,但這只是在Java語(yǔ)言中沒(méi)有明確的指針定義,實(shí)質(zhì)上每一個(gè)new語(yǔ)句返回的都是一個(gè)指針的引用。
    引用傳遞,例如:
    class TestT2
    public static void main(String[] args) 
    StringBuffer s= new StringBuffer("good"); 
    StringBuffer s2=s; 
    s2.append(" afternoon."); 
    System.out.println(s); 
    對(duì)象s和s2指向的是內(nèi)存中的同一個(gè)地址因此指向的是同一個(gè)對(duì)象。 
    這里的意思是進(jìn)行對(duì)象賦值操作是傳遞的是對(duì)象的引用,因此對(duì)象是按引用傳遞的。 
    程序運(yùn)行的輸出是: 
    good afternoon. 
    這說(shuō)明s2和s是同一個(gè)對(duì)象。
    總結(jié): 
    大家都知道,在JAVA中變量有以下兩種:
    基本類型變量,包括boolean、byte、char、short、int、long、float、double。
    引用類型變量,包括類、接口、數(shù)組(基本類型數(shù)組和對(duì)象數(shù)組)。
    對(duì)于基本類型和基本類型變量被當(dāng)作參數(shù)傳遞給方法時(shí),是值傳遞。在方法實(shí)體中,無(wú)法給原變量重新賦值,也無(wú)法改變它的值。
    而對(duì)象作為參數(shù),如果在方法中把對(duì)象作為參數(shù),方法調(diào)用時(shí),參數(shù)傳遞的是對(duì)象的引用,即在方法調(diào)用時(shí),實(shí)際參數(shù)把對(duì)對(duì)象的引用傳遞給形式參數(shù)。這是實(shí)際參數(shù)與形式參數(shù)指向同一個(gè)地址,即同一個(gè)對(duì)象,方法執(zhí)行時(shí),對(duì)形式參數(shù)的改變實(shí)際上就是對(duì)實(shí)際參數(shù)的改變,這個(gè)結(jié)果在調(diào)用結(jié)束后被保留了下來(lái)。

    形參和實(shí)參有以下顯著的區(qū)別:
        1、形參不能離開(kāi)方法。形參只有在方法內(nèi)才會(huì)發(fā)生作用,也只有在方法中使用,不會(huì)在方法外可見(jiàn)。而實(shí)參可以再程序的任何地方都使用。
        2、形參代表一個(gè)合集,具有不確定性,而形參代表一個(gè)獨(dú)立事物,具有確定性(即使是為null)。也就是說(shuō),形參不能代表具體的對(duì)象,只能代表這些對(duì)象共同的屬性(比如超類、各種其他自定義屬性等等),而實(shí)參則是具體的對(duì)象(比如超類的實(shí)例)。
        3、形參的值在調(diào)用時(shí)根據(jù)調(diào)用者更改,實(shí)參則用自身的值更改形參的值(指針、引用皆在此列)

    posted on 2014-03-26 22:29 午后星期午 閱讀(142) 評(píng)論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 无套内射无矿码免费看黄| 亚洲国产高清在线精品一区| 亚洲AV无码一区二区三区网址 | 亚洲第一精品电影网| 久久不见久久见免费视频7| 亚洲AV无码一区东京热| 国产一精品一AV一免费| 亚洲AV无码一区二区三区DV| 国产白丝无码免费视频| 久久亚洲国产精品成人AV秋霞| 日本一卡精品视频免费| 亚洲国产高清美女在线观看| ww4545四虎永久免费地址| 亚洲成aⅴ人片在线观| 国内精品99亚洲免费高清| 亚洲免费日韩无码系列| 国产精品成人亚洲| 国产精品免费_区二区三区观看 | 日韩精品无码区免费专区| 亚洲国产亚洲综合在线尤物| 99久久免费中文字幕精品| 亚洲福利视频导航| 久久青草免费91观看| 国产亚洲综合一区柠檬导航| 一级特黄录像免费播放肥| 亚洲精品乱码久久久久66| 成人精品视频99在线观看免费| 爱情岛论坛网亚洲品质自拍| 国产精品极品美女自在线观看免费 | 日本在线看片免费| 亚洲三级电影网站| 91久久精品国产免费一区| 亚洲日韩在线视频| 最新欧洲大片免费在线| 亚洲综合色婷婷在线观看| 全部免费毛片免费播放| 免费一区二区无码视频在线播放| 亚洲国产精品专区在线观看| 国产日韩在线视频免费播放| 亚洲av综合av一区| 在线视频精品免费|