当前位置: 首页 > news >正文

java面试:可以讲一讲jvm的内存结构吗?

在java当中,jvm作为java的虚拟机,负责加载、验证、解释/编译并执行 Java 字节码,为了能完成java当中的许多指定功能,因此jvm将自己的内存结构分为了许多块,在面试当中也会常考这一部分的知识,今天我们就着重的对这个知识点进行详细的解析。

     jvm虚拟机在拿到自己能支配的内存,就将内存进行了分割,将内存分割成了五部分,分别是Java 虚拟机栈区(存储函数运行过程中的临时变量,存储的是地址),堆区(存储对象),本地方法栈(c++的native方法),程序计数器(指向程序运行位置),方法区(静态方法变量,类加载器等):

     本地方法栈:用于管理本地方法的调用,里面并没有我们写的代码逻辑,其由native修饰,由 C 语言实现。

      程序计数器:它是一块很小的内存空间,主要用来记录各个线程执行的字节码的地址,例如,分支、循环、线程恢复等都依赖于计数器。

     方法区(Java8叫元空间):用于存放已被虚拟机加载的类信息,常量,静态变量等数据,通过运行时常量池来查找数据。

     Java 虚拟机栈:用于存储局部变量表、操作数栈、动态链接、方法出口等信息。(栈里面存的是地址,实际指向的是堆里面的对象)

     堆:Java 虚拟机中内存最大的一块,是被所有线程共享的,几乎所有的对象实例都在这里分配内存,主要由新生代和老年代组成,GC的实现地址 。

     同时本地方法栈,jvm虚拟机栈是线程私有的区域,而堆区和方法区是线程之间共享的

今天的分享就到这里了,希望这篇博客能给你一些帮助,让你对关于jvm的内存结构的问题得到进一步的提升,在面试的时候能从容面对面试官。

http://www.dtcms.com/a/436254.html

相关文章:

  • 福州网站建设方案开发东莞最新通报最新
  • 自助建站 知乎上海中心设计公司是谁
  • cms二次开发网站建设政务网站无障碍建设
  • InfiniBand技术解析(4):智慧的调度者 —— 子网管理器与属性
  • 贵阳网站建设1685如何将网站上传到空间
  • 领优惠券的网站怎么做做蛋糕有哪些网站
  • 字母异位词分组 Java
  • 合肥网站快速排名优化做整站优化
  • 东莞网站建设方案托管鲜花网站数据库建设分析
  • 最流行网站开发工具贞丰县住房和城乡建设局网站
  • 网站做的和别人一样违法吗保定网站开发公司
  • 网站建设赠送seowordpress延时加载插件
  • 建设留学网站桂园精品网站建设费用
  • 注册营业执照网站wordpress文字可以动的插件
  • 清河网站建设费用深圳网络做网站
  • 厦门软件网站建设温州做阀门网站公司
  • thinkphp5做网站企业运营管理名词解释
  • 神农架网站建设搜狗做网站怎么样
  • 上上上海网站设计广州海珠区培训机构网站建设
  • 太原专业网站建设微信公众平台如何绑定网站
  • 天元建设集团有限公司设计院wordpress网站代码优化
  • 好题推荐——另类最小公倍数(gcd)
  • 电子商务网站建设预算福建已经宣布封城的城市
  • 《数据出境安全评估办法》企业应对策略
  • 关于营销方面的网站发软文的网站
  • 数据网站排名做婚恋网站的翻译好吗
  • 怎么认证网站硬件工程师40岁后的出路
  • 南通市住房和城乡建设厅网站电商公司注册经营范围
  • 手机网站返回按钮怎么做建设彩票网站合法吗
  • MIT 6.S081 Lab11:mmap