今日博客学习内容

1.今日博客学习内容

JVM最多能够创建多少个java对象

JVM 能够创建的 Java 对象的数量并不是固定的,取决于可用内存的大小和 JVM 的实现。一般来说,JVM 能够支持的最大 Java 对象数量限制是 Integer.MAX_VALUE(2^31-1),这是由于 Java 虚拟机规范规定了 Java 数组的最大长度限制为 Integer.MAX_VALUE,而一个数组元素可以是任何 Java 对象。

然而,在实际场景中,JVM 能够创建的 Java 对象数量要远远小于这个限制,主要是因为 JVM 需要在堆内存中为每个对象分配内存空间,而堆内存空间是有限的,同时还要考虑到对象存储和回收的成本等因素。因此,应该根据实际场景来估算 JVM 能够创建的 Java 对象数量,从而避免出现内存不足或者垃圾回收效率低下等问题。

另外,值得注意的是,JVM 通过内存分代策略来管理对象内存,即将内存分为新生代和老年代两个部分,分别对不同年龄段的对象采用不同的垃圾回收机制。新生代通常会分为 Eden 区和两个 Survivor 区,对象的创建和大部分垃圾回收都发生在新生代。老年代则用于存储经过多次垃圾回收后依然存活的对象。因此,JVM 创建的 Java 对象数量不仅取决于内存空间大小,还受到分代策略的影响。

扩展堆的大小

设置堆的最小空间大小。 建议和-Xmx设置一样

-Xms4096M

设置堆的最大空间大小。

-Xmx4096M

堆内新生代的大小。剩下的就是老年代的了: -Xmx减去-Xmn

-Xmn1024M

扩展栈的大小

设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误。 JVM默认是1024KB

-Xss256k

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值