1、在JDK8之前,靜態(tài)成員(靜態(tài)變量和靜態(tài)方法)都是存儲(chǔ)在方法區(qū)(永久代)中的靜態(tài)區(qū)中(這里指類被加載后,靜態(tài)成員的存儲(chǔ)位置)。但在JDK8之后,永久代被移除了,取而代之的是元空間(metaspace)。

目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、佳木斯網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
2、一個(gè)jvm實(shí)例,只存在一個(gè)堆內(nèi)存,堆內(nèi)存的大小是可以調(diào)節(jié)的。類加載器讀取了類文件之后,需要把類,方法,常量放到堆內(nèi)存中,保存所有的引用類型的真實(shí)信息,以方便執(zhí)行器執(zhí)行。堆內(nèi)存分為三部分。
3、JAVA的JVM的內(nèi)存可分為3個(gè)區(qū):堆(heap)、棧(stack)和方法區(qū)(method)堆區(qū):存儲(chǔ)的全部是對象,每個(gè)對象都包含一個(gè)與之對應(yīng)的class的信息。
4、◆非RAM存儲(chǔ):硬盤等永久存儲(chǔ)空間 Java內(nèi)存分配中的棧 在函數(shù)中定義的一些基本類型的變量數(shù)據(jù)和對象的引用變量都在函數(shù)的棧內(nèi)存中分配。
5、一個(gè)完整的Java程序運(yùn)行過程會(huì)涉及以下內(nèi)存區(qū)域:\x0d\x0a寄存器:JVM內(nèi)部虛擬寄存器,存取速度非常快,程序不可控制。
6、java運(yùn)行的原理表示:首先源文件通過編譯器編譯成字節(jié)碼文件class,然后在通過JVM中的解釋器將字節(jié)碼文件生成對應(yīng)的可執(zhí)行文件。
構(gòu)造代碼塊:是給所有的對象進(jìn)行初始化,也就是說,所有的對象都會(huì)調(diào)用一個(gè)代碼塊,只要對象一建立,就會(huì)調(diào)用這個(gè)代碼塊。構(gòu)造函數(shù):是給與之對應(yīng)的對象進(jìn)行初始化,它具有針對性。
System.out.println(局部代碼塊運(yùn)行!);} }123456 在程序中當(dāng)我們定義完成一個(gè)局部變量x之后,并且在接下來的代碼中,不想再用到它時(shí),那么就沒必要讓x在內(nèi)存中繼續(xù)占用空間。因此就有了局部代碼塊。
java中有四種代碼塊 普通代碼塊:直接在{}中出現(xiàn)的。構(gòu)造代碼塊:在構(gòu)造函數(shù)的{}中出現(xiàn)的。靜態(tài)代碼塊:static{}中出現(xiàn)的。同步代碼塊:多線程中出現(xiàn)。
//構(gòu)造塊:直接在類中定義且沒有加static關(guān)鍵字的代碼塊稱為{}構(gòu)造代碼塊。構(gòu)造代碼塊在創(chuàng)建對象時(shí)被調(diào)用,每次創(chuàng)建對象都會(huì)被調(diào)用,并且構(gòu)造代碼塊的執(zhí)行次序優(yōu)先于類構(gòu)造函數(shù)。
構(gòu)造代碼塊:執(zhí)行時(shí)間比靜態(tài)代碼塊晚,比構(gòu)造函數(shù)早,和構(gòu)造函數(shù)一樣,只在對象初始化的時(shí)候運(yùn)行。沒有名字、參數(shù)和返回值。靜態(tài)代碼塊:最早執(zhí)行,類被載入內(nèi)存時(shí)執(zhí)行,只執(zhí)行一次。
1、堆區(qū):存儲(chǔ)的全部是對象,每個(gè)對象都包含一個(gè)與之對應(yīng)的class的信息。
2、在JDK8之前,靜態(tài)成員(靜態(tài)變量和靜態(tài)方法)都是存儲(chǔ)在方法區(qū)(永久代)中的靜態(tài)區(qū)中(這里指類被加載后,靜態(tài)成員的存儲(chǔ)位置)。但在JDK8之后,永久代被移除了,取而代之的是元空間(metaspace)。
3、java中數(shù)組是以對象形式存在的,棧中存儲(chǔ)的是數(shù)組對象的地址(即引用),而對象本身不存放在棧中,而是存放在堆中,使用時(shí)通過棧中的引用地址找到堆中的實(shí)際對象,這里的引用地址類似于C/C++中的指針。
4、類加載時(shí) 方法信息保存在一塊稱為方法區(qū)的內(nèi)存中, 并不隨你創(chuàng)建對象而隨對象保存于堆中。可參考《深入java虛擬機(jī)》前幾章。
5、靜態(tài)存儲(chǔ)。這兒的“靜態(tài)”是指“位于固定位置”。程序運(yùn)行期間,靜態(tài)存儲(chǔ)的數(shù)據(jù)將隨時(shí)等候調(diào)用。可用static關(guān)鍵字指出一個(gè)對象的特定元素是靜態(tài)的。但java對象本身永遠(yuǎn)都不會(huì)置入靜態(tài)存儲(chǔ)空間。 常數(shù)存儲(chǔ)。
本文標(biāo)題:java代碼塊存儲(chǔ)在哪里 java static 代碼塊
文章位置:http://www.chinadenli.net/article20/deisdco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、ChatGPT、App設(shè)計(jì)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)