你需要简单了解JVM中的内存长什么样子
下面有关JVM内存,说法错误的是?
1、程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
2、Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
3、方法区用于存储JVM加载的类信息、常量、静态变量、即使编译器编译后的代码等数据,是线程隔离的
4、原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
首先要回答这个问题,那么就要清楚jvm中内存是长什么样子的。
我遇到这个问题的时候,也只是简单的了解,因为没有做过什么对于java性能的优化,所以对于JVM不是很了解,所以还是要熟悉一下。
首先看一张图
aaarticlea/png;base64,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" alt="" />
这张图简单表示了jvm的内存是长什么样子的。
首先是颜色上面,蓝绿色的是非线程共享的,而黄色的是线程共享的。
然后是大小,大的我们用的多,而且需要掌握,小的我们只需了解,用的不是特别多。
我们先解释简单的
程序计数器。
其实这个东西很好理解,这个东西就相当于一个箭头,就和你断点调试的箭头一样,程序走到哪一步,他就到了那里。
他的功能就是用来告诉虚拟机现在走到了第几行代码了。然后你仔细想一下,这个箭头肯定是不能线程共享的,为什么呢?
每一个类都有每一个类的方法,多个用户肯定有可能会调用多个方法,每个方法有每个方法执行的的顺序,时间,所以一个人来了肯定会重新分配一个,大家不可能都用一个。
本地方法栈。
这货也好理解,你就把他当做栈,它里面呢,就是运行一些系统本地方法是需要用的。本地方法栈为使用到的本地操作系统(Native)方法服务。
还有三个就是重点了。
要理解,就要new对象了。
让我们来从new对象的执行顺序来理解这三个东西。
首先一个类在被jvm的类加载器加载的时候,它会把这个类的信息、常量、静态变量、编译器编译后的代码等数据存放到方法区里面去。还有静态变量也会存进去。常量存到常量池里面去。也就是说。方法区就像一个图书馆,把那些加载好的东西都存起来,等着备用。
然后一个类被new的时候,首先会在方法区中找这个类,找到一模一样的,然后在堆里面新建一个,然后先对一些变量初始化。基本变量赋值,对象赋值null。该对象的方法,会指向方法区中这个对象方法的地址。也就是说,多个相同的对象在堆中是保存了方法的地址,而没有把方法再复制一遍。
最后是一个对象被赋值的时候,注意刚才只是new A();而不是A a = new A();现在才是。当这一步的时候,会在java栈中建一个名字叫a的东西,然后把它的地址写成A在堆中的地址。
其实呢,栈里面还有很细的东西,它的内部结构是
但是我们可能不需要了解那么深入,有兴趣的同学自己去看呗。这里简单理解就好。
然后来理解选项
1、程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
2、Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
3、方法区用于存储JVM加载的类信息、常量、静态变量、即使编译器编译后的代码等数据,是线程隔离的
4、原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
1、前面已经说过了,这边不多说。
2、中Java方法执行内存模型,其实就是java栈,看上面的内部结构,前半部分就是对的。那么后半部分呢?
每一个用户过来,都是一个线程,每一个线程都需要有方法执行的顺序,那么都需要一个栈。所以不是线程共享的。
3、方法区加载的那些信息肯定是对的,但是对于方法区来说,并不是每个线程过来都用用一个新的方法区,因为之前说过它就是一个图书馆,堆只要往里面拿就好了,而且编译加载之后方法区里面已经有东西了,而且那些方法,常量都是可以复用的,所以方法区肯定是共享的.
4、对象都是在堆中new出来的,为什么是线程共享的呢,线程共享的区域与JAVA程序运行的生命周期相同。这部分空间是Java垃圾收集器管理的主要区域。这些对象都是由GC管理回收的。所以是线程共享的。
下面是参考资料:如果想仔细了解的同学看下面的,别看我的。
http://www.cnblogs.com/dolphin0520/p/3613043.html
http://blog.csdn.net/ns_code/article/details/17565503
http://www.cnblogs.com/sunada2005/p/3577799.html
你需要简单了解JVM中的内存长什么样子的更多相关文章
- (转载)JVM中的内存模型与垃圾回收
转载自微信公众号:Java高级架构(Java-jiagou)-----看完这篇文章,我奶奶都知道JVM中的内存模型与垃圾回收了! 六.内存模型 6.1 内存模型与运行时数据区 Java虚拟机在执行J ...
- 详解JVM中的内存模型是什么?
强烈推荐 不管是找工作还是提升水平,都建议读一下<深入理解Java虚拟机>这本书,详细讲解了JVM中的内存管理.类加载过程.垃圾回收以及最重要的性能调优实战. 本博客也是参考了这本书,有不 ...
- 重磅硬核 | 一文聊透对象在 JVM 中的内存布局,以及内存对齐和压缩指针的原理及应用
欢迎关注公众号:bin的技术小屋 大家好,我是bin,又到了每周我们见面的时刻了,我的公众号在1月10号那天发布了第一篇文章<从内核角度看IO模型的演变>,在这篇文章中我们通过图解的方式以 ...
- 看完这篇文章,我奶奶都知道什么是JVM中的内存模型与垃圾回收!
扩展阅读:JVM从入门开始深入每一个底层细节 六.内存模型 6.1.内存模型与运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同数据区域. Java内存模型的主要目 ...
- JVM中堆内存和栈内存的区别
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...
- JVM 中发生内存溢出的 8 种原因及解决办法
1. Java 堆空间 2. GC 开销超过限制 3. 请求的数组大小超过虚拟机限制 4. Perm gen 空间 5. Metaspace 6. 无法新建本机线程 7. 杀死进程或子进程 8. 发生 ...
- jvm中的内存溢出与内存泄露
内存溢出: 就是我们通常遇到的OutOfMemoryError异常,它俗理解就是内存不够,通常在运行大型程序时发生,当程序所需要的内存远远超出了JVM内存所承受大小,就会报出OutOfMemoryEr ...
- JVM中的内存分区简介
1.JVM的内存区域划分: 大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) ...
- 【高频Java面试题】简单说说JVM堆的内存结构和GC回收流程
目录 前言 JVM堆内存结构简述 JVM堆内存结构图 堆初体验 结构详情 新生代 老年代 永久代/元空间 GC回收流程 GC回收流程图 GC回收详细流程 查看JDK自带可视化堆空间图 总结 前言 我们 ...
随机推荐
- 101个linq例子
FirstOrDefault - Simple public void Linq61() { int[] numbers = { }; int firstNumOrDefault = numbers. ...
- TinyXML用法小结
TinyXML用法小结 1. 介绍 Tinyxml的官方网址:http://www.grinninglizard.com 官方介绍文档:http://www.grinninglizard.c ...
- ubuntu 文件编码错误
linux 打开出现中文编码错误(invalid encoding): convmv -f gbk -t utf-8 -r --notest /filename
- Linux格式化字符串
> 常用 > 详细 给定的格式FORMAT 控制着输出,解释序列如下: %% 一个文字的 % %a 当前locale 的星期名缩写(例如: 日,代表星期日) %A 当前locale 的星期 ...
- Spring的监听器ContextLoaderListener
一.作用 ContextLoaderListener监听器的作用就是启动web容器时,自动装配ApplicationContext的配置信息.它实现了ServletContextListener接口, ...
- c# 使用 HttpWebRequest模拟登陆
c# 使用 HttpWebRequest模拟登陆(附带验证码) 分类: C# .net2010-06-04 00:50 35647人阅读 评论(43) 收藏 举报 c#exceptionstreams ...
- 《JS权威指南学习总结--7.10 数组类型》
内容要点: 一.数组类型 判断它是否为数组通常非常有用.在ES5中,可以使用Array.isArray()函数来做这件事情: Array.isArray([]); //=>true Array. ...
- nodejs querystring
Query String querystring.parse(str[, sep][, eq][, options]) querystring.stringify(obj[, sep][, eq][, ...
- webpack - tree shaking
Tree-shaking with webpack 2 and Babel 6 babel-webpack-tree-shaking Ben Levwis
- jbpm4.3表结构和表字段说明
整体说明: JBPM4_DEPLOYMENT 流程定义表JBPM4_DEPLOYPROP 流程定义属性表 JBPM4_EXECUTION 流程实例表JBPM4_HIST_ACTINST 流程活动 ...