内存问题
A a=new A();
这种方法,左面的是存在于栈内存中,相当于是堆内存中对象的一个名称,所以a是个引用变量。左面和右面是这样分配内存的,一开始a会在栈内存中被分配一块内存,但是不具体大小,右面new对象则是在堆内存中分配一块包括了这个类中所有成员变量和成员方法大小的一块内存空间,然后a会指向这块堆内存。
值得注意的是
A a=new A();
A a2=new A();
当同一个类实例化了两个对象时,会给这两个对象分配各自内存,所以每个内存中的成员属性不会因为一个对象赋值的改变而引起另一个对象对应成员属性的原本值的改变。
题外话
一个类中的无赋值的成员变量,在被其他类调用时,java会默认对其赋值,如int类型的就是0,long类型就是0l。