加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

你真的了解JVM?JVM中有哪些内存区域,都有哪些作用?

发布时间:2019-07-18 04:33:07 所属栏目:空间 来源:正号先生
导读:1.0前言 之前我们探讨过一个.class文件是如何被加载到jvm中的。但是jvm内又是如何划分内存的呢?这个内被加载到了那一块内存中?jvm内存划分也是面试当中必被问到的一个面试题。 1.1什么是JVM内存区域划分? 其实这个问题非常简单,JVM在运行我们写好的代码时

此时jvm的内存划分的最终模型为:

你真的了解JVM?JVM中有哪些内存区域,都有哪些作用?

你真的了解JVM?JVM中有哪些内存区域,都有哪些作用?

6.0其他区域内存

很多java程序猿对这一块区域的接触是非常少的。

其实在JDK的很多底层代码API中,比如NIO。

如果你去看源码会发现很多地方的代码不是java写的,而是走的native方法去调用本地操作系统里面的一些方法,可能调用的都是c语言写的方法。

比如说:public native int hashCode();

在调用这种native方法的时候,就会有线程对应的本地方法栈,这个其实类似于java虚拟机栈。也是存放各种native方法的局部变量表之类的信息。

还有一块区域,是不是jvm的,通过NIO中的allocateDirect这种API,可以在jva堆外分配内存空间,然后通过java虚拟机栈里的DirectByteBuffer来引用和操作堆外内存空间。

7.0总结

基本上jvm的核心内存区域的功能都解释清楚了,面试能回答到这一个地步应该也能顺利通过了。

我们需要重点关注的是方法区,程序计数器,java虚拟机栈和java堆内存这些内存区域的作用。

【编辑推荐】

  1. Java后端开发三年,你不得不了解的JVM
  2. 详解JVM运行原理及Stack和Heap的实现过程
  3. JVM发生CMS GC的 5 种情况,你知道的肯定不全!
  4. JVM很难?或者你看完这篇文章就够了
  5. 玩转KVM: 聊聊KSM内存合并
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读