JAVA中怎么实现内存管理
发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,JAVA中怎么实现内存管理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。内存划分set JAVA_OPTS=-serve
千家信息网最后更新 2024年10月22日JAVA中怎么实现内存管理
JAVA中怎么实现内存管理,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
内存划分
set JAVA_OPTS=-server -Xms1024m -Xmx1024m -XX:PermSize=512M -XX:MaxPermSize=512m -XX:MaxNewSize=512M虚拟机栈和本地方法栈溢出:StackOverflowError-Xoss:设置本地方法栈大小java堆溢出:OutOfMemoryError java heap space-Xmx:设置虚拟机堆参数的最大值-Xms:设置虚拟机堆参数的最小值运行时常量池溢出:OutOfMemoryError PermGen space-XX:PermSize ,-XX:MaxPermSize:限制方法区的大小
1.程序计数器
当前线程所执行的字节码的行号指示器这类内存区域为"线程私有"的内存此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域
2.Java虚拟机栈
这类内存区域为"线程私有"的内存它的生命周期与线程相同。虚拟机栈描述的是Java 方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame ①)用于存储局部变量表、操作栈、动态链接、方法出口等信息。每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
3.本地方法栈
本地方法栈(NativeMethodStacks)与虚拟机栈所发挥的作用是非常相似的,其区别不过是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的Native方法服务。与虚拟机栈一样,本地方法栈区域也会抛出StackOverflowError和OutOfMemoryError异常
4.堆
垃圾回收的主要区域是虚拟机所管理的内存中最大的一块,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存,但是随着JIT编译器的发展和逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化发生,所有的对象都分配在堆上就变得不是那么绝对了。
5.方法区
方法区用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。运行时常量池是方法区的一部分,用于存放编译器生成的各种字面量和符号引用。
标记清除算法
标记死亡和存活的类,然后清除掉。碎片化可能比较严重
复制算法
内存划分两部分,存活的移动到一边,然后另一边清除,吃内存
标记整理
存活的移动到一边,另一部分清理掉
分代回收算法
新生代用复制算法老年代用标记清除、标记整理算法
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
方法
内存
区域
标记
算法
线程
编译
对象
编译器
分配
管理
最大
参数
变量
大小
字节
实例
技术
过程
代用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
表单构建后存储到数据库
数据库查询返回list为空
关于网络安全法的100问
厦门加固服务器在哪里买
2018网络安全宣传周论坛
雷暴服务器
php输出数据库的表
网络安全难吗
无线电机网络技术
数据库删除某段时间
微信数据库恢复软件
网络安全法执行什么制度
服务器未开始
江苏常规软件开发创新服务
海星网络技术服务中心
远程常态数据库问题
咸宁租房网络安全
学校网络安全清查表
应用软件开发价格表
武江公安局网络安全知识
维普数据库收录论文范围
服务器机房温湿度标准
画山画水画网络技术有限公司
动态嵌套表头在数据库怎么存储
广州破立互联网科技有限公司
微爱服务器崩了
云服务器什么系统不占内存
中石化哪个部门招软件开发岗
网络安全内容检测技术
软件开发官司律师