Java程序在運(yùn)行時創(chuàng)建的所有類實例或者數(shù)組都放在堆中,所有線程共享這個堆,所以對被設(shè)計為線程安全的。
Java虛擬機(jī)根據(jù)存儲在方法區(qū)的類型信息來確定一個對象需要分配多少空間,用戶可以自己設(shè)定堆得初始化大小。
java對象中包含的基本數(shù)據(jù)由他所屬的類以及所有的超類聲明的實例變量組成,只要有一個對象的引用,虛擬機(jī)就必須快速的定位對象的實例數(shù)據(jù),另外,它也必須能通過該對象引用訪問相應(yīng)的類數(shù)據(jù)(存儲與方法區(qū)的類型信息),因此在對象中通常會有一個指向方法區(qū)的指針。
一種設(shè)計實現(xiàn):