
这是一个程序. java中没有现成的sizeof实现. 主要原因是java中基本数据类型的大小是固定的,因此似乎不需要使用关键字sizeof.
实现的想法是这样的: java.lang.Runtime类具有一些简单的功能,可能涉及内存管理:

每个Java应用程序都有一个classRuntime实例,该实例允许该应用程序与应用程序运行所在的环境进行交互. 当前的运行时可以从getRuntime方法中获取.
这个例子写得很好,仅说明了Java中基本类型封装对象所占用的内存大小.

1. 一个简单的Object对象占用8个字节的内存空间,因为每个实例必须至少包含一些基本操作,例如wait()/ notify(),equals(),hashCode()等.
2. 使用Integer对象占用16个字节,而int占用4个字节,封装后的内存消耗是4倍大

3. 那么Long似乎比Integer对象使用更多的空间,而Long占用的空间也是16个字节.
这仅表明JVM的基本类型封装对象的内存分配规则如下:
对象占用的内存(8个字节)+最大基本类型(长整数)(8个字节)所占用的内存= 16个字节.
JVM强制使用8个字节作为边界.
因此,所有基本类型的包装对象占用的内存大小为16个字节. 但是仍然存在差异. 例如,尽管Integer对象占用16个字节的内存,但它们仅使用对象(8个字节)+ int的内存(4个字节)= 12个字节占用的内存. 有4个字节根本不使用. 哈哈,经过一夜的仔细分析,仍然有很多收获.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-305006-1.html
拿回点面子