jvm的堆栈

在不指定栈的大小时,默认最大值由操作系统指定,可以通过递归代码得出结果
    public static int count = 0;
    
    public static void f()
    {
        System.out.println(++count);
        f();
    }

最后一次打印的值即为最大值
使用-Xss设置大小,要求为2的次方,栈的最大大小不能超过默认值一般 。
java的虚拟机栈和本地方法栈使用同一个栈空间。设置的局部变量过多也会影响栈的大小
java中的栈一班不会产生溢出,所以实际使用的时候可以相对将栈的大小减小

堆内存


内容可共享,创建的变量会存放在堆中,在栈中保存对象地址(堆中地址)
堆的内存非常大,很难溢出(也会溢出),抛出OutOfMemoryError异常
堆内存分为used,total(默认为内存的1/64),max(默认为内存1/4),total为已分配的可用内存,used是以用的,max为最大值,total最大可扩容至max,可以通过-Xmx设置最大值必须大于2M,-Xms设置total值必须大于1M,
注:堆内存的溢出并不会在used=max=total发生,而是会提前发生。与内存回收机制有关

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值