
杂记---JVM
文章平均质量分 81
一点一滴一世界
喜欢编程,所以编程
展开
-
JVM运行时数据区详解
运行时数据区概念Java虚拟机在运行Java程序时,需要一定内存存储运行时所需的全部数据(类文件信息、对象、引用、常量等等),JVM采用栈、堆、方法区等等将这些数据所占内存分区域管理,有的区域随着虚拟机进程的启动而创建,有的则随着用户线程(不需要内核支持而在用户程序中实现的线程)的启动和结束而建立和销毁,Java虚拟机规范(JDK7)规定的运行时数据区如下图所示。各区域的区别与作用...原创 2018-08-07 11:15:20 · 293 阅读 · 1 评论 -
JAVA---为什么递归太深会导致栈溢出
一、思考对于这个问题,我是这样想的:我们知道栈大小是可以通过参数(-Xss)设置的,栈是线程私有的,线程内部的每个方法调用会创建一个栈帧,所以如果“栈帧的数量*每个栈帧的大小>栈大小”时便会发生“栈溢出”。这样的设想基于:-Xss设置的参数是针对每一个栈的,而非JVM所有线程栈内存总大小。 每个方法的调用将创建一个栈帧。 SUM(每个栈帧大小)>栈大小发生栈溢出。...原创 2019-10-09 18:02:45 · 5233 阅读 · 0 评论