堆中存的是对象。栈中存的是基本数据类型和堆中对象的引用。一个对象的大小是不可估计的,或者说是可以动态变化的,但是在栈中,一个对象只对应了一个4btye的引用(堆栈分离的好处:))。

为什么不把基本类型放堆中呢?因为其占用的空间一般是1~8个字节——需要空间比较少,而且因为是基本类型,所以不会出现动态增长的情况——长度固定,因此栈中存储就够了,如果把他存在堆中是没有什么意义的(还会浪费空间,后面说明)。可以这么说,基本类型和对象的引用都是存放在栈中,而且都是几个字节的一个数,因此在程序运行时,他们的处理方式是统一的。但是基本类型、对象引用和对象本身就有所区别了,因为一个是栈中的数据一个是堆中的数据。最常见的一个问题就是,Java中参数传递时的问题。

堆中存什么?栈中存什么?相关推荐

  1. java中stack heap_java虚拟机中的堆(heap)、栈(stack)、方法区(method area)

    1.堆区 存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) jvm只有一个heap区,被所有线程共享,不存放基本类型和对象引用,只存放对象本身 堆的优 ...

  2. 递归和迭代在图遍历中的对比-栈结构

    递归和迭代在图遍历中的对比-栈结构 递归和迭代在图遍历中的对比-栈结构 递归和迭代 总结一下 递归和迭代在图遍历中的对比-栈结构 做了两道图遍历相关的题,分别是Leetcode230. Kth Sma ...

  3. a = 3 中3在栈还是堆_56.堆、栈、方法区(3.0)

    0.上面比较形象可以看出堆.栈.方法区之间的区别, 栈存的是局部变量.堆一般是对象等等,而方法区存在的事一些信息加载出来等等,他们互相分工. 1.String a=new String("f ...

  4. java栈 类 堆_详细介绍Java中的堆和栈

    栈与堆都是Java用来在RAM中寄存数据的中央.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运转时数据区,类的对象从中分配空间.这些对象经过new.newar ...

  5. c语言中栈堆,全程剖析C语言中堆和栈的区别

    C语言中堆和栈的区别 1.申请方式 (1)栈(satck):由系统自动分配.例如,声明在函数中一个局部变量int b;系统自动在栈中为b开辟空间. (2)堆(heap):需程序员自己申请(调用mall ...

  6. 怎样把DataGrid存放在ViewState中的无用数据卡掉

    作者:无间道的博客http://www.cnblogs.com/wangsaokui/articles/10031.html 怎样把 DataGrid 存放在 ViewState 中的无用数据(有时候 ...

  7. 乐视云监控数据存放到influxdb中

    3.9     监控.告警系统 监控报警我们分PaaS平台和业务应用两大类. PaaS平台主要聚焦在基础设施和LeEngine的各个服务组件的监控报警(比如主机CPU,内存,IO,磁盘空间,LeEng ...

  8. linux中在vi编辑器中执行存盘退出命令是?

    linux中在vi编辑器中执行存盘退出命令是? 方法一:首先需要按ESC键回到命令模式,然后按:wq. 方法二:按住shift再按两下'z'键.

  9. 单片机c语言存数据,单片机中C语言的数据存储与程序编写

    一.五大内存分区 内存分成5个区,它们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 1.栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区. ...

最新文章

  1. RobotFramework下的http接口自动化Set Request Body 关键字的使用
  2. python使用matplotlib可视化线图(line plot)、设置X轴坐标的下限和上限数值(setting the lower and upper bound of the x axis)
  3. Linear Programming_the simplex method in tableau format
  4. C++描述杭电OJ 2000. ASCII码排序 ||
  5. 2003 r2 64 iis php mysql_关于在win2003中,iis+php+mysql 配置的问题
  6. android netty导入_Android Netty框架的使用
  7. 动态修改网页title
  8. tomcat——轻量级中间件学习
  9. 石油与天然气行业中数据报表分析
  10. Android学习笔记(十五)——实战:强制下线
  11. 如何卸载office201032位_如何卸载流氓版office2010
  12. Linux 无线网卡驱动安装 Dell Inspiron R14-N4010 笔记本
  13. 简单的爬图片代码(python)
  14. 代码质量保证体系(上)
  15. Shader Reflection Probe 获取图像
  16. 钉钉机器人发送定时任务
  17. MYSQL之错误代码----mysql错误代码与JAVA实现
  18. Learning Entity and Relation Embeddings for Knowledge Graph Completion (TransR)论文翻译
  19. 简单实用的基于python的OCR中文字符识别——基于windows平台(附代码)
  20. 使用idea批量反编译class

热门文章

  1. vue即时通讯,一个很好用的插件
  2. 小程序如何生成二维码海报?
  3. Opencv测量图片中的物体大小
  4. 【计算机系统结构】~ ROM/PROM/EPROM/E2PROM/FLASH、SOC 片上系统、总线、CPU 处理器、Cache、DDR、ARM 体系结构、虚拟内存、内核 kernel
  5. 【渝粤题库】国家开放大学2021春2408中国当代文学题目
  6. axure变成一个小手了_Axure教程:这几个小技巧你一定要知道
  7. 【WPF学习手记】绘制箭头
  8. JMeter 5.0安装配置(win10)
  9. linux 未分配分区合并,这种情况如何扩展硬盘,合并硬盘分区,主分盘和未分配中间有个恢復分区,不能合并扩展硬盘!...
  10. EGL接口介绍(转)