欢迎大家来到IT世界,在知识的湖畔探索吧!
jdk8之后,永久代替换为元空间,元空间也属于方法区的一部分。
为什么要替换为元空间,一是避免了oom的问题,因为之前的永久代的大小是由PermSize和MaxPermSize决定的,如果使用默认的或者设置不合适,就会发生OOM的问题,
而元空间不再受PermSize限制,由系统的实际空间来控制。
jvm的内存结构主要包括5大块:堆、VM栈、程序计数器、方法区、本地方法栈
方法区(Method Area):主要存放类的信息、常量、静态变量,也就是编译后的代码等等;
该区域是线程共享的
堆:主要存放对象实例,此区域也是线程共享的
本地方法栈:此区域主要存储native方法相关的信息,由本地调用的
VM栈: 维护当前方法的状态,将其压入栈,保持方法调用相关信息
程序计数器:此区域也是每个线程所独有的,此区域主要是存放当前执行指令的地址
为了更方便地理解jvm的内存结构,这里参照以下几张图即可一目了然了,建议收藏哦
jvm划分
欢迎大家来到IT世界,在知识的湖畔探索吧!
jdk8内存模型
jdk7和8的内存结构模型
jvm内存
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/97298.html