Java中靜態屬性和非靜態屬性有什麼區別?

2021-09-12 08:05:49 字數 1401 閱讀 5495

一、什麼是靜態屬性和非靜態屬性?

靜態屬性是指被static修飾符修飾的類、方法、變數或**塊等。

非靜態屬性是指沒有被static修飾的。

二、靜態屬性和非靜態屬性的特點是什麼?

靜態屬性特點:

1. 一宣告就被儲存在棧中,直接佔據記憶體,可以快速穩定的呼叫。

2. 生命週期長,從jvm載入開始到jvm載入結束。

3. 全域性唯一,在乙個執行環境中,靜態變數只有乙個值,任何一次修改都是全域性性的影響。

4. 佔據記憶體,程式中應該包含盡量少的static

非靜態屬性特點:

1. new的時候佔據記憶體,例項化後才能呼叫。

2. 非靜態變數賦值不發生衝突。

三、靜態變數和非靜態變數的區別

靜態變數是用static修飾的變數,靜態變數不需要new出物件引用來呼叫,它可以直接用類名直接呼叫,當然用物件引用也能呼叫它,只是沒那個必要。

非靜態變數則必須用物件引用呼叫。

四、成員變數和靜態變數的區別

1. 成員變數所屬於物件,所以稱為例項變數,靜態變數所屬於類,所以稱為類變數。

2. 成員變數存在於堆記憶體中,靜態變數存在於方法區中。

3. 成員變數隨著物件建立而存在,隨著物件被收回而消失,記憶體空間只有乙份,也只有乙份大家共享。靜態變數隨著類的載入而載入,隨著類的消失而消失(new出乙個物件就會在記憶體中分配一塊空間給它)。

4. 成員變數只能被物件呼叫,靜態變數可以被物件呼叫,也可以被類名呼叫。所以可以說成員變數是物件的特有資料,靜態變數是物件的共享資料。

成員變數成員變數是在類體的變數部分中定義的變數,也稱為屬性。 例項變數、類變數、常量都屬於成員變數。

public class clothes 

成員變數又根據修飾符區分:

修飾符 說明

public 成員變數可以被專案中的任何方法訪問,建議盡量少用

protected 不在同乙個包中的類不能訪問,但子類可以訪問

private 只能在同乙個類中使用

static 類變數,其值為該類的所有物件共享,不會因類的物件不同而不同

final 最終成員變數,其值保持不變,即常量

transient 當物件被持久化時(例如寫入資料庫),該成員變數的值不需要儲存

volatile 同步多執行緒訪問的成員變數的值,以便使不同的執行緒總是得到 該成員變數的同乙個值。

java中靜態屬性與非靜態屬性

student 類 public class student public student string name public string getname public void setname string name 測試類 public class test 1.靜態的屬性屬於類的,不依賴於...

靜態屬性與非靜態屬性

靜態屬性 由static修飾的為類 方法 變數或 塊等。非靜態屬性 不由static修飾 靜態屬性特點 一宣告就被儲存在棧中,直接佔據記憶體,可以快速穩定的呼叫。2.生命週期長,從jvm載入開始到jvm載入結束。3.全域性唯一,在乙個執行環境中,靜態變數只有乙個值,任何一次修改都是全域性性的影響。4...

java靜態方法,靜態屬性

靜態方法,靜態屬性,都是不需要建立例項物件就可以呼叫,而且是單例的,不管建立多少個物件,都是共享乙個 靜態屬性。靜態方法不可以呼叫非靜態的變數,只可以呼叫靜態的屬性。靜態方法不可以呼叫非靜態的方法,只可以呼叫靜態的方法 靜態方法和static 塊在類被載入的時候就會被執行!我們定義常量是這樣的 pu...