内存知识是很基础的,是对于开发者来说必须理解的知识。

下面举个例子来说明我对内存的理解:

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的内存地址