• 1、stackoverflow:

    每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。
    如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的栈中的所有栈帧的大小的总和大于-Xss设置的值,而产生生StackOverflowError溢出异常。

  • 2、outofmemory:

  • 2.1、栈内存溢出

    java程序启动一个新线程时,没有足够的空间为改线程分配java栈,一个线程java栈的大小由-Xss设置决定;JVM则抛出OutOfMemoryError异常。

  • 2.2、堆内存溢出

    java堆用于存放对象的实例,当需要为对象的实例分配内存时,而堆的占用已经达到了设置的最大值(通过-Xmx)设置最大值,则抛出OutOfMemoryError异常。

  • 2.3、方法区内存溢出

    方法区用于存放java类的相关信息,如类名、访问修饰符、常量池、字段描述、方法描述等。在类加载器加载class文件到内存中的时候,JVM会提取其中的类信息,并将这些类信息放到方法区中。
    当需要存储这些类信息,而方法区的内存占用又已经达到最大值(通过-XX:MaxPermSize);将会抛出OutOfMemoryError异常对于这种情况的测试,基本的思路是运行时产生大量的类去填满方法区,直到溢出。这里需要借助CGLib直接操作字节码运行时,生成了大量的动态类。

java stackoverflowerror与outofmemoryerror区别相关推荐

  1. StackOverflowError与OutOfMemoryError区别

    在Java虚拟机规范中,定义了这么两种异常:StackOverflowError与OutOfMemoryError. 那么它们到底直接有啥区别呢? 在<The Java ® Virtual Ma ...

  2. Java中的OutOfMemoryError的各种情况及解决方法

    转载自博客园:https://www.cnblogs.com/duanxz/p/4901437.html Java中的OutOfMemoryError的各种情况及解决和JVM内存结构 在JVM中内存一 ...

  3. 【JVM】StackOverflowError与OutOfMemoryError

    · StackOverflowError与OutOfMemoryError是JVM中常见的有关内存的异常,需结合JVM来: · 在理解.区分这两个异常前,需要知道JVM中运行时数据区的结构:[见图1的 ...

  4. java 与 |与||的区别

    java &与&& |与||的区别 一.与操作和或操作的区别 (1)在Java程序中,使用与操作,要求所有表达式的判断结果都是TRUE,才为真,若有一个为FALSE,那么最终判 ...

  5. java和C++的区别

     JAVA和C++的区别介绍框架纲领如下: (一) 序言: (二) 我学习二者的个人感受: (三) 个人建议: (四) 用JAVA中继承的特性来描述C++和JAVA的关系图示: (五) JAVA和 ...

  6. float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK

    1.float 与 double 1.1 字面量属于 double 类型,不能直接将 1.1 直接赋值给 float 变量,因为这是向下转型. // float f = 1.1; Java 不能隐式执 ...

  7. Java和OC的区别

    Java和OC的区别 转载于:https://www.cnblogs.com/imChay/p/5591357.html

  8. kotlin和java差别_Kotlin和Java的常用方法的区别总结

    一.kotlin和java的常用语法区别 1).类.public class.public final class java 1 2public final class User{ } 1 2publ ...

  9. Java中的OutOfMemoryError

    转载自  Java中的OutOfMemoryError 引子:今天在<Sharding-JDBC官方群>里有个哥们称"不连sjdbc不会把内存吃光,连sjdbc跑一会就把内存吃光 ...

最新文章

  1. 获取远程数据本地缓存到PHP数组
  2. flutter打包的app有多大_前端大势所趋---Flutter 这篇文章会让你行动起来
  3. ECCV2018——点云处理相关文章
  4. Confluence 6 管理协同编辑 - 最大编辑者的限制
  5. java 常用类 练习_Java常用类之String类练习
  6. Spring MVC-页面重定向示例(转载实践)
  7. GID绘图和CDC类
  8. 如何实现消息功能_微信多个群转发消息如何实现?多群转发小助手转播云端转播功能怎样操作?...
  9. python-编程之美
  10. 三菱伺服驱动器示例_三菱MRJB伺服放大器应用实例
  11. Qt配置opencv
  12. 谷歌AI平均每天发表2篇论文!Jeff Dean执笔年度汇总:16大方向
  13. opencv 编译时出现的一个神奇bug,关于python,99%,链接
  14. 切西瓜法实现微信抢红包功能
  15. 无限火力跳跳机器人_英雄联盟无限火力小拳拳升降机蒸汽机器人
  16. 全志A10/A20 nand flash系统开发
  17. 新手劝退!为什么学3D建模建议先3dsmax,而不是Maya
  18. 信息摘要算法之一:MD5算法解析及实现
  19. java入门知识_Java基础知识杂文
  20. 七月在线 《图像识别与检测》

热门文章

  1. 工具使用——使用华为手机作为电脑的拓展屏
  2. 天天生鲜项目实战(一)
  3. 多疗程40Hz tACS对阿尔茨海默病患者海马灌注的影响
  4. 为自动驾驶carla配置车流量
  5. 算法时间计算:logA(N)与O(n)
  6. 机加工行业如何打造MES系统,本文让你一目了然
  7. “她经济”作祟医美,美呗如何变美?
  8. 基于磁阻传感器的断路保护装置设计
  9. Java媒体框架(JMF)
  10. 【转】利用JMF进行多媒体编程