hqt*_*hqt 13 java inner-classes
我有这门课:
public class Stack {
private class Node {
String item;
Node next;
}
// some other methods here
}
Run Code Online (Sandbox Code Playgroud)
在我的书中,作者说每个堆栈节点的大小是40个字节,包括:
16 bytes (object overhead)
8 bytes (inner class extra overhead)
8 bytes (references to string)
8 bytes (references to node)
----------------------------------------------
40 bytes per stack node
Run Code Online (Sandbox Code Playgroud)
据我所知,最后两件事指的是String和Node的引用大小.但我不知道object overhead和inner class extra overhead对应的是什么.你能解释一下吗?
对象开销
每个对象都有一个标题,通常长度为8-12个字节.每个对象也是8字节对齐的,你说它的长度约为16个字节.
内部阶级额外开销
由于您的内部类不是静态的,因此它具有对外部类的引用.
如果这是一个匿名内部类,您可能拥有任意数量的最终变量的副本(在匿名类代码中使用的任何变量)
8个字节(内部类额外开销)8个字节(对字符串的引用)8个字节(对节点的引用)
大多数JVM使用32位引用,因此大小为4个字节.即使是堆高达32 GB的64位JVM也可以使用32位引用.
| 归档时间: |
|
| 查看次数: |
2915 次 |
| 最近记录: |