引用与实例

实例只能由new来创建。

字段变量与局部变量

字段变量在类中。
局部变量在方法中(可能是在方法体内,也可能是餐变量)。

存储位置:
字段变量存在于堆中,局部变量存在于栈中。

回顾: 堆中保存着对象,栈中保存着基本数据类型和对象的引用。

public class HelloWorld {
    int []a = new int[5];
    int modify(int[] a) {
        a[0]++;
        a = new int[5];
        return 0;
    }
    public static void main(String []args) {
        HelloWorld tmp = new HelloWorld();
        tmp.modify(tmp.a);
        System.out.print(tmp.a[0]);
    }
}

这段代码的输出是1而不是0。
注意:

a = new int[5];

这一句里的a是局部变量而不是字段变量。