试验验证 1)以下内容都是个人理解验证的。 (1)验证数组地址哈希地址是不是等于第一个元素的地址或哈希地址? 答:等于 。 (2)注意:[[@后面是地址,前面表示维度符号。 |
public class test { public static void main(String[] args) { /** 总结:数组地址或哈希地址不可以同时被其它程序同时使用,否则就变成不一样,个人理解是:是因为一个地址是唯一的,不可以同时被其它程序进行使用,所以导致地址有变化*/ /** 测试1:验证数组地址或哈希地址是不是等于第一个元素的地址或哈希地址?答:等于 */ // System.out.println( (new int[][]{{2},{22}}) );//[I@12a3a38 注意:此句与下句不可以同时输出,不可以重复new,否则地址是不一样的 // System.out.println( (new int[][]{{2},{22}})[0] );//[I@12a3a380 // System.out.println( (new int[][]{{2},{22}}).hashCode() );//312714112 注意:此句与下句不可以同时输出,不可以重复new,否则地址是不一样的 // System.out.println( (new int[][]{{2},{22}})[0].hashCode() );//312714112 /** 测试2:验证数组地址或哈希地址是不是等于第一个元素的地址或哈希地址? 答:等于 */ int[][] i =new int[][]{{2},{22}}; // System.out.println(i);//[[I@12a3a380 注意:i和i[0]不可以同时进行输出也无法同时比较,否则地址或哈希值不一样,比较也就不相等 // System.out.println(i[0]);//[I@12a3a380 // System.out.println(i.hashCode());//312714112 注意:此句与下句不可以同时输出 // System.out.println(i[0].hashCode());//312714112 // System.out.println(i.hashCode() ==i[0].hashCode());//false 因为不可以同时比较,所以导致为false } } |