千家信息网

JVM如何运行时数据区

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,JVM如何运行时数据区,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 运行时数据区1)堆:线程共享,存放新建的对象。
千家信息网最后更新 2024年11月20日JVM如何运行时数据区

JVM如何运行时数据区,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1. 运行时数据区


1)堆:线程共享,存放新建的对象。
2)方法区:线程共享,存放类信息、常量、静态变量等。
3)虚拟机栈:线程独立,又叫线程栈。用来存放线程内部的局部变量,先进后出FILO。栈由栈帧组成,栈帧又分为:局部变量表,操作数栈,动态链接,方法出口。线程方法里产生的较小的局部对象也可能存放在虚拟机栈中。局部变量表:存放局部变量。
栈帧:java为每一个方法,在栈内存里分配一块栈帧,用来隔离每个方法里的局部变量。
操作数栈:线程运行时,用于处理数据的临时内存空间。
动态链接:
方法出口:记录方法执行完成时返回当上级方法的执行位置。
4)本地方法栈:java调用本地方法(native 修饰的方法)时,分配的内存空间。
5)程序计数器:当前线程所执行的字节码行号指示器,记录代码执行到哪一行

2. 参数设置

-Xms 最小值。

-Xmx 最大值。

方法区

-XX:MetaSpaceSize 默认 21M,当内存快满的时候会进行gc,根据gc后剩余的空间大小判 断是否需要扩容。生产中一般设置成256M。

-XX:MaxMetaSpaceSize 默认 -1,不限制最大值。

-Xss 默认1M

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0