java的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。

堆是与栈作用不同的内存,一般用于存放不放在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量使用final修饰后,放在堆中,而不是栈中。

1.heap是堆,stack是栈。

2.stack的空间由操作系统自动分配和释放,heap的空间是手动申请和释放的,heap常用new关键字来分配。

3.stack空间有限,heap的空间是很大的自由区。

在Java中,

若只是声明一个对象,则先在栈内存中为其分配地址空间,

若再new一下,实例化它,则在堆内存中为其分配地址。

4.举例:

数据类型 变量名;这样定义的东西在栈区。

如:Object a =null; 只在栈内存中分配空间

new 数据类型();或者malloc(长度); 这样定义的东西就在堆区

如:Object b =new Object(); 则在堆内存中分配空间

参考资料:http://www.cnblogs.com/perfy/archive/2012/09/06/2672946.html

最新文章

  1. Android 手机卫士--设置界面&功能列表界面跳转逻辑处理
  2. ReSharper 配置及用法
  3. Openstack的计算节点的nova-network异常中止及实例无法删除排错过程
  4. android布局 及 布局属性
  5. UVa 1586 Molar mass
  6. 配置文件的读取添加webconfig
  7. 安装STS报错(一)
  8. 【转】Swagger2 添加HTTP head参数
  9. Hibernate与mysql的对应类型
  10. WebRTC 音频算法 附完整C代码
  11. Yii2设计模式——简单工厂模式
  12. C# 仿360悬浮球开发demo程序
  13. bootstrap 前端模板
  14. BZOJ 1257: [CQOI2007]余数之和
  15. 软工网络15Alpha阶段敏捷冲刺博客集合
  16. hdu1799-循环多少次?-(组合恒等式)
  17. G - Christmas Play
  18. php递归获取分类结构
  19. BUAA软工个人作业Week2-代码复审
  20. taglist-plus 安装使用

热门文章

  1. dia无法输入中文?
  2. WIN10中运行ASP出错
  3. 基于FPGA的异步FIFO验证
  4. 【Android】7.1 布局控件常用的公共属性
  5. 黑客编程教程(八)编写NT服务
  6. hdoj1251 统计难题 字典树
  7. dubbo服务端,dubbo客户端,注册中心(zk)之间的心跳
  8. 简单的Ajax实例
  9. HTML DOM addEventListener() 方法
  10. pyQt绘图