博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA虚拟机栈的常见异常与如何设置栈的大小
阅读量:3959 次
发布时间:2019-05-24

本文共 900 字,大约阅读时间需要 3 分钟。

1.虚拟机常见异常
  • Java虚拟机规范允许Java栈的大小是动态的或者是固定不变的。
    • 如果采用固定大小的Java虚拟机栈,那每一个线程的Java虚拟机栈容量可以在线程创建的时候独立选定。如果线程请求分配的栈容量超过java虚拟机栈允许的最大容量,java虚拟机将会抛出一个StackOverflowError异常;
    • 如果Java虚拟机栈可以动态扩展,并且尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的虚拟机栈,那Java虚拟机将会抛出一个OutOfMemoryError异常;
2.测试栈的大小
/** * 创建人: 渣高帆 
* 创建时间: 2020/6/30 11:32
* JDK 1.8 */public class Stack_Test01 {
public static int i=1; public static void main(String[] args) {
//我的电脑默认测试JVM栈的大小为9750左右 //添加JVM命令行参数:-Xss1024k 之后为9777左右 //添加JVM命令行参数:-Xss1m 之后为9789左右 System.out.println(i++); main(args); }}
3.设置栈内存大小

我们可以使用虚拟机参数-Xss 选项来设置线程的最大栈空间,栈的大小直接决定了函数调用的最大可达深度;

-Xss size

设置线程堆栈大小(以字节为单位)。附加字母kK表示KB,mM表示MB,和gG表示GB。默认值取决于平台:

  • Linux / x64(64位):1024 KB
  • macOS(64位):1024 KB
  • Oracle Solaris / x64(64位):1024 KB
  • Windows:默认值取决于虚拟内存

下面的示例以不同的单位将线程堆栈大小设置为1024 KB:

复制-Xss1m (1mb)-Xss1024k  (1024kb)-Xss1048576

设置方式如下图所示:

在这里插入图片描述

转载地址:http://bqqzi.baihongyu.com/

你可能感兴趣的文章
什么是Dojo?与Jquery宏观对比,结果如何?
查看>>
Asp.Net+Jquery.Ajax详解8-核心$.ajax
查看>>
我的工作日志2
查看>>
我的工作日志5
查看>>
aspx上传、预览图片
查看>>
我的工作日志6
查看>>
我的软件工程之路(五)—四个月总结
查看>>
从入职到离职的收获——ICT四个月
查看>>
项目中用到的一个导入Excel的方法
查看>>
项目中一个用于导出word的方法
查看>>
项目中用到小技术点
查看>>
管理数据库连接不得不注意的地方
查看>>
KS系统总结
查看>>
测试Jsp 静态包含和动态包含
查看>>
简析几种常用的Web监听
查看>>
Web应用过滤器Fileter
查看>>
代理模式(Proxy)
查看>>
采用动态代理对事务进行封装
查看>>
采用ThreadLocal维护Connection
查看>>
测试JSTL表达式
查看>>