Feng.Li's Java See

          抓緊時(shí)間,大步向前。
          隨筆 - 95, 文章 - 4, 評(píng)論 - 58, 引用 - 0
          數(shù)據(jù)加載中……

          關(guān)于Java的傳值問(wèn)題,個(gè)人感覺(jué)書上說(shuō)的都不好,請(qǐng)進(jìn)來(lái)聽(tīng)聽(tīng)我的看法。

           關(guān)于值傳遞和引用傳遞的問(wèn)題,我想很多人剛開(kāi)始學(xué)的時(shí)候都會(huì)很迷惑,特別是有些書的文學(xué)水平實(shí)在不敢恭維。
          在此,我特在此對(duì)Java的傳值和傳址提出我自己的一個(gè)看法,也許讓你能對(duì)這個(gè)問(wèn)題的理解起到幫助。
                  首先:值傳遞是很好理解的。比如:
                  public   class   test   {
                int   a   =   3;
                public   void   plus(int   b){
                  b     =   b+1;
                  }
                  public   static   void   main(String   args[])
                {
                  test   t   =   new   test();
                  t.plus(t.a);
                  System.out.println(t.a);
                }
                }
              輸出的結(jié)果是3.這就是值傳遞。其實(shí)我們可以這樣理解:
                    在plus(int   b)函數(shù)里,int   b是作為這個(gè)函數(shù)的一個(gè)局部變量,在調(diào)用這個(gè)函數(shù)的時(shí)候開(kāi)始位這個(gè)變量的內(nèi)存空間。當(dāng)我把變量a傳給這個(gè)函數(shù)的時(shí)候,實(shí)際上是把a(bǔ)變量當(dāng)時(shí)的值拷貝一個(gè)放到變量b的分配空間里,b   =   b+1;這句改變的只是函數(shù)的局部變量b的值,當(dāng)調(diào)用結(jié)束的時(shí)候,變量b的作用范圍也就結(jié)束了,而你在什么時(shí)候修改了變量a的分配空間呢?當(dāng)然是沒(méi)有啦(除非你理解成變量a的空間整個(gè)放進(jìn)b的空間里:))

                而所謂的引用傳遞,我覺(jué)得這個(gè)名次起的很混淆視聽(tīng)。以我自己的理解,一切傳遞都是拷貝傳遞。因?yàn)閷?duì)象的標(biāo)識(shí)符代表的是對(duì)象的存儲(chǔ)地址,所以你把對(duì)象的標(biāo)識(shí)符號(hào)傳遞給函數(shù)的時(shí)候,實(shí)際上是把對(duì)象地址的拷貝傳遞給了函數(shù)。雖然也是拷貝,但是2個(gè)地址拷貝都是指向一個(gè)地址的,所以如果在函數(shù)里修改了對(duì)象,那么也實(shí)際上就修改了原先的值.
          歸根到底一句話:Java一切參數(shù)的傳遞都是拷貝傳遞!

          posted on 2008-01-29 15:03 小鋒 閱讀(1326) 評(píng)論(4)  編輯  收藏 所屬分類: J2SE

          評(píng)論

          # re: 關(guān)于Java的傳值問(wèn)題,個(gè)人感覺(jué)書上說(shuō)的都不好,請(qǐng)進(jìn)來(lái)聽(tīng)聽(tīng)我的看法。   回復(fù)  更多評(píng)論   

          曾經(jīng)學(xué)JAVA的時(shí)候老師講過(guò),JAVA中都是值傳遞。
          (所謂的引用傳遞,傳遞的也是引用變量在物理內(nèi)存中的值。)
          2008-01-29 17:05 | 久城

          # re: 關(guān)于Java的傳值問(wèn)題,個(gè)人感覺(jué)書上說(shuō)的都不好,請(qǐng)進(jìn)來(lái)聽(tīng)聽(tīng)我的看法。   回復(fù)  更多評(píng)論   

          http://www.aygfsteel.com/sitinspring/archive/2008/01/16/175677.html

          2008-01-29 17:11 | 如坐春風(fēng)

          # re: 關(guān)于Java的傳值問(wèn)題,個(gè)人感覺(jué)書上說(shuō)的都不好,請(qǐng)進(jìn)來(lái)聽(tīng)聽(tīng)我的看法。   回復(fù)  更多評(píng)論   

          政治
          2008-01-30 13:24 | 政治

          # re: 關(guān)于Java的傳值問(wèn)題,個(gè)人感覺(jué)書上說(shuō)的都不好,請(qǐng)進(jìn)來(lái)聽(tīng)聽(tīng)我的看法。 [未登錄](méi)  回復(fù)  更多評(píng)論   

          那如何在HashMap和JTable之間傳值。。。。。。。。
          2008-03-19 20:36 | 石頭
          主站蜘蛛池模板: 海晏县| 重庆市| 连云港市| 云和县| 昔阳县| 荣昌县| 阿拉善左旗| 西昌市| 阿坝| 光山县| 平塘县| 武乡县| 新余市| 宁都县| 泸溪县| 汕尾市| 五华县| 新建县| 长丰县| 平泉县| 六枝特区| 东明县| 舟山市| 芷江| 文昌市| 乐安县| 三都| 永泰县| 内丘县| 鲁甸县| 洪洞县| 鹤庆县| 深州市| 孝感市| 察隅县| 福海县| 台中市| 鄱阳县| 巩义市| 新乡县| 高州市|