亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中static與instance的區(qū)別及作用詳解

 更新時間:2023年07月04日 10:06:11   作者:LTLXX  
這篇文章主要為大家介紹了Java中static與instance的區(qū)別及作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1.概念:

java中有個關(guān)鍵字叫static,翻譯為靜態(tài),用來修飾屬性和方法。它所修飾的屬性叫靜態(tài)屬性或類變量,修飾的方法叫靜態(tài)方法或者類方法。而沒有使用static修飾的屬性和方法就叫實例變量和方法,即instance翻譯為實例的意思。

2.static與instance的作用:

static實現(xiàn)了在同一個類的對象中共享數(shù)據(jù)。即同一個類中的不同對象都需要用到的屬性,就像一個班級類,它的每個學生對象都會用到班級名稱,是他們所共有的,每一個學生對象都共享這個班級名稱,就需要使用static來修飾。

而instance則是每個學生對象自己所獨有的屬性,例如每個學生對象都有自己的名字、身高、年齡等屬性就是instance修飾,但只有static才需要特別寫出來,instance就不用寫出來。

3.static修飾屬性和方法:

1.static修飾屬性(靜態(tài)變量):

   static String className;

2.static修飾方法(靜態(tài)方法):

   public static void getScore(){
    }

4.instance屬性和方法:

1.實例屬性:

   String name;

2.實例方法:

   public void getScore(){
    }

5.static與instance的區(qū)別:

1.加載時間不同:

  • 靜態(tài)屬性和方法是在首次出現(xiàn)類名時,為類的靜態(tài)屬性和方法分配內(nèi)存。
  • 實例屬性和方法是類new對象的時候,為類的實例屬性和方法分配內(nèi)存。

2.份數(shù)不同:

  • 靜態(tài)屬性和方法只有一份多個對象享用,而實例屬性和方法是有多少個對象就有多少份。

3.初始化方法不同:

靜態(tài)變量是除了通過定義時手動確定外還可以通過static塊(靜態(tài)塊)來初始化。

例如:

 static int age=0;    //定義時手動初始化。
//靜態(tài)塊,為static變量初始化,靜態(tài)塊在首次類名出現(xiàn)時調(diào)用,但后于分配靜態(tài)變量。
 static{
        age = 20;
    }

靜態(tài)塊:

類名首次出現(xiàn)時,先為靜態(tài)變量分配內(nèi)存,然后調(diào)用靜態(tài)塊,靜態(tài)塊可以為靜態(tài)變量初始化。靜態(tài)塊只在類名首次出現(xiàn)時調(diào)用一次,以后再也不調(diào)用了。

  • 動態(tài)變量則是除了定義時手動賦值外還通過構(gòu)造方法賦值(一般用構(gòu)造方法初始化)

例如:

    String name= "張三";    //定義時手動初始化。
    Test(String name){       //帶一個參數(shù)的構(gòu)造方法。
        this.name=name;
    }
    public static void main(String[] args) {
        Test t1=new Test("張三");     //通過構(gòu)造方法初始化。
    }

4.內(nèi)存存放地址不同:

  • 靜態(tài)變量被分配在方法區(qū)中,常駐內(nèi)存,永不回收。
  • 實例變量被分配在堆中,用完回收。

5.調(diào)用方法不同:

  • 靜態(tài)方法只可以調(diào)靜態(tài)方法和變量不可以調(diào)用實例方法和變量。
  • 實例方法既可以調(diào)用實例變量和方法還可以調(diào)用靜態(tài)變量和方法。
    原因:靜態(tài)方法是在首次出現(xiàn)類名時分配內(nèi)存調(diào)用的此時并不知道有沒有實例變量和方法。

案例分析:

public class Test {
    static int age;
    public static void main(String[] args) {
        age = 2;   //此方法正確,都是靜態(tài)的,類名首次出現(xiàn)就分內(nèi)存
    }
}
public class Test {
    public static void main(String[] args) {
    }
    public void sayHello(){
    }
    public static void sayHi(){   //報錯,不知道sayHello()有沒有
        sayHello();
    }
}
public class Test {
    int age;
    public static void main(String[] args) {   //報錯,不知道age屬性有沒有。
        age = 2;
    }
}
public class Test {
    int age;
    public static void main(String[] args) {   //正確,創(chuàng)建對象new Test()調(diào)用屬性age表明已存在age屬性就能調(diào)用
        new Test().age = 2;
    }
}

以上就是Java中static與instance的區(qū)別及作用詳解的詳細內(nèi)容,更多關(guān)于Java static instance區(qū)別的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java實現(xiàn)簡單的抽牌游戲

    Java實現(xiàn)簡單的抽牌游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單的抽牌游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Java接口定義與實現(xiàn)方法分析

    Java接口定義與實現(xiàn)方法分析

    這篇文章主要介紹了Java接口定義與實現(xiàn)方法,簡單說明了接口的概念、功能,并結(jié)合實例形式分析了接口的相關(guān)定義與使用技巧,需要的朋友可以參考下
    2017-11-11
  • MyBatis動態(tài)SQL之<choose><when><otherwise>標簽的使用

    MyBatis動態(tài)SQL之<choose><when><otherwise>標簽的使用

    MyBatis中動態(tài)語句choose-when-otherwise 類似于Java中的switch-case-default語句,本文就來介紹一下MyBatis動態(tài)SQL之<choose><when><otherwise>標簽的使用,感興趣的可以了解一下
    2023-09-09
  • 使用代碼生成器自定義Entity的部分注解

    使用代碼生成器自定義Entity的部分注解

    這篇文章主要介紹了使用代碼生成器自定義Entity的部分注解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Mybatis-Plus可能導致死鎖的問題分析及解決辦法

    Mybatis-Plus可能導致死鎖的問題分析及解決辦法

    這篇文章給大家主要介紹了Mybatis-Plus可能導致死鎖的問題分析及解決辦法,文中通過代碼示例給大家介紹的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • js-tab選項卡

    js-tab選項卡

    本文主要介紹了js-tab選項卡的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Java多線程通信問題深入了解

    Java多線程通信問題深入了解

    下面小編就為大家?guī)硪黄钊肜斫釰AVA多線程之線程間的通信方式。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-07-07
  • Java獲取兩個集合List的交集、補集、并集(相加)和差集(相減)的幾種方式

    Java獲取兩個集合List的交集、補集、并集(相加)和差集(相減)的幾種方式

    這篇文章主要介紹了Java獲取兩個集合List的交集、補集、并集(相加)和差集(相減)的幾種方式,文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2025-04-04
  • SpringBoot路徑映射實現(xiàn)過程圖解

    SpringBoot路徑映射實現(xiàn)過程圖解

    這篇文章主要介紹了SpringBoot路徑映射實現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Windows Zookeeper安裝過程及啟動圖解

    Windows Zookeeper安裝過程及啟動圖解

    這篇文章主要介紹了Windows Zookeeper安裝過程及啟動圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12

最新評論