4+24+[8+4+2*length]
String s=""; 的占用是 28+16= 44
String s="ab" 的占用是 28+16= 44
String s="abc" 的占用是 28+24 = 52
要說的是,String是常用的類,這么看,String耗內存很多,所以jvm有優化,同樣的內容盡量重用,所以除了28是必須的外,那個char[] 很可能一樣
比方說
String[] s=new String[1000];
for(int i=0;i<1000;i++) {
s[i]=new String("abcdefasdjflksadjflkasdfj");
}
的占用的數量級是 28*1000,那 1000個字符串本身基本上不占內存,只有一份。。。。!
反正String 至少是 28,最多也可能是28。。。。。。!
文章來源于領測軟件測試網 http://www.kjueaiud.com/