當前位置:吉日网官网 - 傳統美德 - 靜態方法和非靜態方法有什麽區別?

靜態方法和非靜態方法有什麽區別?

壹.相似之處:

C#中靜態類和非靜態類的定義基本相同,只是靜態類定義需要添加壹個靜態修飾符。

二、生命周期:

像靜態成員變量壹樣,靜態方法屬於類本身。當類被加載時,它被加載到內存中,並將壹直保留在內存中,直到JVM關閉。

非靜態方法也叫實例化方法,屬於實例對象,實例化後會分配內存,所以必須被類的實例引用。沒有內存駐留,當實例對象被JVM回收時,就會消失。

第三,效率:

靜態方法比非靜態方法更有效。

按照上面的概念,只要有足夠的內存,就可以使用靜態。

第四,線程安全:

靜態方法是* * *共享代碼段,靜態變量是* * *共享數據段。既然是“* * *”,就有個競合的問題。

非靜態方法是針對某個對象的,所以不會有線程安全問題。

靜態方法與實例方法相同,並且在第壹次使用類型時加載。通話速度基本沒有區別。

動詞 (verb的縮寫)靜態成員和非靜態成員的比較:

1.靜態成員屬於類,非靜態成員屬於類的實例。

2.每次創建壹個類的實例,都會在內存中為非靜態成員分配壹塊新的存儲空間;非靜態成員屬於類,並為每個類的實例所共有。無論該類創建了多少個實例,該類的靜態成員都只在內存中占據相同的區域。

六、用途不同:

1.靜態方法屬於類,可以在實例化類之前使用。

2.非靜態方法可以訪問類中的任何成員,而靜態方法只能訪問類中的靜態成員。

3.因為靜態方法可以在類被實例化之前使用,而類中的非靜態變量必須被實例化之後才能分配內存,所以只有靜態變量和其他靜態方法才能出現在static裏面!此外,像這樣的關鍵詞...不能在靜態方法中使用...因為是全班的!

4.靜態方法比實例化更有效。靜態方法的缺點是不自動銷毀,而實例化可以銷毀。

5.靜態方法和靜態變量在創建後總是使用同壹個內存,而使用實例會創建多個內存。

  • 上一篇:汽車保險如何網上支付?
  • 下一篇:?劉玲喝酒不留零?劉玲醉酒的故事
  • copyright 2024吉日网官网