内存知识是很基础的,是对于开发者来说必须理解的知识。
下面举个例子来说明我对内存的理解:
public User{
int age;
String name;
public void setAge(int age){
this.age=age;
}
pulic void setName(String name){
this.name = name;
}
}
User user = new User();
首先User user;意味着创建了一个为初始化的User对象,对象名为user;
当User user = new User()这个过程就是为user初始化的过程,那么问题来了,
问题一:new User里面的age和name没有赋值,那么user是否为空?
user当然不为空,只要new User()就会向内存申请一块区域,而这个区域的内存地址就会被赋值给user对象,所以user初始化后保存的是一个User对象的内存地址
问题二:那么当User user1=user的时候,user1保存的是什么?
user1保存的是user的内存地址,因为使用User user;的时候,系统也会为user分配一个地址。
最后总结
那么user1保存的是user的内存地址而user保存的是new User的内存地址
;
转载于:https://blog.51cto.com/6836288/1590294