對於數組
public byte[] bytes=new byte[
System
上面的bytes換算過來是
public class Array {
public int length;
public byte byte
public byte byte
public byte byte
}
上面的bytes占用的內存是
再如
byte[] bytes=new byte[
的內存占用是:
byte[] bytes=new byte[
對於元素是Object的數組
Byte[] bytes=new Byte[
這個 bytes的定義相當於:
public class Array {
public int length;
public Byte byte
public Byte byte
}
占用空間是
推論
public class Abc {
public int n;
public byte b;
public Object obj;
}
它的內容占用是
所以 Abc one=new Abc()的占用是
提醒
舉例
public class Abc {
public byte b;
public Object obj=null;
}
public class Def {
public int n;
public byte b;
public Abc obj=new Abc();
}
問
答
public class Abc {
public byte b;
public Object obj=null;
}
public class Def {
public int n;
public byte b;
public Abc[] objs=new Abc[
{
for(int i=
objs[i]=new Abc();
}
}
}
問
答
public class String {
private final char value[];
private final int offset;
private final int count;
private int hash; // Default to
}
所以
String s=
占用
String s=
String s=
String s=
要說的是
String[] s=new String[
for(int i=
s[i]=new String(
}
的占用的數量級是
實例
我以前用一個
Hashtable的結構
[
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27227.html