天天看點

JAVA學習筆記--關于System.out.println()

        學習java已經有一段時間了,這段時間裡感覺到了java的博大精深,同時也是産生了不少的疑惑。

        學習java的時候産生的第一個疑惑是關于System.out.println()的,自己不知道這個方法究竟可以輸出什麼類型的資料。我試過每一種基本資料類型,發現都可以輸出。後來有一次在學習數組的時候老師介紹了一種逐個列印出數組元素的方法,是采用了循環的方法;當時心裡就想:為什麼不直接用System.out.println()列印出來呢?課後自己試了一下:

  int[] bb = {1,2,3,4,5};

  System.out.println (bb);

在一個main方法中實作這兩條語句後得到的結果是:

[I@1fb8ee3

心裡很不明白為什麼是這個結果,當時也看不懂這個結果,以為這是個亂碼。

後來我看了API的幫助文檔中關于System類的介紹,其中有:

System

static PrintStream

out

          “标準”輸出流。

以下是關于System.out的詳細介紹:

out

public static final PrintStream          out           

“标準”輸出流。此流已打開并準備接受輸出資料。通常,此流對應于顯示器輸出或者由主機環境或使用者指定的另一個輸出目标。

對于簡單獨立的 Java 應用程式,編寫一行輸出資料的典型方式是:

System.out.println(data)
       
請參閱

PrintStream

類中的

println

方法。
于是又找到文檔中關于PrintStream 的介紹,其中有這麼一句

 void

println

(Object x)

          列印 Object,然後終止該行。
詳細介紹是:

println

public void          println                (Object x)      
列印 Object,然後終止該行。此方法的行為就像先調用

print(Object)

然後調用

println()

一樣。
參數:

x

- 要列印的

Object

看來System.out.println()是可以直接列印對象類型的,但是自己在列印int[] bb時得到的卻不是數組的元素呢........
記得老師還說過一個toString()方法,可以傳回對象的字元串表示形式,在Object類的介紹中又看到這樣一條:

toString

public String          toString                ()      
傳回該對象的字元串表示。通常,

toString

方法會傳回一個“以文本方式表示”此對象的字元串。結果應是一個簡明但易于讀懂。建議所有子類都重寫此方法。

Object

類的

toString

方法傳回一個字元串,該字元串由類名(對象是該類的一個執行個體)、at 标記符“

@

”和此對象哈希碼的無符号十六進制表示組成。換句話說,該方法傳回一個字元串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
       
傳回:
該對象的字元串表示形式。
難道将一個對象作為System.out.println()的參數時輸出
的結果就是跟這個方法有關?
另外在類 PrintStream中還看到這樣一個方法:

void

println

(char[] x)

          列印字元數組,然後終止該行。

System.out.println()可以直接列印字元數組?

  char[] charArray={'a','b','c','d','e'};

  System.out.println (charArray);

試了一下果然可以直接輸出!