解释一个误解
如下表达式:
A a = new A();
这个表达式代表A是类名,a不是对象,new A()才是对象!a引用指向new A()的对象。我们平常通过书本上理解到的以及平时提起的对象对默认当做了a。
在java中,“=”通常被称为赋值,其实严格意义上来说这是不严谨的,会给我们带来误解,它实际的执行过程是将右边的对象传给左边的引用,这个过程其实是在传递地址。java看似没有指针的概念,大大降低了学习java的门槛,其实我们的引用就是一个指针,它指向我们的地址。再如:
A a;
A是类名,a是引用,a所指向的对象为空null;
a1 = a2;
a1和a2都是引用,这个表达式的意思是把a2所指向的对象的地址传递给a1;