最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ù)。即同一個類中的不同對象都需要用到的屬性,就像一個班級類,它的每個學(xué)生對象都會用到班級名稱,是他們所共有的,每一個學(xué)生對象都共享這個班級名稱,就需要使用static來修飾。

而instance則是每個學(xué)生對象自己所獨有的屬性,例如每個學(xué)生對象都有自己的名字、身高、年齡等屬性就是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)文章

  • 解決SpringBoot webSocket 資源無法加載、tomcat啟動報錯的問題

    解決SpringBoot webSocket 資源無法加載、tomcat啟動報錯的問題

    這篇文章主要介紹了解決SpringBoot webSocket 資源無法加載、tomcat啟動報錯的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 用Java實現(xiàn)連連看小游戲

    用Java實現(xiàn)連連看小游戲

    這篇文章主要為大家詳細介紹了用Java實現(xiàn)連連看小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • SpringBoot雪花算法主鍵ID傳到前端后精度丟失問題的解決

    SpringBoot雪花算法主鍵ID傳到前端后精度丟失問題的解決

    本文主要介紹了SpringBoot雪花算法主鍵ID傳到前端后精度丟失問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • JAVA JSP頁面技術(shù)之EL表達式整理歸納總結(jié)

    JAVA JSP頁面技術(shù)之EL表達式整理歸納總結(jié)

    這篇文章主要介紹了java中JSP頁面技術(shù)之EL表達式概念作用以及語法等的使用,需要的朋友可以參考
    2017-04-04
  • 基于OpenID?Connect及Token?Relay實現(xiàn)Spring?Cloud?Gateway

    基于OpenID?Connect及Token?Relay實現(xiàn)Spring?Cloud?Gateway

    這篇文章主要介紹了基于OpenID?Connect及Token?Relay實現(xiàn)Spring?Cloud?Gateway,Spring?Cloud?Gateway旨在提供一種簡單而有效的方式來路由到API,并為API提供跨領(lǐng)域的關(guān)注點,如:安全性、監(jiān)控/指標(biāo)和彈性
    2022-06-06
  • 微信小程序中的openid的作用詳解

    微信小程序中的openid的作用詳解

    微信小程序作為連接用戶與服務(wù)的重要橋梁,在提升用戶體驗方面發(fā)揮著重要作用,本文章將詳細探討openid在微信小程序中的作用及其重要性,幫助開發(fā)者更好地理解和利用這一功能,優(yōu)化應(yīng)用體驗并增強安全性,感興趣的朋友一起看看吧
    2025-04-04
  • SpringBoot實戰(zhàn)教程之新手入門篇

    SpringBoot實戰(zhàn)教程之新手入門篇

    Spring Boot使我們更容易去創(chuàng)建基于Spring的獨立和產(chǎn)品級的可以"即時運行"的應(yīng)用和服務(wù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot實戰(zhàn)教程之入門篇的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • JAVAsynchronized原理詳解

    JAVAsynchronized原理詳解

    這篇文章主要介紹了Java中synchronized實現(xiàn)原理詳解,涉及synchronized實現(xiàn)同步的基礎(chǔ),Java對象頭,Monitor,Mark Word,鎖優(yōu)化,自旋鎖等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下
    2021-08-08
  • 一文帶你了解SpringBoot中常用注解的原理和使用

    一文帶你了解SpringBoot中常用注解的原理和使用

    這篇文章主要介紹了一文帶你了解SpringBoot中常用注解的原理和使用
    2022-11-11
  • IDEA 2020.2 部署JSF項目的詳細過程

    IDEA 2020.2 部署JSF項目的詳細過程

    本文通過圖文并茂的形式教大家如何在IDEA中創(chuàng)建一個JSF項目及遇到問題的解決方法,感興趣的朋友跟隨小編一起看看吧
    2021-09-09

最新評論

防城港市| 辽阳县| 日土县| 郁南县| 西藏| 宜州市| 泸溪县| 宁阳县| 三河市| 建水县| 依安县| 边坝县| 镇远县| 文化| 郓城县| 洪洞县| 平阴县| 镇原县| 法库县| 德兴市| 合江县| 布拖县| 永仁县| 晴隆县| 谢通门县| 河西区| 枞阳县| 启东市| 长泰县| 舟山市| 奉新县| 宜城市| 孝昌县| 濮阳市| 武夷山市| 海晏县| 措美县| 治县。| 广德县| 芮城县| 元朗区|