jvm 内存分配

内存分配策略 

  程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.

静态的为程序编译时能确定数据目标占用空间

栈式的为程序运行时,在过程的入口,才能确定数据目标占用空间,按照先进后出的原则

堆式的为编译时和程序运行时在过程的入口都无法确定的数据目标,比如可变长度串和对象实例。

 

堆和栈的区别

   堆是存储对象,而栈是执行程序。

栈 缺点:编译器必须知道要分配多少空间, 优点:速度快

 堆是应用程序运行时请求操作系统分配的内存。 缺点:效率低 优点:编译器可以不必知道要分配多少空间,要放多长时间。

 

jvm 中的堆和栈

 jvm是基于堆栈的虚拟机,java为每个新创建的线程分配都分配一个堆栈。堆栈以帧的单位来保存线程的状态。做的操作:以帧为单位的压栈和出栈。

 

java自动管理堆和栈,跟c++不同。

堆存储java对象,而栈存储基本变量。

栈的重要特性是栈中的数据可以共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值