java boolean 与运算_Java中一个boolean占用内存计算

先上代码

public class Boolean占用的字节数 {

public static void main(String[] args) {

print();

boolean[] i = new boolean[10000];

print();

}

private static void print() {

long max = Runtime.getRuntime().maxMemory();

long total = Runtime.getRuntime().totalMemory();

long free = Runtime.getRuntime().freeMemory();

System.out.println(max + " " + total + " " + free + "使用:" + (total - free));

System.out.println("----------------------------------------------");

}

}

运行结果:

1572864 1572864 793744使用:779120

----------------------------------------------

1572864 1572864 783728使用:789136

----------------------------------------------

解析:

Runtime.getRuntime().maxMemory()

Java虚拟机将尝试使用的最大内存量。 如果没有固有的限制,则返回值Long.MAX_VALUE 。 JVM最大可从系统获取到的内存。

Runtime.getRuntime().totalMemory()

Java虚拟机中的内存总量。 此方法返回的值可能随时间而变化,具体取决于主机环境。 当前JVM从系统获取到的内存。

Runtime.getRuntime().freeMemory()

Java虚拟机中的可用内存量。 调用gc方法可能会导致增加返回的值freeMemory。JVM当前从系统获取到的内存中,空闲的那一部分内存。

已使用内存=totalMemory-freeMemory

结论:

boolean[10000]占用的内存约等于(789136-779120)=10016,所以1个boolean占用内存为1字节。若将boolean换成int,则可计算出int占用4个字节。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值