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

1、String a=new String(“fdsdfs”);

堆 存放的是new出来的对象 jvm中只有一个堆区 被所有的线程共享

栈 是变量a 每个栈中的数据私有的 其他栈不能访问。栈中分配的是基本类型和自定义对象的引用。

方法区 是“fdsdfs”;被所有的线程共享,方法区包含所有的class static变量。方法区存放的是类信息和static变量。

2、也可以这么理解:堆是用来存放对象的,栈是用来运行程序的。堆:java的垃圾回收器会自动的回收这些不用的数据。缺点是由于要动态的分配内存,存储效率会比较的慢。

栈:栈的优势是存取效率比较快,仅次于寄存器,栈数据可以共享。但缺点是栈中的数据大小和生存期的固定的,缺乏灵活性。

3、堆和栈的区别可以用如下的比喻来看出:(来自csdn/weixin_41254254)
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就
走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自
由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由 度大。

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

  1. 11.JDK8内存模型、本地方法栈、虚拟机栈、栈帧结构(局部变量表、操作数栈、方法出口、虚拟机栈与本地方法栈的关系、寄存器、方法区、堆(Heap)、jvm中的常量池、Metaspace(元空间))

    11.JDK8内存模型 11.1.本地方法栈(Native Method Stacks) 11.2.虚拟机栈(Java Virtual Machine Stacks) 11.3.栈帧结构 11.3.1 ...

  2. JVM-内存区域 堆、方法区,虚拟机栈、程序计数器详解

      JVM 把内存分为若干个不同的区域,这些区域有些是线程私有的,有些则是线程共享的,Java 内存区域也叫做运行时数据区,它的具体划分如下: 虚拟机栈   Java 虚拟机栈是线程私有的数据区,Ja ...

  3. 栈空间内存和堆空间内存

    栈空间内存.堆空间内存和方法区内存 ​ 在学习Java的过程中,我们知道,我们编译出的class文件,需要加载到内存中才可以运行.在Java中,有三个很重要的内存空间:栈内存空间.堆内存空间以及方法区 ...

  4. 堆、栈、方法区、直接内存、堆和栈区别

    JVM的体系结构 (1) Class Loader类加载器        负责加载 .class文件,class文件在文件开头有特定的文件标示,并且ClassLoader负责class文件的加载等,至 ...

  5. 【Java 虚拟机原理】栈帧 | 动态链接 | 方法区 | 字节码文件二进制分析

    文章目录 前言 一.方法区 二.字节码二进制文件分析 三.动态链接 1.动态链接简介 2.静态链接与动态链接 3.早期绑定 和 晚期绑定 4.动态链接示例 前言 " 栈帧 " 中存 ...

  6. 为什么jvm要分为堆、方法区等?原理是什么?_「JVM」知识点详解一:JVM运行原理详解...

    前言 JVM 一直都是面试的必考点,大家都知道,但是要把它搞清楚又好像不是特别容易.JVM 的知识点太散,不系统,今天带大家详细的了解一下jvm的运行原理. 正文 1 什么是JVM? JVM是Java ...

  7. JVM-04-运行时数据区-堆,方法区

    文章目录 堆 堆的核心概述 堆与进程 堆内存细分 JVisualVM可视化查看堆内存 设置堆内存大小与 OOM 设置堆内存 OOM 新生代与老年代 对象分配 具体过程⭐ 分配策略 分配一般情况 分配特 ...

  8. JVM(类加载、运行时数据区、堆内存、方法区、本地接口、执行引擎和垃圾回收)java虚拟机(JVM)的超详细知识点

    JVM虚拟机 一.JVM的概述 1.为什么要学习JVM 2.虚拟机 3.JVM的作用 作用 特点 4.JVM的位置 5.JVM的分类 6.各个组成部分的用途 7.Java 代码的执行流程 8.JVM ...

  9. JVM入门(位置、体系结构、类加载器、双亲委派机制、沙箱安全机制、Native、PC寄存器、方法区、堆(新生区{伊甸园区、幸存区}、养老区、永久区)、OOM、GC算法、JMM)

    目录 一.JVM的位置 二.JVM的体系结构 三.类加载器 1.类加载器举例 2. JVM中提供了三层的ClassLoader 3. 双亲委派机制(重要) 3.1 工作原理 3.2.优点 四.沙箱安全 ...

最新文章

  1. c语言相邻字符串字面量,C语言预处理#运算符的细节
  2. 八天学会MongoDB:第三天 细说高级操作
  3. 实现工控机4U断电后自动重启功能
  4. python2定点找色_Python实现按键精灵(二)-找图找色
  5. matlab 中max函数用法
  6. 如何实现文件增量同步——算法
  7. 数据库设计笔记——MySQL基础知识(四)
  8. Unity3D 之UGUI 滑动条(Slider)
  9. Java 7 Update 21安全改进的详细信息
  10. 深度学习TF—9.循环神经网络RNN及其变体GRU、LSTM
  11. Maven-01-私服搭建及使用
  12. 数学建模算法与应用习题 1-4 解析 MATLAB 换一下思路做题
  13. java pos58打印_POS58票据热敏打印机,怎么用ESC/POS命令控制打印
  14. linux broadcast 作用,linux中inaddr_broadcast什么意思?
  15. python查火车票_Python实现12306火车票查询系统
  16. oracle = 中文生效,prm dul恢复oracle数据库数据表 中文最简易说明
  17. UI复习练习——防QQ的登录下拉列表
  18. 90代电视剧《渴望》曾万人空巷,据说该剧播出时:人们睡觉都不用锁门
  19. python画心形代码大全_还在为 520 发愁吗?教你用 Python 写个表白神器!
  20. 如何使用 MATLAB 音频处理 - 制作钢琴 - 进行编曲弹奏音乐

热门文章

  1. 082_html5Web存储
  2. linux排序语言,Linux sort 排序命令uniq去重复行
  3. c语言for循环的第三句,for循环语句的用法
  4. cdn贝免费套餐_阿里云香港服务器带宽太贵怎么办?香港节点全球CDN加速你值得拥有...
  5. eclipse连接mysql8报错_Eclipse连接MySQL8.0.13 win10 64位
  6. 编程 ul 不能一行显示 跳到下行_单片机编程魔法之三权分立
  7. java随机生成10个不重复的数字,随机生成10个不重复的0-100的数字(实例讲解)
  8. python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它
  9. php控制器面向对象编程,php面向对象编程
  10. JAVA ee6 result结果集_java对数据库的表插入操作时,显示已生成用于更新的结果集...