java内存变化过程图

java内存变化图

# 代码
public class Person { 
String name; 
int age;
 public void show(){ 
 System.out.println("姓名:"+name+",年龄:"+age); 
 }
  }
  public class TestPerson {
   public static void main(String[ ] args) { 
   // 创建p1对象
    Person p1 = new Person(); 
   p1.age = 24; 
   p1.name = "张三";
    p1.show(); 
    // 创建p2对象 
    Person p2 = new Person(); 
    p2.age = 35;
     p2.name = "李四"; 
     p2.show();
      }
       }

在这里插入图片描述

内存变化过程

一、
public class TestPerson {
public static void main(String[ ] args) {
// 创建p1对象
Person p1 = new Person();
在这里插入图片描述图1
main中的p1为null。
0x11地址对应的是
public class Person {
String name;
int age;
public void show(){
System.out.println(“姓名:”+name+",年龄:"+age);
}
对象还未赋值,默认初始值为0

二、// 创建p1对象
Person p1 = new Person();
p1.age = 24;
p1.name = “张三”;
p1.show();
在这里插入图片描述图2
创建p1对象,在图1中找到p1,对应的是未赋值的对象,地址为0x11.
然后对p1.age赋值24,p1.name字符串为“张三”(注意:字符串在java里是类),p1.show()有隐式参数,默认传this:,在此处this为0x11(p1).

补充:
public class Person {
String name;
int age;
public void show(){
System.out.println(“姓名:”+this.name+",年龄:"+this.age);
}
这里的this指向哪个对象,就用哪个对象的name和age,即此处调p1.

三、// 创建p2对象
Person p2 = new Person();
p2.age = 35;
p2.name = “李四”;
p2.show();
在这里插入图片描述
p1.show()执行完消失。
过程和p1一样,但是类不用再定义一次,就好像表格里的表头,无需再定义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值