A a;表示申明了一个对象a,它的类型为A,但它只是一个引用,并没有实体。
new A(); 表示新建了一个类型为A的对象实体;
A a = new A(); 新建一个类型为A的对象实体,并将它命名为a,a指向新建的这个对象;
a = new A(); 这种是不能单独存在的,前面必然申明了a的类型,比如: Person p = new Person("张三"),这时候p表示"张三",然后 p = new Person("李四"),这时候p就不再指向"张三"了,而是指向“李四"。
java 对象的创建有几步:
声明对象A a = null;
为对象赋值,也就是分配内存空间 a = new A();
其实A a = new A()和 A a = null; a = new A();是一个意思。
前者是后者的简单写法罢了!