java虚拟机可以创建多少对象

  1. 堆空间大小:JVM 的堆空间是用于存储对象的主要内存区域。堆的大小通过 -Xmx 和其他相关参数来配置。如果堆空间足够大,JVM 可以创建更多的对象。(java堆是java运行时内存最重要的部分,几乎所有的对象和数组都是在堆内存中分配空间。java堆分为新生代和老年代。新生代主要存储刚刚产生的对象,如果对象的生命足够长,就把老年对象移入老年代。
    新生大分为三级:eden(刚出生)、survivor space0(幸存者0)、survivor space1(幸存者1)。)

  2. 可用内存:除了堆空间之外,JVM 还需要使用一些额外的内存来管理对象和运行时数据。可用内存的大小受操作系统和系统配置的限制。如果系统的可用内存较小,JVM 可以创建的对象数量可能受限。

  3. 垃圾回收机制:Java 中的垃圾回收机制负责释放不再使用的对象占用的内存。垃圾回收机制的性能和效率会影响 JVM 可以创建的对象数量。如果垃圾回收机制效率低下或频繁触发,可能会导致对象创建速度减慢。

  4. 对象大小:每个对象占用的内存空间取决于其字段和对齐方式。较大的对象会占用更多的内存空间。因此,可以创建的对象数量也受到单个对象大小的限制。()

 

堆分配参数总结:

-Xms:设置java应用程序启动时的初始堆大小
-Xmx:设置java应用程序能获得的最大堆大小
-Xss:设置线程栈的大小
-XX:MinHeapFreeRatio:设置堆空间的最小空间比例。当堆空间的空闲内存小于这个数值时,jvm便会扩展堆空间。
-XX:MaxHeapFreeRatio:设置堆空间的最大空间比例。当堆空间的空闲内存大于这个数值时,jvm便会缩小堆空间。
XX:NewSize : 设置新生代的大小
XX:NewRatio:设置老年代与新生代的比例,即老年代除以新生代大小
XX:SurviorRatio:新生代中eden区与survivior 区的比例
-XX:PermSize:设置永久区的大小
-XX:TargetSurvivorRatio:设置survivior 的使用率。当达到这个空间使用率时,会将对象送入老年代。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值