首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 基礎:深入理解 static 關鍵字

     編輯:Java 相關知識

什麼是 static?

在 Java 中,static 關鍵字表示「全局」或「靜態」的含義,可用於修飾成員變量、成員方法,還能形成靜態代碼塊。Java 沒有全局變量的概念,但被 static 修飾的成員變量和方法獨立於該類的任何對象,不依賴特定實例,而是被類的所有實例共享。只要類被加載,Java 虛擬機就能在運行時數據區的方法區中根據類名找到它們。因此,static 成員可以在創建任何對象之前訪問,無需引用對象,直接通過類名.成員的方式調用。

靜態變量

被 static 修飾的變量稱為靜態變量(類變量),未被修飾的則是實例變量。兩者的主要區別在於內存分配:

  • 靜態變量:在內存中只有一份拷貝,JVM 在類加載時只分配一次內存,可用類名直接訪問,也可通過對象訪問。
  • 實例變量:每創建一個對象就分配一次內存,可在內存中有多個拷貝,互不影響。

靜態方法

被 static 修飾的方法稱為靜態方法。它可以通過類名調用,任何實例也能調用。因為它在類加載時就已存在,不依賴任何實例,所以靜態方法必須有具體實現,不能是抽象方法。

靜態代碼塊

靜態代碼塊(static { })在類加載時執行,且只執行一次,常用於初始化靜態資源。

static 的限制

  • 只能調用其他 static 方法。
  • 只能訪問 static 變量。
  • 不能以任何形式引用 this 和 super。
  • static 變量在定義時必須初始化,且初始化時間早於非靜態變量。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved