如何是有可能,Java對象的最小大小爲8個字節(僅目標首標),Java對象的大小
What is the memory consumption of an object in Java?
如果在表示Java對象的C++類,
http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/9b0ca45cd756/src/share/vm/oops/oop.hpp
我可以看到的是,類有多個成員
class oopDesc {
friend class VMStructs;
private:
volatile markOop _mark; // this is the object header
union _metadata {
wideKlassOop _klass;
narrowOop _compressed_klass;
} _metadata; // what about size of this member?
爲什麼您認爲C++代表擁有更多成員?只有兩個:_mark和_metadata,它們中的每一個在32位體系結構上都是4個字節。 _metadata是一個聯合,即_klass和_compressed_klass共享相同的空間。 – apangin 2015-03-19 11:37:48
apangin:是的你是對的,我的錯,我刪除的那個成員是靜態成員,markOop有4個字節 – Krab 2015-03-19 11:39:58