maxMemory-totalMemory-freeMemory

Runtime r = Runtime.getRuntime();

long maxMemory = r.maxMemory();

long totalMemory = r.totalMemory();

long freeMemory = r.freeMemory();

// Xmx 最大值,,Xms 最小值,

maxMemory 是java虚拟机从操作系统分配的最大内存值,单位是字节,

如果没有设置-Xmx,则最大值(默认)是64 * 1024*1024, 也就是64M,如果设置了Xmx=160M,则返回的是160*1024*1024;

 

totalMemory指的是java虚拟机当前使用了多少内存,单位是字节,

如果没有设置Xms,则使用多少返回多少,

如果设置了Xms=100M,返回值大于等于100M,因为系统启动的时候就给虚拟机分配了100M,系统在运行的时候可能加载的内容笔记多,100M不够用了,又申请了32M,这时候返回值就是32*1024*1024,

最大不会超过设置的-Xmx的值。

 

 freeMemory指的是java虚拟机分配到的内存中未使用的部分,单位是字节

比如说虚拟机分配的内存不够用了,还需要1M的空间,那么去操作系统申请内存的时候肯定不会申请1M的,而是申请2M或者4M.........,

假如找os申请了4M,但是自己只用了1M,这时候调用freeMemory的值是3*1024*1024,

刚开始的时候这个值是比较大的,比如说你设置了最小值是100M,系统刚开始启动的时候可能就用了60M,这个时候freeMemory的值是40M,随着应用程序的使用,剩余内存会逐渐减少的,可能只剩下30M..20M

过一会100M不够用了,又申请了8M,但是只用了3M,这时候freeMemory的值就是5M。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值