看板java
標 題Re: About Array
發信站KKCITY (Sun Jul 11 13:09:40 2004)
轉信站ptt!ctu-reader!ctu-peer!Spring!news.nctu!news.ntu!bbs.ee.ntu!news.kkci
※ 引述《[email protected] (狐狸)》之銘言:
> 以下這行程式碼
> Object[] obj=new Object[]{ new int[]{1,2,3}, "GoGo"};
> 輸出後
> Object[0] = [I@XXXXXX
> 原始程式碼該如何解釋呢?
> 為何輸出後會是維度,資料型態跟位址
> thanks
首先, 我猜想你所謂輸出是
System.out.println("Object[0] = " + obj[0]);
你先得了解你的程式是幹啥的.
obj 是一個 Object 的 array. 你的 initializer 使 obj
有兩個 element, 第一個是一個 reference to array,
第二個是 reference to String (記著, Java 裡面的變數
除了 primitive type 外都是 *reference*)
當你作上面我說的輸出的時候, obj[0] 所指著的 object 的
toString() 將會被 invoke. 而該 object 將是一個 int array.
toString() 沒有特別 override 的話, 沒記錯的話是輸出
其 hashcode 的 (請參考 API), 而 Object 的 hashcode()
沒有特別 override 的話則一般來說會輸出其底層位置
(並非必然, 視乎 implementation).
Alien
--
┌─────◆程式設計樂園◆─────┐ ╱ ╱  ̄ ▌ ̄  ̄ ╲╱ BBS 城邦
│ CSZone.kkcity.com.tw │ ╲ ╲ ╴ ▌ ▌ ▏ KK免費撥接
└──《From:218.103.237.168
》──┘ 電話:449-1999 帳號:kkcity 密碼:kkcity