1. 匿名对象介绍
首先介绍直观说匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储。如:new User().Say()
2. Java创建对象的过程
如果你已经对Java的内存模型有了一定的了解,让我们继续分析java在创建对象时的过程。
创建一个普通对象
Userp = new User();
创建一个匿名对象
new User();
匿名对象和普通对象区别:
1、两者的结构不同,这一点通过其表现形式一目了然,在此不作赘述;
2、在内存中的分布不同:匿名对象创建的对象只存在于堆中;非匿名对象创建对象时的对象虽然也在堆中,但其类变量却在栈中,栈中的类变量通过创建变量的内存地址来指向相应的对象。