java中的堆和栈

1、栈stack位于通用RAM(random-access memory,随机访问存储器)中,但通过它的“堆栈指针”可以从处理器哪里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,java编译器必须知道存储在堆栈内所有数据的确切大小和生命周期,因为它必须生成相应的代码,以便上下移动指针。这一约束限制了程序的灵活性。所以虽然某些Java数据存储于堆栈中-特别是对象的引用,但是java对象并不存储于堆栈中。

2.堆heap:一种通用性的内存池(也存在于RAM区),用于存放所有的java对象。堆不同于堆栈的好处是:编译器不需要知道要从堆里分配多少存储区域,也不必知道存储的数据在堆里存活的时间。因此在堆里分配存储有很大的灵活性。当你需要创建一个对象时,只需要用new写一行简单地代码,当执行这段代码时,会自动在堆里进行存储分配。

3.java中的基本类型存储于堆栈中,基本类型具有的包装器类,是你可以在堆中创建一个非基本对象,用来表示对应的非基本类型。

例如:

char c ="x";

Character cc = new Character(c);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值