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

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

发布于 2021-03-12 字数 694 浏览 962 评论 0

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

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

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

第一个区别就是

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

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

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

2583 文章
29 评论
84935 人气
更多

推荐作者

清风夜微凉

文章 1 评论 0

为你鎻心

文章 2 评论 0

xxhui

文章 0 评论 0

1PKOH46yx8j0x

文章 0 评论 0

Arthur

文章 0 评论 0