• 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. Android开发之GridView的使用(解读谷歌官方API)
  2. redis aof文件的格式 以及如何批量写入大量redis数据
  3. php图片截取后缀,PHP抓取远程图片(含不带后缀的)教程详解
  4. Ubuntu如何卸载安装的软件以FileZilla为例
  5. BlazeDS入门教程-很详细-赞原创作者一个
  6. Gojs学习史(一):基本定义
  7. 【转载】JS中bind方法与函数柯里化
  8. [转载] python中svm的使用_Python中支持向量机SVM的使用方法详解
  9. Silverlight+WCF 新手实例 象棋 介绍II(九)
  10. 2. Android Basic 搭建Android开发环境
  11. MySQL安装之后如何启动
  12. 澳门中区停电2小时影响396户 1人困电梯后获救
  13. Php 生成随机字符串函数集成
  14. jenkins AWS CodeDeploy不停机部署
  15. 离职 需要注意三个问题
  16. pip安装.whl文件
  17. Privacy Amplification by Decentralization
  18. Git detached HEAD解决方案_张童瑶的博客
  19. Web前端面试指导(一):写好简历是面试成功的第一步
  20. 8K视频大?带你来算算

热门文章

  1. 人工智能教程第二课 目标检测OverView和RCNN
  2. 企业建站:勿让蜘蛛陷入的六个“坑”
  3. CentOS7环境ZooKeeper集群的安装
  4. 亚像元定位 硬分类 软分类
  5. 6把椅子换位思考法则
  6. 2018宁夏高考计算机类,2018宁夏高考艺术类分数线公布
  7. Vue学习 第一阶段
  8. NLP_Python3——正则表达式
  9. 带桌面推送Ai智能客服系统在线客服源码
  10. 给我说说你对Java GC机制的理解?