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

Java中static修飾的靜態(tài)變量、方法及代碼塊的特性與使用

 更新時間:2023年04月20日 10:21:04   作者:渡過晚楓  
這篇文章主要介紹了Java中static修飾的靜態(tài)變量、方法及代碼塊的特性與使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

 前言

static關(guān)鍵字表示“靜態(tài)的”,可以用來修飾類的變量、成員方法和代碼塊等。

被其修飾的類成員具有一些特殊性,下面將介紹static所修飾的靜態(tài)變量、靜態(tài)方法和靜態(tài)代碼塊的特性和用法。

一、靜態(tài)變量

一個類通過使用new關(guān)鍵字可以創(chuàng)建多個不同的對象,而不同的對象實例將被分配到不同的內(nèi)存空間。

但在一些特殊情況下,我們也會希望某些特定的數(shù)據(jù)在內(nèi)存中只有一份,但能夠被一個類中的所有對象實例所共享。

在java中,類的成員變量有兩種:

①:被static修飾的變量,即類變量(靜態(tài)變量),

類加載的時候就完成內(nèi)存空間的分配,在內(nèi)存中占用一份備份,同時也只分配一次內(nèi)存,供其他的實例對象訪問(共享)。

可以直接通過類名.變量名或對象名.變量名的方式來訪問。

     //通過類名訪問靜態(tài)變量
     //類名.靜態(tài)成員變量
     Demo.country="中國";
     System.out.println(Demo.country);
     //通過對象名訪問靜態(tài)成員變量
     //對象名.靜態(tài)成員變量
     demo1.country="美國";
     System.out.println(Demo.country);

②:沒被static修飾的變量,即實例變量

每實例化一次就會為其分配一次內(nèi)存,可能存在多次分配內(nèi)存空間,

必須通過對象名.變量名的方法來訪問。

     demo1.name="張三";
     //通過對象名訪問非靜態(tài)變量
     System.out.println(demo1.name);

若堅持使用類名.變量的方式來訪問,則會出現(xiàn)以下錯誤,

原因是此處的變量還沒有經(jīng)過實例化,就直接拿來訪問了。

關(guān)于靜態(tài)變量,需要注意以下問題:

static只能修飾成員變量,不能修飾局部變量

因為局部變量此時還沒有實例化,沒有分配內(nèi)存空間,而static在類加載時就要分配空間。

二、靜態(tài)方法

被static修飾的方法被稱為靜態(tài)方法。

與上文中的靜態(tài)變量一樣,訪問靜態(tài)方法也不需要創(chuàng)建類的實例,可直接通過類名來訪問;

若已經(jīng)創(chuàng)建 了對象,也可以通過對象引用來訪問。

靜態(tài)方法可以通過類名.方法名或者對象名.方法名兩種方式來調(diào)用靜態(tài)方法。

關(guān)于靜態(tài)變量,需要注意兩點:

①:靜態(tài)方法只能訪問類中用static修飾的成員。

靜態(tài)方法可以通過類名來調(diào)用,且在調(diào)用時可以不創(chuàng)建任何對象,而沒有被static修飾的從成員需要先創(chuàng)建對象才能訪問。

    //類變量,代表人的國籍
    static String country;
 
    //實例變量,代表人的姓名
    String name;
 
    //靜態(tài)方法
    static void printInfo()
    {
        System.out.println("Person的國籍是:"+country);
        //System.out.println(name); 錯誤?。?!
    }

 若在靜態(tài)方法,訪問了類中非static修飾的成員,則會出現(xiàn)以下錯誤:

②:靜態(tài)方法不能以任何方式引用this和super關(guān)鍵字。

靜態(tài)方法可以通過類名直接調(diào)用,這時,可能還沒有任何對象產(chǎn)生。

所以,代表當(dāng)前對象的this和代表父類對象的super都是不存在的。

三、靜態(tài)代碼塊

在Java程序中,代碼塊就是用一對大括號括起來的若干行代碼。

而所謂的靜態(tài)代碼塊就是用static關(guān)鍵字修飾的代碼塊。

在程序中,通常使用靜態(tài)代碼塊來對類的靜態(tài)成員變量就行初始化。

class A
{
    static int id;
    //靜態(tài)代碼塊
    static
    {
        id=100;
    }
}    

需要注意的是,類的靜態(tài)代碼塊不可以訪問類的非靜態(tài)成員。

當(dāng)類加載時,其靜態(tài)成員代碼塊也將同步執(zhí)行,且由于類只加載一次,故靜態(tài)成員代碼塊也只執(zhí)行一次。

非靜態(tài)代碼塊在實例化對象時會被多次執(zhí)行。

先后順序如下:

靜態(tài)代碼塊 > 普通代碼塊>無參構(gòu)造方法

到此這篇關(guān)于Java中static修飾的靜態(tài)變量、方法及代碼塊的特性與使用的文章就介紹到這了,更多相關(guān)Java static修飾符的特性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot整合Spring Batch示例代碼

    SpringBoot整合Spring Batch示例代碼

    這篇文章主要來和大家一起探討一下SpringBoot如何整合Spring Batch,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • 兩個List集合取相同重復(fù)數(shù)據(jù)的方法

    兩個List集合取相同重復(fù)數(shù)據(jù)的方法

    今天小編就為大家分享一篇關(guān)于兩個List集合取相同重復(fù)數(shù)據(jù)的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot如何讀取配置文件(application.yml)中的屬性值

    springboot如何讀取配置文件(application.yml)中的屬性值

    本篇文章主要介紹了springboot如何讀取配置文件(application.yml)中的屬性值,具有一定的參考價值,有興趣的小伙伴可以了解一下
    2017-04-04
  • SpringBoot啟動報錯Failed to determine a suitable driver class

    SpringBoot啟動報錯Failed to determine a suitable driver class

    這篇文章主要介紹了SpringBoot啟動報錯Failed to determine a suitable driver class,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Spring Shell打Jar包時常用小技巧

    Spring Shell打Jar包時常用小技巧

    這篇文章主要介紹了Spring Shell打Jar包時常用小技巧,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • struts2實現(xiàn)多文件上傳

    struts2實現(xiàn)多文件上傳

    這篇文章主要為大家詳細(xì)介紹了struts2實現(xiàn)多文件上傳,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • maven工程打包引入本地jar包的實現(xiàn)

    maven工程打包引入本地jar包的實現(xiàn)

    我們需要將jar包發(fā)布到一些指定的第三方Maven倉庫,本文主要介紹了maven工程打包引入本地jar包的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • java實現(xiàn)的二級聯(lián)動菜單效果

    java實現(xiàn)的二級聯(lián)動菜單效果

    這篇文章主要介紹了java實現(xiàn)的二級聯(lián)動菜單效果,結(jié)合實例形式分析了java前臺頁面布局及與后臺交互構(gòu)造聯(lián)動菜單的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • Java開發(fā)中為什么要使用單例模式詳解

    Java開發(fā)中為什么要使用單例模式詳解

    單例對于大家來說并不陌生,但是在什么時候用單例呢?為什么要用呢?本文就帶大家了解一下為什么要使用單例,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06
  • java 和 json 對象間轉(zhuǎn)換

    java 和 json 對象間轉(zhuǎn)換

    這篇文章主要介紹了java 和 json 對象間轉(zhuǎn)換,需要的朋友可以參考下
    2014-03-03

最新評論

克拉玛依市| 五原县| 罗定市| 灌南县| 淅川县| 家居| 金昌市| 罗平县| 仙桃市| 东宁县| 德庆县| 农安县| 册亨县| 康平县| 房山区| 乐都县| 积石山| 黄大仙区| 衡阳市| 工布江达县| 道真| 镇康县| 波密县| 田林县| 石门县| 肇东市| 宁蒗| 巴东县| 抚顺市| 花莲县| 建湖县| 南充市| 濉溪县| 湖南省| 伊金霍洛旗| 东港市| 鹤壁市| 乌兰县| 兴宁市| 扶风县| 大同市|