Docker 的優點
647
2025-03-31
一、static關鍵字
1.static關鍵字概述 (理解)
static 關鍵字是靜態的意思,是Java中的一個修飾符,可以修飾成員方法,成員變量
2.static修飾的特點 (記憶)
被類的所有對象共享
是我們判斷是否使用靜態關鍵字的條件
隨著類的加載而加載,優先于對象存在
對象需要類被加載后,才能創建
可以通過類名調用
也可以通過對象名調用
3.static關鍵字注意事項 (理解)
靜態方法只能訪問靜態的成員
非靜態方法可以訪問靜態的成員,也可以訪問非靜態的成員
靜態方法中是沒有this關鍵字
二、static關鍵字內存分析
靜態變量存放在方法區中,并且是被所有線程所共享的。這里要說一下java堆,java堆存放的就是我們創建的一個個實例變量。
堆區:
1、存儲的全部是對象,每個對象都包含一個與之對應的class的信息。(class的目的是得到操作指令)
2、jvm只有一個堆區(heap)被所有線程共享,堆中不存放基本類型和對象引用,只存放對象本身
棧區:
1.每個線程包含一個棧區,棧中只保存基礎數據類型的對象和自定義對象的引用(不是對象),對象都存放在堆區中
2、每個棧中的數據(原始類型和對象引用)都是私有的,其他棧不能訪問。
3、棧分為3個部分:基本類型變量區、執行環境上下文、操作指令區(存放操作指令)。、
方法區:
1、又叫靜態區,跟堆一樣,被所有的線程共享。方法區包含所有的class和static變量。
2、方法區中包含的都是在整個程序中永遠唯一的元素,如class,static變量。
總結
在類中,用static聲明的成員變量為靜態成員變量,也稱為類變量。 類變量的生命周期和類相同,在整個應用程序執行期間都有效。它有如下特點:
為該類的公用變量,屬于類,被該類的所有實例共享,在類被載入時被顯式初始化。
對于該類的所有對象來說,static成員變量只有一份。被該類的所有對象共享!!
一般用“類名.類屬性/方法”來調用。(也可以通過對象引用或類名(不需要實例化)訪問靜態成員。)
在static方法中不可直接訪問非static的成員。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。