在第一個System.out.println(123);中123 是 int類型的 在第一個System.out.println(“123”);中"123 "是 String類型的 那為什么會輸出一樣的結果呢? JVM會自動將這個int類型包裝成Integer類型,然后調用其toString方法 "123"是String類型,這里也是會自動調用它的toString方法
所以結果是一樣的 123是int類型,它是JAVA的基礎數據類型,不能用.來調用方法,它也不是對象。 如果非要寫,可以:Integer.valueOf(123).toString(); 在System.out.println(Object obj);的時候..參數是一個對象,如果是基本數據類型,JVM會自動裝箱。然后會自動調用該對象的toString()方法 每個類都有toString()方法,如果你沒寫,會默認繼承自Object類的toString方法
posted on 2009-09-08 11:00 幻櫻釋 閱讀(187) 評論(2) 編輯 收藏
這里并沒有自動裝箱 這里調用的是兩個不同的方法,不同類型參數的重載而已 System.out.println(int arg0) System.out.println(String arg0) 事實上System.out.println() 對所有基本類型都進行了重載 自動裝箱與拆箱是JDK 1.5后才有的特性 而你在JDK1.4 及之前版本下就可以直接使用 System.out.println(123); 這樣的語句,可見,并沒有自動裝箱成Integer對象 回復 更多評論
謝謝您的指點 回復 更多評論
Powered by: BlogJava Copyright © 幻櫻釋