看板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