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

          留言簿

          隨筆檔案(1)

          文章分類(16)

          最新隨筆

          搜索

          •  

          最新評(píng)論

          Java在方法參數(shù)傳遞時(shí):

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

          有時(shí)候也說Java只有值傳遞,意思是對(duì)于引用類型,傳遞引用的值。一個(gè)概念,不用糾纏。

          在內(nèi)存中對(duì)象類型可以看做兩塊,一塊是對(duì)象的引用,一塊是數(shù)據(jù)區(qū)。引用塊里面保存了數(shù)據(jù)區(qū)的地址。
          看如下示例代碼:
           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         // 引用傳遞實(shí)例1
          12         String str = "123";
          13         modifyStr1(str);
          14         System.out.println(str);// 輸出123
          15 
          16         // 引用傳遞實(shí)例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     // 新的拷貝引用指向了一塊新數(shù)據(jù)區(qū),原拷貝仍然指向原數(shù)據(jù)區(qū)
          33     public static void modifyStr1(String str) {
          34         str = "456";
          35     }
          36 
          37     // 新的拷貝引用仍然指向原數(shù)據(jù)區(qū),但修改了原數(shù)據(jù)區(qū)的內(nèi)容
          38     public static void modifyStringBuilder(StringBuilder str) {
          39         str.append("456");
          40     }
          41 
          42 }

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

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 石狮市| 和静县| 黄浦区| 万全县| 伊宁县| 敦化市| 裕民县| 乌恰县| 望城县| 夏河县| 辽宁省| 汤原县| 响水县| 栾城县| 家居| 武邑县| 任丘市| 阿瓦提县| 娱乐| 株洲市| 文安县| 曲麻莱县| 宜君县| 泉州市| 奉节县| 蓬安县| 阿合奇县| 宣城市| 简阳市| 汉沽区| 黑山县| 重庆市| 隆德县| 渭源县| 宁夏| 赤壁市| 榆中县| 湟源县| 黄大仙区| 剑川县| 增城市|