JVM里 堆(stack) 栈(heap) 总结

首先注明一点,JVM里的堆和数据结构里的堆(heap)不是一个概念。这是面试ebay外包的时候,面试官看过我这个博客,给我纠正的错误。(因为之前的博客是把这两个堆的概念混合了。)在此感谢面试官的提醒,但是不知道你还会不会回来看我的这个博客。我说我会改的哟~

JVM里的堆:

每一个Java应用都唯一对应一个JVM实例,每一个实例唯一对应一个堆。对象的实例化就是发生在JVM里面的堆中,这里的堆也是垃圾回收的时候重要地带。

数据结构里的堆(heap):

在现实中我们通常把堆 (一种完全二叉树) 使用顺序结构的数组来存储。

JVM里的堆JVM里的栈
英文名heapstack
相关数据类型包装类,如Integer,String, Double放基本数据类型,即int,short, long, byte, float, double, boolean, char
缓存二级缓存
生命周期是由虚拟机的垃圾回收算法来决定的
一级缓存
通常都是被调用时处于存储空间中,调用完毕立即释放
相关代码
//定义的东西在堆区
new 数据类型(); 
malloc(长度);

//在堆内存中分配空间
Object b=new object();
//此时a在栈区
int a;

//只在栈内存中分配空间
Object a=null;
相对速度存取速度快,仅次于直接位于CPU中的寄存器

变量

new 出来的对象是在堆里

一个变量如果想跨越方法的边界,就必须创建在堆里。

局部变量是和方法同生共死的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值