关于面向对象内存分析的理解

以下是结合狂神说Java教程和自己的理解得出的关于面向对象内存分析的一些心得体会

附上示例图与代码展示

 

 首先看代码:

创建了一个Pet的类,定义了常量name和age,以及构造方法shout。

然后再新建一个Application的类,在里面new一个Pet的对象“dog”,实际上new一个对象是在调用构造器,给这个dog构造器里面的属性name和age进行赋值并调用shout方法。然后进行输出,在这个过程中,我们新建的类、对象以及赋值的数据信息在内存空间是怎么存放的呢?

接下来看示意图

首先我们创建的对象、类(属性+方法)都是以堆栈的形式存在的。

在上述代码中我们建立了一个新的Java类Application和Pet类,新建的类都会放在堆的方法区中,给属性赋值的数据都是存放在堆中的。

而类中的main主函数的数据被压入栈中,我们new出的对象也是放在栈中的,而栈与堆之前是用地址去关联在一起的,对象根据地址信息可以获取到内存空间中的数据信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值