Feng.Li's Java See

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

          關(guān)于Java的傳值問題,個(gè)人感覺書上說的都不好,請進(jìn)來聽聽我的看法。

           關(guān)于值傳遞和引用傳遞的問題,我想很多人剛開始學(xué)的時(shí)候都會(huì)很迷惑,特別是有些書的文學(xué)水平實(shí)在不敢恭維。
          在此,我特在此對Java的傳值和傳址提出我自己的一個(gè)看法,也許讓你能對這個(gè)問題的理解起到幫助。
                  首先:值傳遞是很好理解的。比如:
                  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í)候開始位這個(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)然是沒有啦(除非你理解成變量a的空間整個(gè)放進(jìn)b的空間里:))

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

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

          評論

          # re: 關(guān)于Java的傳值問題,個(gè)人感覺書上說的都不好,請進(jìn)來聽聽我的看法。   回復(fù)  更多評論   

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

          # re: 關(guān)于Java的傳值問題,個(gè)人感覺書上說的都不好,請進(jìn)來聽聽我的看法。   回復(fù)  更多評論   

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

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

          # re: 關(guān)于Java的傳值問題,個(gè)人感覺書上說的都不好,請進(jìn)來聽聽我的看法。   回復(fù)  更多評論   

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

          # re: 關(guān)于Java的傳值問題,個(gè)人感覺書上說的都不好,請進(jìn)來聽聽我的看法。 [未登錄]  回復(fù)  更多評論   

          那如何在HashMap和JTable之間傳值。。。。。。。。
          2008-03-19 20:36 | 石頭
          主站蜘蛛池模板: 浦北县| 隆德县| 西盟| 关岭| 湖南省| 洱源县| 建平县| 通城县| 石林| 尼勒克县| 兰西县| 柘城县| 新龙县| 噶尔县| 射洪县| 拉萨市| 旺苍县| 广丰县| 仙桃市| 北票市| 唐山市| 清徐县| 博湖县| 揭西县| 靖宇县| 和田市| 奉新县| 克东县| 石嘴山市| 炎陵县| 石泉县| 清水河县| 江孜县| 武强县| 福鼎市| 柳州市| 天门市| 丹江口市| 神木县| 历史| 额尔古纳市|