對象存儲和文件存儲 class對象在內(nèi)存中如何存儲?
class對象在內(nèi)存中如何存儲?以Java類為例,當構(gòu)造一個新對象時,對象存儲在內(nèi)存中如下:①堆棧區(qū)存儲函數(shù)參數(shù)和局部變量;②堆區(qū)存儲對象;③數(shù)據(jù)區(qū)存儲靜態(tài)變量或字符串常量;④代碼為對象添加引用計數(shù)器
class對象在內(nèi)存中如何存儲?
以Java類為例,當構(gòu)造一個新對象時,對象存儲在內(nèi)存中如下:
①堆棧區(qū)存儲函數(shù)參數(shù)和局部變量;
②堆區(qū)存儲對象;
③數(shù)據(jù)區(qū)存儲靜態(tài)變量或字符串常量;
④代碼為對象添加引用計數(shù)器。每當一個地方引用它時,計數(shù)器將增加1。當引用失敗時,計數(shù)器將減少1。任何時候,計數(shù)器為0的對象都不會被使用。
在大多數(shù)情況下,這是一個很好的算法。
無法解決對象循環(huán)引用的問題。
此算法的思想是使用一系列“GC根”對象作為根節(jié)點,并從這些節(jié)點向下搜索。搜索路徑稱為“參考鏈”。當一個對象沒有通過任何引用鏈連接到GC根時,證明該對象不可用。
如果您對學習Java有任何疑問(學習方法、學習效率、如何就業(yè)),可以隨時來找我,(教程/答案/交流小組/學習方法/就業(yè)信息)等,歡迎大家分享資源。