2013-12-11 18 views
0

我只是想澄清使用getbytes()java的東西,我在Java中做一些簡單的程序中使用GetBytes會的(), 編碼字符串但每次運行時的值應該是變化..任何人都可以解釋爲什麼它的改變..?爲什麼在java中使用getbytes()在每個運行時改變值?

這裏我的示例代碼:

String m_a="Hello"; 

    byte[] b1 = m_a.getBytes(); 

輸出1:

  encoded value : [[email protected] 

輸出2:

  encoded value : [[email protected] 

輸出3:

  encoded value : [[email protected] 

我怎樣才能得到這個字符串的獨特價值。

+5

您不打印陣列的內容。你打印它的內存地址,它可以改變。使用'System.out.println(Arrays.toString(b1));' –

+0

byte []是Java中的對象。因此,打印字節[]將打印對象。可悲的是,它不知道你想要'字節數組的內容'。而是打印byte []的內存地址。 – aquaraga

+0

感謝您的寶貴意見... – Karthick

回答

4

您正在輸出對象的標識符,而不是其內容。如果您打印陣列中的實際字節,則每次都應該相同

+0

好的夥計..謝謝你的反應。現在我明白了.. – Karthick

+0

不用擔心男人。如果它的工作,標記問題解決:) – M21B8

+0

假設我需要比較兩個字節數組是這種正確的方式。 Arrays.equals(b1,b2) – Karthick

相關問題