java存儲(chǔ)以及java對(duì)象創(chuàng)建的流程(詳解)
java存儲(chǔ):
1)寄存器:這是最快的存儲(chǔ)區(qū),位于處理器的內(nèi)部。但是寄存器的數(shù)量有限,所以寄存器根據(jù)需求進(jìn)行分配。我們不能直接進(jìn)行操作。
2)堆棧:位于通用RAM中,可以通過堆棧指針從處理器那里獲取直接支持。堆棧指針往下移動(dòng),則分配新的內(nèi)存。網(wǎng)上移動(dòng),則釋放內(nèi)存。但是
在創(chuàng)建程序的時(shí)候必須知道存儲(chǔ)在堆棧中的所有項(xiàng)的具體生命周期,以便上下的移動(dòng)指針。一般存儲(chǔ)基本類型和java對(duì)象引用。
3)堆:位于通用RAM中,存放所有的java對(duì)象,不需要知道具體的生命周期。
4)常量存儲(chǔ):常量值通常直接存放在程序代碼內(nèi)部。
5)非RAM存儲(chǔ):數(shù)據(jù)完全存活于程序之外,可以不受程序的控制,在程序沒有運(yùn)行時(shí)也可以存在。就是將對(duì)象轉(zhuǎn)化為可以存放在其他媒介上的事物。如:流對(duì)象、持久化對(duì)象
對(duì)象創(chuàng)建的流程:
1):即使沒有顯示的調(diào)用static,構(gòu)造器實(shí)際上也是靜態(tài)方法。因此,當(dāng)首次創(chuàng)建對(duì)象的時(shí)候或者首次調(diào)用靜態(tài)方法/靜態(tài)域時(shí),java解釋器必須查找類路徑,定位class文件。
2):載入class文件,有關(guān)靜態(tài)的方法或者變量都會(huì)執(zhí)行。因此,靜態(tài)初始化只會(huì)在類加載時(shí)被初始化一次。
3):使用new創(chuàng)建時(shí),會(huì)先在堆上為對(duì)象分配足夠的存儲(chǔ)空間。
4):將這塊區(qū)域清零,這時(shí),就自動(dòng)的將對(duì)象中的基本成員變量或者引用進(jìn)行默認(rèn)的初始化。數(shù)字為零,引用為null。
5):執(zhí)行所有出現(xiàn)于字段定義處的初始化動(dòng)作。
6):執(zhí)行構(gòu)造器。
以上這篇java存儲(chǔ)以及java對(duì)象創(chuàng)建的流程(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
高內(nèi)聚低耦合原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
耦合度就是某模塊(類)與其它模塊(類)之間的關(guān)聯(lián)、感知和依賴的程度,是衡量代碼獨(dú)立性的一個(gè)指標(biāo),也是軟件工程設(shè)計(jì)及編碼質(zhì)量評(píng)價(jià)的一個(gè)標(biāo)準(zhǔn)2017-08-08Springboot通用mapper和mybatis-generator代碼示例
這篇文章主要介紹了Springboot通用mapper和mybatis-generator代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12SpringMVC整合SSM實(shí)現(xiàn)異常處理器詳解
SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡化開發(fā),SpringMVC也是要簡化我們?nèi)粘eb開發(fā)2022-10-10Java SpringSecurity+JWT實(shí)現(xiàn)登錄認(rèn)證
這篇文章主要介紹了Java SpringSecurity+JWT實(shí)現(xiàn)登錄認(rèn)證,首先通過給需要登錄認(rèn)證的模塊添加mall-security依賴展開介紹,感興趣的朋友可以參考一下2022-06-06在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例
這篇文章主要介紹了在IDEA啟動(dòng)多個(gè)Spring Boot工程實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01java組件SmartUpload和FileUpload實(shí)現(xiàn)文件上傳功能
這篇文章主要為大家詳細(xì)介紹了java組件SmartUpload和FileUpload實(shí)現(xiàn)文件上傳功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解
這篇文章主要為大家介紹了spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09