隨筆 - 2  文章 - 2  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          留言簿

          隨筆檔案(1)

          文章分類(16)

          最新隨筆

          搜索

          •  

          最新評論

          Java在方法參數傳遞時:

          1、對于基本類型,傳遞值
          2、對于對象類型,傳遞對象引用
          需要注意的是:對于上述兩種傳遞類型,在傳遞時都是拷貝傳遞,即值傳遞時拷貝出一個新值,引用
          傳遞時拷貝出一個新的拷貝。

          有時候也說Java只有值傳遞,意思是對于引用類型,傳遞引用的值。一個概念,不用糾纏。

          在內存中對象類型可以看做兩塊,一塊是對象的引用,一塊是數據區。引用塊里面保存了數據區的地址。
          看如下示例代碼:
           1 public class Test {
           2 
           3     public static void main(String[] args) {
           4         // 值傳遞
           5         int i = 1;
           6         addInt1(i);
           7         System.out.println(i);// 輸出1
           8         addInt2(i);
           9         System.out.println(i);// 輸出1
          10 
          11         // 引用傳遞實例1
          12         String str = "123";
          13         modifyStr1(str);
          14         System.out.println(str);// 輸出123
          15 
          16         // 引用傳遞實例2
          17         StringBuilder stringBuilder = new StringBuilder("123");
          18         modifyStringBuilder(stringBuilder);
          19         System.out.println(stringBuilder.toString());// 輸出123456
          20     }
          21 
          22     // 拷貝了新的值,原值不變
          23     public static void addInt1(int i) {
          24         i = 2;
          25     }
          26 
          27     // 拷貝了新的值,原值不變
          28     public static void addInt2(int i) {
          29         i++;
          30     }
          31 
          32     // 新的拷貝引用指向了一塊新數據區,原拷貝仍然指向原數據區
          33     public static void modifyStr1(String str) {
          34         str = "456";
          35     }
          36 
          37     // 新的拷貝引用仍然指向原數據區,但修改了原數據區的內容
          38     public static void modifyStringBuilder(StringBuilder str) {
          39         str.append("456");
          40     }
          41 
          42 }

          posted on 2011-03-31 14:05 liucs 閱讀(308) 評論(0)  編輯  收藏 所屬分類: Java

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 兴城市| 灵石县| 建始县| 绍兴县| 上栗县| 博爱县| 遂川县| 新营市| 鄂州市| 建阳市| 龙口市| 新河县| 垦利县| 来凤县| 梁山县| 炎陵县| 巧家县| 柞水县| 米泉市| 长治市| 瑞安市| 吴江市| 西乌珠穆沁旗| 松滋市| 海安县| 鄯善县| 于田县| 临湘市| 吉安市| 额敏县| 米泉市| 闽侯县| 海晏县| 遂平县| 灵台县| 临澧县| 德江县| 鄂托克旗| 工布江达县| 孝昌县| 潜江市|