您当前的位置:首页 > 计算机 > 编程开发 > Java

在 Java 中如何计算一个对象到底使用了多少内存

时间:12-14来源:作者:点击数:
城东书院 www.cdsy.xyz

鉴于我是 C/C++ 出身,有件事一直让我很不爽,就是 Java 缺乏一种方法去如何计算一个对象到底使用了多少内存。C++ 的 sizeof 方法可以清楚到查到原生类型或者类对象的内存大小。这个操作在C和 C++ 的指针运算拷贝内存及 IO 非常实用。

Java 中没有相应的操作,事实上 Java 不需要,原生类型的大小定义在Java语言规范中,而 C 和 C++ 依赖与操作系统。Java 有自己的基础围绕序列化,指针运算和内存拷贝不会使用,因为 Java 中没有指针。

但是每个Java程序员在某个时候想知道一个Java对象占用了多少内存,这个答案,结果证明没那么简单。

第一个区别就是

类的内存结构 没有实例属性

在Sun JVM中,每个对象(除了数组)有2个字的头,第一个字包含对象唯一哈希码加一些标志象锁状态和年龄,第二个字包含类对象的引用,同时,任何对象。

城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐