?tips:?
java 的 static修飾的 方法和變量 可以被 實(shí)例訪問 ,但是typeScript?不可以。
static關(guān)鍵字主要和Java的內(nèi)存管理有關(guān)。我們可以將static關(guān)鍵字與變量,方法,代碼塊一起使用。static關(guān)鍵字屬于該類,而不是該類的實(shí)例。
static關(guān)鍵字可以修飾:
- 變量(也稱為類變量)
- 方法(也稱為類方法)
- 代碼塊
?Java靜態(tài)變量?:
如果將任何變量聲明為static,則稱為靜態(tài)變量。
- 靜態(tài)變量可用于引用所有對象的公共屬性(每個(gè)對象不是唯一的),例如,員工的公司名稱,學(xué)生的大學(xué)名稱等。
- 靜態(tài)變量在類加載時(shí)僅在類區(qū)域中分配一次內(nèi)存。
- 它使你的程序存儲(chǔ)效率更高(通俗點(diǎn)說,就是節(jié)省內(nèi)存)。
-
靜態(tài)變量僅僅分配一次內(nèi)存,如果任何對象更改了靜態(tài)變量的值,該值會(huì)影響所有對象。
Java靜態(tài)方法?:
如果讓任何方法加上static關(guān)鍵字,則稱為static靜態(tài)方法。
- 靜態(tài)方法屬于類,而不是類的對象。
- 可以使用類名稱直接調(diào)用靜態(tài)方法,而無需創(chuàng)建類的實(shí)例。
- 靜態(tài)方法可以直接訪問靜態(tài)數(shù)據(jù)成員并可以更改其值。
靜態(tài)方法有兩個(gè)主要限制:
- 靜態(tài)方法不能使用非靜態(tài)數(shù)據(jù)成員或直接調(diào)用非靜態(tài)方法。
- this和super關(guān)鍵字不能在靜態(tài)上下文中使用。
為什么main方法是靜態(tài)的?:
如果main() 方法是非靜態(tài)方法,則JVM首先創(chuàng)建一個(gè)對象,然后調(diào)用main() 方法,這將導(dǎo)致額外的內(nèi)存分配問題。
可以執(zhí)行沒有main()方法的類嗎?:
JDK1.6以前可以,但是JDK1.7以后不行
!JDK1.6及以前只要類中有靜態(tài)塊也可以執(zhí)行該類,但是到了JDK 1.7及以后,沒有main方法就不可能執(zhí)行Java類了。文章來源:http://www.zghlxwxcb.cn/news/detail-688658.html
java 靜態(tài)代碼塊?:
在Java中,靜態(tài)代碼塊是一種特殊的代碼塊,它在類被加載時(shí)執(zhí)行 (早于main方法),且只執(zhí)行一次。靜態(tài)代碼塊通常用于在類加載時(shí)進(jìn)行一些初始化工作,例如初始化靜態(tài)成員變量或執(zhí)行一些靜態(tài)方法。靜態(tài)代碼塊使用 static
關(guān)鍵字來定義,它不需要對象實(shí)例而是與類相關(guān)聯(lián)。文章來源地址http://www.zghlxwxcb.cn/news/detail-688658.html
-
main方法在類加載后被調(diào)用,即在靜態(tài)代碼塊執(zhí)行完畢后執(zhí)行。
到了這里,關(guān)于2023.9 - java - static 關(guān)鍵字的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!