异常整体结构
error一般是JVM出现问题,程序无法处理
exception相当于出现异常
运行时异常直接杀死程序需要手动处理
别的异常,需要try catch捕获后处理。
特别说一下
java程序启动一个新线程时,没有足够的空间为该线程分配java栈,一个线程java栈的大小由-Xss设置决定;JVM则抛出OutOfMemoryError异常。
1、stackoverflow:
每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。
如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的栈中的所有栈帧的大小的总和大于-Xss设置的值,而产生生StackOverflowError溢出异常。
2、outofmemory:
2.1、栈内存溢出
java程序启动一个新线程时,没有足够的空间为新的线程分配java栈,一个线程java栈的大小由-Xss设置决定;JVM则抛出OutOfMemoryError异常。
————————————————
版权声明:本文为CSDN博主「qq_40707269」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40707269/article/details/115385111
stackoverflow相当于给线程分配了零花钱之后,零花钱不够用
oom相当于人太多了,零花钱都不够分配了
一个是在分配的结果里,再次分配不够
一个是分配预算都不够了。