内存分析

  1. 存放:局部变量


  1. 存放new出来的对象
  • 方法区
  1. 存放:类的信息、static变量、常量池(字符串常量)

例如


程序以main函数为入口,

1.首先读取到Student类,将类的信息如代码、static常量、常量池存放如方法区,如图所示

2.s1为局部变量,放入栈,s1是引用类型(类似于int、String),占用4个字节,栈比较小

3.new的方法放入堆,调用构造器,建的student对象是类的一个复制,将类的定义复制到堆,包括name :null,Id :0;Age:0,Gender:null;weight:0,并对其初始化赋值,属性越多,占的内存越多,

study()与sayhello()方法赋上地址,指向方法区

4.Student s1=new student();"="赋值 ,将堆中对象的地址值赋给s1;

4.s1.nam e="亚运"通过s1的地址找到name,通过name的地址找到常量池;

以此类推

操作对象就是操作地址

下图为此段代码的对应内存分析图




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值