创建对象内存分析

 

测试代码
package com.oop.demo2;

public class Application {
public static void main(String[] args){
Pet dog = new Pet();//当代码输出这一行时,name=null
//age=0
dog.name="旺财";
dog.age=1;
System.out.println(dog.name);
System.out.println(dog.age);
dog.shout();//输出Pet方法中的内容
System.out.println(dog);//因为dog没有赋值
//new一个对象叫做mao
Pet mao = new Pet();
mao.name="小猫";
mao.age=2;
System.out.println(mao.name);
System.out.println(mao.age);
System.out.println(mao);//输出mao的内存地址
mao.shout();//输出Pet方法中的内容
}
}
/*
通俗来说就是,main方法中的常量池中的东西给pet类,
给的方式就是通过引用变量名,变量名就是从new pet()
再引入局部变量来的。
*/

模板代码
//模版,内存结构分析用
package com.oop.demo2;

public class Pet {
String name;
int age;
public void shout(){
System.out.println(name+"叫了一声");
}
}

 

 

 

new pet时,name=null   age=0

new pet()再引入局部变量时

 

 

就有一个变量名main方法中的常量池可以通过引用变量名给圈红圈的地方赋值,赋完值之后就变成了下面这张图

 

 

赋完值之后就可以输出了

这两行代码就是通过变量名来给pet赋值

 

 

 通俗来说就是,main方法中的常量池中的东西给pet类,给的方式就是通过引用变量名,变量名就是从new pet()再引入局部变量来的。
posted @ 2022-10-27 18:30  陈焕新  阅读(21)  评论(0)    收藏  举报