A a = new A()
A 声明数据类型是 大A
a (在栈中)这个就是引用实际上是一个受限指针(在java中是一种特殊的受限指针 通过这个 小a 能找到你所定义(定义会分配存储空间)的那个数据)
new 关键字 作用是分配堆空间
A() 数据类型 大A 的构造方法
new A() 使用A的默认构造方法 在堆上分配了一块空间这个空间你不能直接访问你需要一个桥梁
a=new A() 的意思是 把在堆上分配的这块空间 的首地址赋值给a 换句话说a指向堆上分配的那块空间 小a就是那个桥梁
但a只有首地址 他不知道它的数据类型(类) A a = new A()中的 A a 的意思是告诉编译器小a是大A这种数据结构的(类)
A a = new A();
的意思是 首先在堆分配一内存(new)来存放 大A 这种数据结构(类)然后声明一个 大A类型的引用小a 之后把分配的这块内存的首地址 赋值给小a |