欢迎访问 生活随笔!

凯发ag旗舰厅登录网址下载

当前位置: 凯发ag旗舰厅登录网址下载 > 编程资源 > 编程问答 >内容正文

编程问答

java 内存模型堆和本地方法 -凯发ag旗舰厅登录网址下载

发布时间:2025/1/21 编程问答 18 豆豆
凯发ag旗舰厅登录网址下载 收集整理的这篇文章主要介绍了 java 内存模型堆和本地方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

    • 一、java内存模型堆
      • 1、堆特点
      • 2、堆异常
      • 3、堆的性能调优参数
    • 二、本地方方法

一、java内存模型堆

1、堆特点

堆是用于存放对象的内存区域。因此,它是垃圾收集器(gc)管理的主要目标。

  • 堆在逻辑上划分为“新生代”和“老年代”,在细致一点可分为eden空间、from survivor空间、to survivor。由于java中的对象大部分是朝生夕灭,还有一小部分能够长期的驻留在内存中,为了对这两种对象进行最有效的回收,将堆划分为新生代和老年代,并且执行不同的回收策略。不同的垃圾收集器对这2个逻辑区域的回收机制不尽相同。这块以后会细讲。
  • 内存的分配角度看,线程共享的java堆可能划分出多个线程私有的分配缓冲区。
  • 堆一般实现成可扩展内存大小,使用“-xms”与“-xmx”控制堆的最小与最大内存,扩展动作交由虚拟机执行。但由于该行为比较消耗性能,因此一般将堆的最大最小内存设为相等。
  • 堆占用的内存并不要求物理连续,只需要逻辑连续即可。
  • 堆的生命周期是随着虚拟机的启动而创建。
  • 堆是所有线程共享的内存区域,因此每个线程都可以拿到堆上的同一个对象。

2、堆异常

当堆无法分配对象内存且无法再扩展时,会抛出outofmemoryerror异常。

package com.sl.common;import java.util.arraylist; import java.util.list;/*** @author shuliangzhao* @title: test* @projectname spring-boot-learn* @description: todo* @date 2019/9/24 19:41*/ public class test {public static void main(string[] args) {list
网站地图