類例項存放在堆中,成員變數屬於類例項,也存放在堆中。使用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 靜態方法...