StackOverflowError:每当java程序代码启动一个新线程时,Java虚拟机都会为它分配一个Java栈。Java栈以帧为单位保存线程的运行状态。...如果线程请求分配的栈容量超过Java虚拟机栈允许的最大容量, Java虚拟机将会抛出一个stackoverflowError异常。...,最大值为-1,及没有限制
于永久代不同,如果不指定大小,默认情况下,虚拟机会耗尽所有的可用系统内存,如果元数据区发生移除,虚拟机一样也会抛出异常OutOfMemoryError:Metaspace
-...XX:MetaspaceSize:设置初始的元空间大小,对于一个64位的服务器端JVM来说,其默认的内存大小为21MB,这就是初始的高水位线,一旦触及这个水位线,Full GC将会触发并卸载没有用的类(...,直接内存分配不会受到java堆大小的印象,但是既然是内存,则肯定会受到本机内存大小的限制,如果内存区域大于物理内存限制,则会抛出OOM异常
直接内存大小可以通过MaxDirectMemorySize设置