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

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

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

    聶永的博客

    記錄工作/學習的點點滴滴。

    JAVA方法值傳遞OR引用傳遞,不過是浮云~

    對于JAVA方法是值傳遞,還是引用傳遞,有人一直以來爭論不休。不如忘記這些提法,反而會容易理解一些。

    參數的傳遞分為兩類:

    1。基本數據,變量是直接賦值。

    	public static void main(String[] args) {
    int value = 0;
    change(value);
    System.out.println(value);
    }

    private static void change(int num) {
    num = 99;
    }


    輸出結果為:0


    可以這么認為,在棧區 value 的值賦給了一個生命周期很短的變量 num,下面的事情就是變量num的自家事情了。


    2。對象參數,傳遞的是永遠是對象的引用。


    public class ObjectTest {

    public static void main(String[] args) {
    Person p = new Person("Hi");

    change(p);
    System.out.println(p);
    }

    private static void change(Person per) {
    per.setName("China");

    per = new Person("english");
    }
    }

    class Person {
    public Person(String name) {
    this.name = name;
    }

    private String name;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }

    @Override
    public String toString() {
    return "name : " + getName();
    }
    }
    這個例子最后輸出結果為:name :china

    在棧區(stack),存在兩個Person對象引用:|
    p把對象的引用地址賦值給了per,p也就完成了使命;


    per.setName("China"); 這一句話意味著per操縱目標對象的setName方法。此時p和per都指向了同一個存放在堆區(heap)Person對象;


    per所引用的對象地址被重新賦值:per = new Person("english"); 自此per就和p就一點關系都沒有了:p所指向的對象和per所指向的對象是兩個不同的對象了。


    常見的基本數據數組也是一種對象。


    小結:無論是基本數據還是對象,都是賦值操作,基本數據賦值直接在棧區進行,對象只是把對象的引用地址賦值,但對應同一個對象。


    有時間會把圖形附上,這樣理解起來會更形象一些。

    posted on 2010-11-25 21:36 nieyong 閱讀(611) 評論(0)  編輯  收藏 所屬分類: Java

    公告

    所有文章皆為原創,若轉載請標明出處,謝謝~

    新浪微博,歡迎關注:

    導航

    <2010年11月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    統計

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個人收藏

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费在线观看毛片| 中文字幕亚洲精品| 成人精品国产亚洲欧洲| 丁香花免费完整高清观看 | 亚洲一区二区三区国产精品| 苍井空亚洲精品AA片在线播放| 浮力影院第一页小视频国产在线观看免费| 77777午夜亚洲| 永久免费无码网站在线观看| 亚洲伊人久久大香线蕉AV| 在线免费观看一级片| 亚洲AV无码一区二区三区网址| 四虎影视永久免费观看网址| 免费激情网站国产高清第一页| 99热在线日韩精品免费| 亚洲AV无码一区东京热| 久久精品无码专区免费东京热| 亚洲视频在线免费播放| 成人片黄网站A毛片免费| 亚洲欧美日韩一区二区三区| 免费国产真实迷j在线观看| 久久久久女教师免费一区| 亚洲AV无码专区电影在线观看| 亚洲一区二区三区免费在线观看 | 无码人妻精品一二三区免费| 亚洲精华国产精华精华液| 免费在线观看中文字幕| 国产在线精品观看免费观看| 全免费一级毛片在线播放| 朝桐光亚洲专区在线中文字幕| 久久久久亚洲AV成人网人人软件| 亚洲人成网国产最新在线| 四虎国产精品免费久久影院| 中文字幕免费在线看线人动作大片| 无码乱人伦一区二区亚洲| 久久福利资源网站免费看| 日韩a毛片免费观看| 亚洲AV日韩精品久久久久| 在线观看人成视频免费| 成人片黄网站色大片免费观看APP| 亚洲国产美女福利直播秀一区二区|