(1)x[i] = new Integer[5];应该编译不过吧,需要一个Integer类型, 你给他一个Integer[],怎么可以呢(2)a[],b[]没什么区别吧,结果是一样的
(1)不好意思,是啊。 问个问题还有好多错误 应该是x[i] = new Integer(i);(2)应该有区别得, 他们同样是表示包含三个Integer元素的的对象数组 Integer[] a = {new Integer(1), new Integer(2), new Integer(3)}; 实际上相当于 int[] a = new int[3]{1, 2, 3} a的大小初始化时就确定是3 而Integer[] b = new Integer[] { new Integer(1), new Integer(2), new Integer(3)}; 实际上相当于 int[] b = {1, 2, 3} b的大小没有确定,只是初始化3个元素谢谢以上的朋友!
回去我跟我们导师探讨了一下,举个例子: String a = "abc"; String b = "abc"; String c = new String("abc"); String d = new String ("abc"); 在这4个对象中,a b 初始化,a与b存放在栈区里面,而他们的对应物理地址都是相同的(即"abc")。 但是在对象c,d中,由于实例化了,他们对应的参数在堆区,也就是说c 对应一个"abc",d 对应一个"abc"。 所以a == b 是 true,c == d 是false 而且所有的基本数据都是这个规则。
不知道怎么修改帖子?上面得的a[], b[]怎么会没有区别呢?
你给他一个Integer[],怎么可以呢(2)a[],b[]没什么区别吧,结果是一样的
问个问题还有好多错误
应该是x[i] = new Integer(i);(2)应该有区别得,
他们同样是表示包含三个Integer元素的的对象数组
Integer[] a = {new Integer(1), new Integer(2), new Integer(3)};
实际上相当于 int[] a = new int[3]{1, 2, 3}
a的大小初始化时就确定是3
而Integer[] b = new Integer[] {
new Integer(1), new Integer(2), new Integer(3)};
实际上相当于 int[] b = {1, 2, 3}
b的大小没有确定,只是初始化3个元素谢谢以上的朋友!
String a = "abc";
String b = "abc";
String c = new String("abc");
String d = new String ("abc");
在这4个对象中,a b 初始化,a与b存放在栈区里面,而他们的对应物理地址都是相同的(即"abc")。
但是在对象c,d中,由于实例化了,他们对应的参数在堆区,也就是说c 对应一个"abc",d 对应一个"abc"。
所以a == b 是 true,c == d 是false
而且所有的基本数据都是这个规则。