很多新手对于如何运行JVM的数据区不是很清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。需要的人可以学习,希望你能有所收获。
1. 运行时数据区
1)堆:线程共享,存储新创建的对象。2)方法区:线程共享,存储类信息,常量,静态变量等。3)虚拟机栈:线程独立性也称为线程堆栈。用于在线程内部存储局部变量,先入后出FILO。它由栈帧组成,栈帧分为局部变量表、操作数栈、动态链接和方法出口。线程中生成的较小的本地对象也可以存储在虚拟机堆栈中。局部变量表:存储局部变量。
堆栈框架:java在堆栈内存中为每个方法分配一个堆栈框架,以隔离每个方法中的局部变量。
操作数堆栈:线程运行时用于处理数据的临时内存空间。
动态链接:
方法退出:记录上级方法执行时的执行位置。4)本地方法栈:当Java调用一个本地方法(一个由本机修饰的方法)时分配的内存空间。5)程序计数器:当前线程执行的字节码行号指示符记录了代码执行到哪一行。
2. 参数设置
堆:
-Xms最小值。
-Xmx max。
方法区:
-Xx :默认情况下,MetaSpaceSize为21M。内存快满的时候会进行gc,根据gc后的剩余空间判断是否需要扩展。在生产中,一般设置为256米。
-XX:MaxMetaSpaceSize默认为-1,最大值不受限制。
栈:
-Xss默认1M。
阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/44223.html