JVM考点整理2

Posted athony

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM考点整理2相关的知识,希望对你有一定的参考价值。

二、jvm内存泄漏

1.堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证GC Roots到对象之间有可达路径来避免垃圾收集回收机制清除这些对象,当这些对象所占空间超过最大堆容量时,就会产生OutOfMemoryError的异常。

新产生的对象最初分配在新生代,新生代满后会进行一次Minor GC,如果Minor GC后空间不足会把该对象和新生代满足条件的对象放入老年代,老年代空间不足时会进行Full GC,之后如果空间还不足以存放新对象则抛出OutOfMemoryError异常。常见原因:内存中加载的数据过多如一次从数据库中取出过多数据;集合对对象引用过多且使用完后没有清空;代码中存在死循环或循环产生过多重复对象;堆内存分配不合理;网络连接问题、数据库问题等。

  • 名词解释
    GC:垃圾收集器
    Minor GC:新生代GC,指发生在新生代的垃圾收集动作,所有的Minor GC都会触发全世界的暂停(stop-the-world),停止应用程序的线程,不过这个过程非常短暂。
    Major GC/Full GC:老年代GC,指发生在老年代的GC。
    JVM:Java Virtual Machine(Java虚拟机)的缩写。

2、虚拟机栈/本地方法栈溢出
1)StackOverflowError:当线程请求的栈的深度大于虚拟机所允许的最大深度,则抛出StackOverflowError,简单理解就是虚拟机栈中的栈帧数量过多(一个线程嵌套调用的方法数量过多)时,就会抛出StackOverflowError异常。最常见的场景就是方法无限递归调用。

3、方法区溢出
前面说到,方法区主要用于存储虚拟机加载的类信息、常量、静态变量,以及编译器编译后的代码等数据,所以方法区溢出的原因就是没有足够的内存来存放这些数据。







以上是关于JVM考点整理2的主要内容,如果未能解决你的问题,请参考以下文章

前端面试题整理——React考点和回答

软考(软件设计师)考点总结 -- 超详细整理

考点整理代码块系列

02129 信息资源建设《信息资源管理(第2版) 电子工业出版社 肖明著》考点整理

接口与总线 考点整理

数字媒体技术考点整理