千思

          一個Java數(shù)據(jù)類型的問題

          class Demo
          {
              
          public static void main(String [] args)
              
          {
                  System.out.println(
          123);
                  System.out.println(
          "123");
              }

          }
           
          上面的打印結(jié)果是一樣的哦。

          在第一個System.out.println(123);中123 是 int類型的
          在第一個System.out.println(“123”);中"123 "是 String類型的

          那為什么會輸出一樣的結(jié)果呢?

          JVM會自動將這個int類型包裝成Integer類型,然后調(diào)用其toString方法
          "123"是String類型,這里也是會自動調(diào)用它的toString方法

          所以結(jié)果是一樣的

          123是int類型,它是JAVA的基礎數(shù)據(jù)類型,不能用.來調(diào)用方法,它也不是對象。
          如果非要寫,可以:Integer.valueOf(123).toString();

          在System.out.println(Object obj);的時候..參數(shù)是一個對象,如果是基本數(shù)據(jù)類型,JVM會自動裝箱。然后會自動調(diào)用該對象的toString()方法
          每個類都有toString()方法,如果你沒寫,會默認繼承自Object類的toString方法

          posted on 2009-09-08 11:00 幻櫻釋 閱讀(194) 評論(2)  編輯  收藏

          Feedback

          # re: 一個Java數(shù)據(jù)類型的問題 2009-09-08 12:27 Bom Wu

          這里并沒有自動裝箱
          這里調(diào)用的是兩個不同的方法,不同類型參數(shù)的重載而已
          System.out.println(int arg0)
          System.out.println(String arg0)
          事實上System.out.println() 對所有基本類型都進行了重載

          自動裝箱與拆箱是JDK 1.5后才有的特性
          而你在JDK1.4 及之前版本下就可以直接使用
          System.out.println(123);
          這樣的語句,可見,并沒有自動裝箱成Integer對象
            回復  更多評論   

          # re: 一個Java數(shù)據(jù)類型的問題 2009-10-15 09:14 MS_Jove

          謝謝您的指點  回復  更多評論   



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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 台安县| 马山县| 米泉市| 内丘县| 民和| 新化县| 漾濞| 肃宁县| 宁城县| 湖州市| 庐江县| 宜昌市| 汉川市| 府谷县| 德江县| 钟祥市| 南京市| 普陀区| 靖边县| 蓝山县| 全南县| 东光县| 元阳县| 西华县| 巢湖市| 洛浦县| 长汀县| 沙雅县| 三门峡市| 紫云| 平湖市| 夏邑县| 连南| 巨鹿县| 宿迁市| 临武县| 冕宁县| 民丰县| 和田县| 巨鹿县| 大庆市|