虛擬機器主要分為三塊:
棧:存區域性變數及物件的引用
堆:存放物件例項和陣列
方法區:類載入後的資訊,常量、靜態變數
str只是乙個引用變數,他不是物件。
new string()是在執行期間,通過string的構造器建立了乙個物件,放在堆中
」hello「是在編譯期間,jvm會查詢常量池是否有」hello「如沒有,則開闢乙個空間儲存」hello「
所有建立了兩個物件:
堆中的物件是執行的時候,會將常量池中的物件的值複製過去,並且將棧中的引用的值賦為堆中的物件的位址
建立了幾個String物件?
string str a 1個,在常量池中建立了乙個字串物件。string str new string a 2個,在常量池中建立了乙個字串物件 a 在堆中開闢了乙個空間又放了乙個 a string str a b 1個,在編譯期,jvm將 a b 自動識別成 ab 因此只建立了乙個物件,放在常量池...
幾個內建物件
outexception隱式物件 取得元件配置資訊中的引數 當使用者通過對映名訪問元件時,服 務器在專案的部署檔案web.xml中取得該元件。並且可以在該元件中通過config.getinitparameter 方法,從config內建物件中取得該元件在專案的部署檔案web.xml中的配置資訊中 的...
對比幾個同步物件
critical section 用來實現 排他占有 適用範圍是單一程序的各個執行緒之間。它是 1 乙個區域性性物件,不是乙個核心物件。2 快速而有效率。3 不能夠同時有乙個以上的critical section被等待。4 無法偵測是否已被某個執行緒放棄。mutex 乙個核心物件,可以在不同的執行緒...