一個(gè)字符串類型的值能儲存最大容量是多少啊?
從語言上來看,java.util.List是個(gè)接口,其下有N多實(shí)現(xiàn),最常用的是ArrayList和LinkedList及其各種繼承或同步化實(shí)現(xiàn)(如Vector/Queue/Stack這些的)
ArrayList內(nèi)部是拿數(shù)組存儲,那么上限就是Integer.MAX_VALUE
LinkedList內(nèi)部是個(gè)鏈表,理論上是無限的
另外,List里放的東西都是在內(nèi)存里的(當(dāng)然你也可以自己實(shí)現(xiàn)一個(gè)放磁盤上的),因此能放多少也取決于放的東西的大小以及種類。
大小方面很容易計(jì)算,一個(gè)對象如果1K,那400,000個(gè)就至少要占用400M的內(nèi)存(不算其他占用)。
而虛擬機(jī)內(nèi)存分類方面,如果是普通對象,一般占用的都是堆(Heap)空間,如果是常量或是類似String.intern()出來的東東,則占用的是永生帶(Permanent Generation)。