类与对象(对象内存分析)

对象的产生分析

  • 引用类型指的是内存空间的操作。而对于现在内存会使用两块内存空间:
  • 堆内存空间:保存真正的数据,保存的是对象的属性性质。
  • 栈内存空间:保存的堆内存地址,堆内存的操作权。如果要想简化理解可以理解为保存的是对象名称,所以按照之前的一个程序就可以给出参考图。
范例:声明并实例化对象
public class TestDemo {
    public static void main(String args[]) {
        Person per = new Person();
        per.name = "张三";
        per.age = 18;
        per.info();
    }
}
类与对象(对象内存分析)_第1张图片
286518C959AED55EBEF639EAFBCB3508.jpg
  • 对于对象的产生实际上一共会有两种格式,现在使用的是声明并实例化,那么也可以分步完成。
public class TestDemo {
    public static void main(String args[]) {
       Person per = null;
        Person per = new Person();
        per.name = "张三";
        per.age = 18;
        per.info();
    }
}
类与对象(对象内存分析)_第2张图片
80DD35A9074836BD4DE6ED730EB52CFD.jpg
  • 但是需要注意的是:所有的引用类型必须在其开辟空间后使用,如果使用了未开辟的空间的引用类型,则将出现NullPointer的说明。
public class TestDemo {
    public static void main(String args[]) {
       Person per = null;
       // Person per = new Person();未开辟空间
        per.name = "张三";
        per.age = 18;
        per.info();
    }
}
  • 只有引用类型会出现此类原因,一旦出错就去检查是否实例化对象。

你可能感兴趣的:(类与对象(对象内存分析))