java对象的存在形式解析
class Cat{
private String name;
private int age;
private String color;
}
在这里定义了一个Cat类,有三个属性。
Cat cat = new Cat(); 1
cat.age =12; 2
cat.color ="黄色"; 3
cat.name ="大黄"; 4
我把这四条语句编上号:
重点
对象在哪里呢?
真实的对象在堆当中 有的还有方法区中也有。
栈中的只是对象的引用!或者是对象名
在加载属性的时候,当属性是基本数据类型直接就在堆中。 要是其他的数据类型,比如引用时,就是把地址和值加载到方法区的常量池中!
注意:String 也是引用类型!所以加载到方法区中!
在执行new 的时候 会先加载Cat类的信息,1、属性信息,2、方法