java对象的内存分配

首先,我们先了解一下栈内存和堆内存:

栈内存:位于通用RAM(随机访问存储器)中,程序通过栈指针可以直接获取到存储在栈内存中的数据,运行效率仅次于寄存器。

堆内存:一种通用的内存池(也位于RAM区),用于存放所有的Java对象,运行速度要比栈内存花费更多的时间。

下面通过一个案例来更加深入地了解,我们创建了一个fruit水果类,里面有两个属性,一个是水果类型,一个是价格。还有一个买水果的buy方法。

public class Fruit {
    String type;
    int price;
    public static void Buy(){
        System.out.println("买水果");
    }
}

然后创建了一个FruitTest类

public class FruitTest {
    public static void main(String[] args) {
        Fruit fruit = new Fruit();
        System.out.println(fruit);
        System.out.println(fruit.type);
        System.out.println(fruit.price);
        fruit.type = "苹果";
        fruit.price = 10;
        System.out.println(fruit.type);
        System.out.println(fruit.price);
        fruit.Buy();
    }
}

赋值前内存分配:

赋值后内存分配:

运行结果:

在未赋值前,因为String类型默认是null,int类型默认值是0。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值