java中static關鍵字的五種用法

2021-09-24 13:55:51 字數 1228 閱讀 9991

類例項存放在堆中,成員變數屬於類例項,也存放在堆中。使用static修飾後,成員變數便屬於類,而不屬於某個具體的物件,存放位置發生改變存放在方法區中。

成員方法屬於類例項,但是相同類的不同例項共用同乙個方法,方法都存在與方法區,使用static修飾後不會改變方法存放位置,但是會改變歸屬

static塊中的**將在類載入的時候進行執行,多個static塊按照順序執行

在構造者模式中使用較多,其他的用法暫時沒有思考,不過把靜態內部類與構造者模式關聯起來,方便記憶,而且不容易和其他的內部類搞混

靜態內部類示例:

/**

* @author cade

* 需要注意作用域

*/public class pizza

public void setname(string name)

public string getprice()

public void setprice(string price)

public static builder newbuilder()

//私有空構造器

private pizza()

//帶參構造器為builder使用

private pizza(builder builder)

public static final class builder

public builder price(string price)

public pizza build() }

public static void main(string args)

}

靜態匯入後,可以直接使用指定匯入類中的靜態方法,就不需要以 類名.方法名 的形式進行呼叫了

//與pizza不在同一子package中

//靜態匯入

import static com.peide.keyword.statickey.pizza.*;

//需要再次匯入類

import com.peide.keyword.statickey.pizza;

public class keywordtest

}

over.

參考:成員方法所在的記憶體位置及static修飾的成員方法所在的記憶體位置

構造器、類載入與static方法塊的相關關係

static與構造器的理解

static修飾區域性變數的討論

Java中static關鍵字

靜態結構的生命週期要早於非靜態結構,同時 也要晚於非靜態結構 執行結果 變數變數值 c2.nation null c2.nation china public void test2 執行結果 輸出china 內容與靜態屬性大體相同 1.靜態方法內只能呼叫本類靜態屬性或靜態方法 2.靜態方法裡面是不能...

java中static關鍵字

一 可修飾成員變數和方法 靜態函式要注意的事項 1.靜態函式可呼叫類名或物件呼叫,而非靜態函式只能使用物件呼叫。2.靜態函式可直接訪問靜態成員,但不能訪問非靜態成員。原因 靜態函式可通過類名直接呼叫,這時可能還未存在非靜態成員,因為其是根據物件生成的。二 執行順序 靜態 塊的執行順序優先於非靜態 塊...

java中static關鍵字

static 方便在沒有建立物件的情況來呼叫 可以用來修飾類的成員方法 成員變數,塊 內部靜態類 靜態匯入包 1 靜態變數 被static修飾的變數叫靜態變數 或類變數 否則為例項變數,靜態變數類載入時分配一次記憶體,可以直接類名訪問 例項變數建立物件時被初始化,存在多個副本,互不影響。2 靜態方法...