简述网站建设的概念,四川省工程信息网,江苏恒博网络推广有限公司,宁波做网站的专业公司文章目录 栈会溢出吗#xff1f;什么时候溢出#xff1f;方法区会溢出吗#xff1f;方法区会发生溢出。常见的场景还有#xff1a; 今天跟大家来谈谈栈方面会不会溢出这么一个问题#xff0c;以及方法区会不会溢出 栈会溢出吗#xff1f;什么时候溢出#xff1f;方法区会… 文章目录 栈会溢出吗什么时候溢出方法区会溢出吗方法区会发生溢出。常见的场景还有 今天跟大家来谈谈栈方面会不会溢出这么一个问题以及方法区会不会溢出 栈会溢出吗什么时候溢出方法区会溢出吗 栈是线程私有的它的生命周期与线程相同每个方法在执行的时候都会创建一个栈帧用来存储局部变量表操作数栈动态链接方法出口等信息。 局部变量表又包含基本数据类型 对象引用类型。如果线程请求的栈深度大于虚拟机所允许的最大深度将抛出StackOverflowError 异常方法递归调用产生这种结果。 如果 Java 虚拟机栈可以动态扩展 并且扩展的动作已经尝试过但是无法申请到足够的内存去完成扩展或者在新建立线程的时候没有足够的内存去创建对应的虚拟机栈那么 Java 虚拟机将抛出一个 OutOfMemory 异常。(线程启动过多)。
方法区会发生溢出。 HotSpot jdk1.7 之前字符串常量池是方法区的一部分方法区叫做“永久代”在 1.7 之前无限的创建对象就会造成内存溢出提示信息PermGen space 而是用 jdk1.7 之后开始逐步去永久代就不会产生内存溢出。 方法区用于存放 Class 的相关信息如类名、访问修饰符、常量池、字段描述、方法描述等 如果动态生成大量的 Class 文件也会产生内存溢出。
常见的场景还有 大量 JSP 或动态产生JSP 文件的应用JSP 第一次运行时需要编译为 java 类、基于 OSGi 的应用即使是同一个类文件被不同的类加载器加载也会视为不同的类。