java基础-对象内存图

堆:存储容器用的

栈:运行方法用的

 

public class Car {
   //定义Car类的属性
   //定义颜色属性
   String color ;
   //定义轮胎个数
   int count ;
   //定义跑的功能
   public void run(){
      System.out.println("小汽车在跑 ..."+color+"..."+count);
   }

}

 

public class CarTest {

   public static void main(String[] args) {
      //创建出Car类的变量 , 创建出Car类的对象,小汽车真的有了
      Car c = new Car();
      //对象.调用类中的属性和方法
      c.color = "无色";
      c.count = 5 ;
      
      c.run();
   }

}

 当运行主程序main的时候,会在栈内存。

存放main方法,当main方法运行调用car对象的时候,

会在堆内存创建car对象,car对象的成员变量也会进入堆内存中,

默认赋值,String类型赋值为null,int类型赋值为0  ,,,

然后堆内存的car对象的索引会指向栈内存中main方法  car对象的变量

然后再给堆内存中的car对象的变量进行赋值

 

对象的成员变量,跟随对象存入堆内存中,被垃圾回收清理

局部变量跟随方法存入栈内存中,随着方法出栈而清除

 

最后调用car对象里面的run方法,run方法进栈,执行run方法代码,执行结束run出栈,mian方法出栈, 堆内存中的数据就成为垃圾等待。jvm的垃圾回收清除掉

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值