|
|
1
1
这是一个复杂的问题,有很多变量需要考虑,所以我会做一些假设 对于标准的Hotspot JVM(版本<=22,这也将适用于未来的版本,但不会永远适用 32位系统
64位系统
因此,对于以下64位系统中带有压缩指针的Java类
对象大小为
Kotlin示例第一个代码块A类在类A中,属性x和z由字段支持,每个字段将占用4个字节。属性y没有字段支持,因为它附加了一个getter,并且在对象实例中不占用空间
总尺寸为
B类在类B中,所有属性都由字段支持,每个属性将占用4个字节。
总尺寸为
C类
在C类中,因为
总尺寸为
第二个代码块Java和Kotlin中的方法在对象的每个实例堆分配中不占用额外的空间 A类类A没有字段支持的属性(因为它们有getter),并且每个实例只需要16个字节 B类类B有两个int字段支持的属性,每个实例需要24个字节 C类类C有一个int字段支持的属性,每个实例需要16个字节 |
|
|
NOBUD · 最大堆插入函数实现C++ 4 年前 |
|
|
JimBelushi2 · 合并排序创建内存堆 8 年前 |
|
|
Arda İbrahim Gökçe · 在遍历最小堆时获取垃圾值 8 年前 |
|
|
Alexy Grabov · 查找最大堆中k个最大元素的位置 8 年前 |
|
|
Maxxx · 使用堆在O(N log K)时间内查找前K个元素 8 年前 |
|
|
Karthik · 限制Go堆接口实现的优先级队列的大小 8 年前 |
|
|
mourinho · 使用数组实现最小堆[关闭] 8 年前 |