六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 63|回复: 0

jvm 内存分配

[复制链接]

升级  62%

7

主题

7

主题

7

主题

童生

Rank: 1

积分
31
 楼主| 发表于 2013-1-27 05:16:19 | 显示全部楼层 |阅读模式
内存分配策略 
  程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.
静态的为程序编译时能确定数据目标占用空间
栈式的为程序运行时,在过程的入口,才能确定数据目标占用空间,按照先进后出的原则
堆式的为编译时和程序运行时在过程的入口都无法确定的数据目标,比如可变长度串和对象实例。
 
堆和栈的区别
   堆是存储对象,而栈是执行程序。
栈 缺点:编译器必须知道要分配多少空间, 优点:速度快
 堆是应用程序运行时请求操作系统分配的内存。 缺点:效率低 优点:编译器可以不必知道要分配多少空间,要放多长时间。
 
jvm 中的堆和栈
 jvm是基于堆栈的虚拟机,java为每个新创建的线程分配都分配一个堆栈。堆栈以帧的单位来保存线程的状态。做的操作:以帧为单位的压栈和出栈。
 
java自动管理堆和栈,跟c++不同。
堆存储java对象,而栈存储基本变量。
栈的重要特性是栈中的数据可以共享
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表