首页 > 其他分享 >面试真题:OOM(OutOfMemoryError)SOF(StackOverflow)你遇到过哪些情况

面试真题:OOM(OutOfMemoryError)SOF(StackOverflow)你遇到过哪些情况

时间:2024-10-25 21:43:14浏览次数:1  
标签:真题 OOM 虚拟机 SOF 对象 内存 OutOfMemoryError 溢出

前言

本来想着给自己放松一下,刷刷博客,慕然回首,OOM?SOF?似乎有点模糊了,那就大概看一下Java面试题吧。好记性不如烂键盘

*** 12万字的java面试题整理 ***

OOM你遇到过哪些情况,SOF你遇到过哪些情况

OOM:

1,OutOfMemoryError异常
除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(OOM)异常的可能。
Java Heap 溢出:
一般的异常信息:java.lang.OutOfMemoryError:Java heap spacess。
java堆用于存储对象实例,我们只要不断的创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,就会在对象数量达到最大堆容量限制后产生内存溢出异常。
出现这种异常,一般手段是先通过内存映像分析工具(如Eclipse Memory Analyzer)对dump出来的
堆转存快照进行分析,重点是确认内存中的对象是否是必要的,先分清是因为内存泄漏(MemoryLeak)还是内存溢出(Memory Overflow)。
如果是内存泄漏,可进一步通过工具查看泄漏对象到GCRoots的引用链。于是就能找到泄漏对象是通过怎样的路径与GC Roots相关联并导致垃圾收集器无法自动回收。
如果不存在泄漏,那就应该检查虚拟机的参数(-Xmx与-Xms)的设置是否适当。
2. 虚拟机栈和本地方法栈溢出
如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。
如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常
这里需要注意当栈的大小越大可分配的线程数就越少。
3. 运行时常量池溢出异常信息:
java.lang.OutOfMemoryError:PermGenspace
如果要向运行时常量池中添加内容,最简单的做法就是使用String.intern()这个Native方法。该方法的作用是:如果池中已经包含一个等于此String的字符串,则返回代表池中这个字符串的String对象;否则,将此String对象包含的字符串添加到常量池中,并且返回此String对象的引用。由于常量池分配在方法区内,我们可以通过-XX:PermSize和-XX:MaxPermSize限制方法区的大小,从而间接限制其中常量池的容量。
4. 方法区溢出
方法区用于存放Class的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。也有可能是方法区中保存的class对象没有被及时回收掉或者class信息占用的内存超过了我们配置。
异常信息:java.lang.OutOfMemoryError:PermGenspace
方法区溢出也是一种常见的内存溢出异常,一个类如果要被垃圾收集器回收,判定条件是很苛刻的。在经常动态生成大量Class的应用中,要特别注意这点。

SOF(堆栈溢出StackOverflow):

StackOverflowError 的定义:当应用程序递归太深而发生堆栈溢出时,抛出该错误。
因为栈一般默认为1-2m,一旦出现死循环或者是大量的递归调用,在不断的压栈过程中,造成栈容
量超过1m而导致溢出。
栈溢出的原因:递归调用,大量循环或死循环,全局变量是否过多,数组、List、map数据过大。

标签:真题,OOM,虚拟机,SOF,对象,内存,OutOfMemoryError,溢出
From: https://www.cnblogs.com/xswz/p/18503321

相关文章

  • 【408真题】2014-46
    “接”是针对题目进行必要的分析,比较简略;“化”是对此题型的解题套路总结,并结合历年真题或者典型例题进行运用。涉及到的知识全部来源于王道各科教材(2025版)(408神功练成中……)文章目录一、接:本题分析二、化:套路总结一、接:本题分析2014-46分析【答】1)【标......
  • 其实在构建神经网络或训练神经网络的时候,还有另一个隐藏的前提假设,那就是当你选择sigm
    最大熵原理确实与选择激活函数(如sigmoid或softmax)有关。以下是一些相关的要点:最大熵原理:最大熵原理是一种统计推断的方法,旨在在已知信息的情况下,选择最不偏见的概率分布。换句话说,当我们对某个系统的知识有限时,选择熵最大的分布可以避免引入不必要的假设。激活函数与概率分......
  • 似然值最大的那个模型与目标最接近,这个前提假设和softmax选择以e为底这种做基本元素去
    似然值最大的模型与目标的接近性以及选择以e为底的指数函数构造Softmax函数之间有着密切的联系,主要体现在以下几个方面:1.似然函数与概率分布在统计建模中,最大似然估计(MLE)旨在寻找能够最优地解释观察数据的模型。通过最大化似然函数,我们实际上是在寻找一个概率分布,使得在给......
  • 【套题】大沥2019年真题——第5题
    05.魔术数组题目描述一个N行N列的二维数组,如果它满足如下的特性,则成为“魔术数组”:1、从二维数组任意选出N个整数。2、选出的N个整数都是在不同的行且在不同的列。3、在满足上述两个条件下,任意选出来的N个整数的总和都是相等的。例如,这是一个4×4的二维数组:......
  • 真题练习29-Word字处理-全国计算机等级考试一级计算机基础及MS Office应用考试【汪老
    第29组请根据题目要求,完成下列操作:在考生文件夹下打开文档word.docx,按照要求完成下列操作并以该文件名(word.docx)保存文档。1.将文中所有错词“北平”替换为“北京”;设置上、下页边距各为3厘米。2.将标题段文字(“2009年北京市中考招生计划低于10万人”)设置为蓝色(标准色)、三号......
  • 【408真题】2014-39
    “接”是针对题目进行必要的分析,比较简略;“化”是对此题型的解题套路总结,并结合历年真题或者典型例题进行运用。涉及到的知识全部来源于王道各科教材(2025版)(408神功练成中……)文章目录一、接:本题分析二、化:套路总结一、接:本题分析2014-39分析【答】B【解......
  • 华为OD机试真题-比赛-2024年OD统一考试(E卷)
    最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客     每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。题目描述一个有N个选手参加比......
  • Windows Image Acquisition (WIA) 是 Microsoft Windows 操作系统中的一项服务,用于支
    WindowsImageAcquisition(WIA)是MicrosoftWindows操作系统中的一项服务,用于支持与图像设备(如扫描仪、数码相机和其他图像捕捉设备)的交互。WIA提供了一种标准化的接口,使应用程序能够从这些设备获取图像,并进行处理或存储。以下是关于WIA服务的详细信息:主要功能图像设......
  • 【真题研究】CSP-S2020
    [CSP-S2020]儒略日大模拟。可以将时间分为\(4\)个部分:\(-4713.1.1\)至\(-1.12.31\)\(1.1.1\)至\(1582.10.4\)\(1582.10.5\)至\(1582.10.14\)\(1582.10.15\)至无穷大体可分为公元前(儒略历),公元后儒略历,公元后格里高利历。如果\(x\le1721424\),说明是公元前儒略......
  • 【真题研究】CSP-S2019
    [CSP-S2019]格雷码很简单的规律题。考虑决策每一位的\(0/1\),从高位往低位决策。将\(k\)可以看作当前的排名。第\(i\)位若\(2^{i-1}<k\),说明当前位为\(0\)。否则当前位为\(1\),并将排名更新为\(k=2^i-k-1\)然后继续决策即可。时间复杂度\(O(n)\),递归或循环实现都可......