1.当数组的元素的类型是类的时候,数组的每一个元素其实只是对象的管理者而不是对象本身。因此,仅仅创建数组并没有创建其中的每一个对象。
2.for-each
我们看以下两段代码:
public class foreach {
public static void main(String[] args) {
int[] ia=new int[10];
for(int i=0;i<ia.length;i++) {
ia[i]=i;
}
for(int k:ia) {
k++;
System.out.println(k);
}
System.out.println(ia[0]);//输出0,说明k不会影响数组本身,只是一个复制品
}
}
class Value{
private int i;
// Value(int i) {
// this.i=i;
// }
public void set(int i) {
this.i=i;
}
public int get() {
return i;
}
}
public class foreach1 {
public static void main(String[] args) {
Value[] v=new Value[10];
for(int i=0;i<v.length;i++) {
v[i]=new Value();
v[i].set(i);
}
for(Value a:v) {
System.out.println(a.get());
a.set(0);
}
for(Value a:v) {
System.out.println(a.get());//输出0 0 0 0....a.get()值改变了
}
}
}