首先我們先來說說jvm記憶體模型:
jvm記憶體分成:方法區、堆疊、堆疊和程式計數器。
下面我們來簡單的說說方法區、堆疊和堆疊:
方法區:是各個執行緒共享的區域,存放類別資訊/常數/靜態變數;
#棧:其實每個執行緒都會分配一個棧,其生命週期與執行緒一樣,其執行一個方法就會產生一個棧幀,棧幀包含了方法中的局部變數。
堆:所有類別的實例化都存放在堆裡面。
(影片教學推薦:java影片教學)
1、從記憶體的角度分析用靜態和非靜態的差異
#static修飾成員變數和成員方法,其值存放的位址是方法區的常數池,其執行的順序為在載入類別的時候就將static修飾的變數名稱或方法存放到常數池了。
非靜態修飾的變數可以是成員變數和局部變數。
成員變數隨物件存放的位址一樣,因為它屬於類別的一部分,其位址在堆中。
局部變數一般情況下在方法中聲明,其存放的位址在堆疊中。
二、從運行的機制分析
在源碼被編譯器編譯成.class字節碼檔案的時候,一旦類別被加載,用了static修飾的區塊/變數/方法就會馬上存放到方法區,與此同時非靜態的區塊/變數/方法還沒有編譯,一旦將非靜態的變數存放到靜態方法裡面,程式計數器指示到局部變數的時候就會報錯,因為這時候根本還沒編譯到局部變數這一塊。
推薦教學:java入門程式
以上是java中靜態和非靜態有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境