① static 修飾的成員(字段/方法),隨著所在類的載入而載入
當 jvm 把位元組碼載入金 jvm 的時候,static 修飾的成員已經在記憶體中了
② 優先於物件的存在
物件是被手動通過 new 關鍵字創造出來的
③ static 修飾的成員被該型別的所有物件所共享
根據該類建立出來的任何物件,都可以訪問 static 成員。
注:表面上通過物件去訪問 static 成員,其本質依然使用類名訪問,與物件無關,使得 3 並無實際意義
④ 直接使用類名訪問 static 成員
因為static修飾的成員直接屬於類,不屬於物件,所以可以直接使用類名訪問static成員。
類中的成員:字段、方法、內部類
類成員:使用static修飾的成員
例項成員:沒有使用static修飾的成員
類成員只能訪問類成員,例項成員只能訪問例項成員,類成員直接屬於類,可以通過類來訪問 static 欄位和 static 方法
例項成員:
只屬於物件,通過物件來訪問非 static 欄位和非 static 方法(物件其實可以訪問類成員,但是底層依然使用類名訪問的)
在 static 方法中,只能呼叫 static 成員如果這個狀態/行為屬於整個事物(類),就直接使用 static 修飾,則該行為被所有物件所共享。非 static 方法:可以呼叫靜態成員,也可以呼叫例項成員
在開發中,往往把工具方法使用 static 修飾,如果不使用 static 修飾,則這些方法屬於該類的物件,我們得先建立物件再呼叫方法,而在開發中工具物件只需要乙份即可,若不使用 static 修飾,可能會建立 n 個物件,使得系統記憶體占用增多,效能低下,此時的解決辦法汪汪把該類設計為單例的,但依然麻煩,即:在一般開發中,設計工具方法時,為了呼叫簡單,使用 static 修飾。
利處:對物件的共享資料進行單獨空間的儲存,節省空間,沒有必要每乙個物件都儲存乙份,可以直接被類名呼叫
弊端:生命週期過長
java static與final修飾符
今天才發現 之前竟然理解得完全錯誤。給類中的某個成員屬性或方法加上static修飾符 則意味著這個屬性是 全域性的 靜態的 注意 這裡雖然是靜態的 但並不意味著這個屬性的值就是固定不可修改的 但個人理解static的作用的確是讓乙個屬性成為全域性的 暫且先這樣理解吧 全域性一詞 具體表現在 可以使用...
laravel 字段修飾
table bigincrements id id 自動增量,使用相當於 big integer 型別 table biginteger votes 相當於 bigint 型別 table binary data 相當於 blob 型別 table boolean confirmed 相當於 boo...
mysql修飾 Mysql欄位修飾符(約束)
1 null和not null not null不可以插入null,但可以插入空值。數值型 字元型 日期型都可以插入null,但只有字元型可以插入空值。使用方法如下 mysql create database test db query ok,1 row affected 0.00 sec mysq...