欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Java中static關(guān)鍵字的使用和原理

 更新時(shí)間:2022年10月16日 08:19:01   作者:共飲一杯無(wú)  
static可以用來(lái)修飾的成員變量和成員方法,被修飾的成員是屬于類的,而不是單單是屬于某個(gè)對(duì)象的。本文就來(lái)詳細(xì)說(shuō)說(shuō)他的使用和原理,需要的可以參考一下

概述

關(guān)于 static 關(guān)鍵字的使用,它可以用來(lái)修飾的成員變量和成員方法,被修飾的成員是屬于類的,而不是單單是屬 于某個(gè)對(duì)象的。也就是說(shuō),既然屬于類,就可以不靠創(chuàng)建對(duì)象來(lái)調(diào)用了。

定義和使用格式

類變量

當(dāng) static 修飾成員變量時(shí),該變量稱為類變量。該類的每個(gè)對(duì)象都共享同一個(gè)類變量的值。任何對(duì)象都可以更改 該類變量的值,但也可以在不創(chuàng)建該類的對(duì)象的情況下對(duì)類變量進(jìn)行操作。 類變量:使用 static關(guān)鍵字修飾的成員變量。 定義格式:

static 數(shù)據(jù)類型 變量名;

舉例:

static int id;

靜態(tài)方法

當(dāng)static 修飾成員方法時(shí),該方法稱為類方法 。靜態(tài)方法在聲明中有static ,建議使用類名來(lái)調(diào)用,而不需要 創(chuàng)建類的對(duì)象。調(diào)用方式非常簡(jiǎn)單。 類方法:使用 static關(guān)鍵字修飾的成員方法,習(xí)慣稱為靜態(tài)方法。 定義格式:

修飾符 static 返回值類型 方法名 (參數(shù)列表){ // 執(zhí)行語(yǔ)句 }

舉例:在Student類中定義靜態(tài)方法

public static void showNum() {
    System.out.println("num:" + numberOfStudent);
}

靜態(tài)方法調(diào)用的注意事項(xiàng):

  • 靜態(tài)方法可以直接訪問(wèn)類變量和靜態(tài)方法。
  • 靜態(tài)方法不能直接訪問(wèn)普通成員變量或成員方法。反之,成員方法可以直接訪問(wèn)類變量或靜態(tài)方法。
  • 靜態(tài)方法中,不能使用this關(guān)鍵字。

小貼士:靜態(tài)方法只能訪問(wèn)靜態(tài)成員。

public class MyClass {

    int num; // 成員變量
    static int numStatic; // 靜態(tài)變量

    // 成員方法
    public void method() {
        System.out.println("這是一個(gè)成員方法。");
        // 成員方法可以訪問(wèn)成員變量
        System.out.println(num);
        // 成員方法可以訪問(wèn)靜態(tài)變量
        System.out.println(numStatic);
    }

    // 靜態(tài)方法
    public static void methodStatic() {
        System.out.println("這是一個(gè)靜態(tài)方法。");
        // 靜態(tài)方法可以訪問(wèn)靜態(tài)變量
        System.out.println(numStatic);
        // 靜態(tài)不能直接訪問(wèn)非靜態(tài)
//        System.out.println(num); // 錯(cuò)誤寫法!

        // 靜態(tài)方法中不能使用this關(guān)鍵字。
//        System.out.println(this); // 錯(cuò)誤寫法!
    }

}

調(diào)用格式

被static修飾的成員可以并且建議通過(guò)類名直接訪問(wèn)。雖然也可以通過(guò)對(duì)象名訪問(wèn)靜態(tài)成員,原因即多個(gè)對(duì)象均屬 于一個(gè)類,共享使用同一個(gè)靜態(tài)成員,但是不建議,會(huì)出現(xiàn)警告信息。 格式:

// 訪問(wèn)類變量 類名.類變量名; // 調(diào)用靜態(tài)方法 類名.靜態(tài)方法名(參數(shù));

靜態(tài)原理圖解

static 修飾的內(nèi)容:

  • 是隨著類的加載而加載的,且只加載一次。
  • 存儲(chǔ)于一塊固定的內(nèi)存區(qū)域(靜態(tài)區(qū)),所以,可以直接被類名調(diào)用。
  • 它優(yōu)先于對(duì)象存在,所以,可以被所有對(duì)象共享。

靜態(tài)代碼塊

靜態(tài)代碼塊:定義在成員位置,使用static修飾的代碼塊{ }。 位置:類中方法外。 執(zhí)行:隨著類的加載而執(zhí)行且執(zhí)行一次,優(yōu)先于main方法和構(gòu)造方法的執(zhí)行。 格式:

public class ClassName{ static { // 執(zhí)行語(yǔ)句 } }

作用:給類變量進(jìn)行初始化賦值。用法演示,代碼如下:

public class Game {
    public static int number;
    public static ArrayList<String> list;
    static {
        // 給類變量賦值
        number = 2;
        list = new ArrayList<String>();
        // 添加元素到集合中
        list.add("張三");
        list.add("李四");
    }
}

小貼士: static 關(guān)鍵字,可以修飾變量、方法和代碼塊。在使用的過(guò)程中,其主要目的還是想在不創(chuàng)建對(duì)象的情況 下,去調(diào)用方法。

到此這篇關(guān)于詳解Java中static關(guān)鍵字的使用和原理的文章就介紹到這了,更多相關(guān)Java static關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java的HashMap源碼解析

    Java的HashMap源碼解析

    這篇文章主要介紹了Java的HashMap源碼解析,HashMap是一個(gè)用于存儲(chǔ)Key-Value鍵值對(duì)的集合,每一個(gè)鍵值對(duì)是一個(gè)Node,后臺(tái)是用一個(gè)Node數(shù)組來(lái)存放數(shù)據(jù),這個(gè)Node數(shù)組就是HashMap的主干,需要的朋友可以參考下
    2023-11-11
  • JAVA中實(shí)現(xiàn)鏈?zhǔn)讲僮鳎ǚ椒ㄦ湥┑暮?jiǎn)單例子

    JAVA中實(shí)現(xiàn)鏈?zhǔn)讲僮鳎ǚ椒ㄦ湥┑暮?jiǎn)單例子

    這篇文章主要介紹了JAVA中實(shí)現(xiàn)鏈?zhǔn)讲僮鞯睦?模仿jQuery的方法鏈實(shí)現(xiàn),需要的朋友可以參考下
    2014-04-04
  • 關(guān)于SpringBoot3.x中spring.factories功能被移除的解決方案

    關(guān)于SpringBoot3.x中spring.factories功能被移除的解決方案

    這篇文章主要介紹了SpringBoot3.x中spring.factories功能被移除的解決方案,在配置好相關(guān)依賴、最小啟動(dòng)類和配置之后,發(fā)現(xiàn)項(xiàng)目無(wú)法啟動(dòng),于是根據(jù)啟動(dòng)上下文日志和按行DEBUG找到原因并且在等待組件升級(jí)兼容之前進(jìn)行臨時(shí)性解決,需要的朋友可以參考下
    2022-12-12
  • Java采用setAsciiStream方法檢索數(shù)據(jù)庫(kù)指定內(nèi)容實(shí)例解析

    Java采用setAsciiStream方法檢索數(shù)據(jù)庫(kù)指定內(nèi)容實(shí)例解析

    這篇文章主要介紹了Java采用setAsciiStream方法檢索數(shù)據(jù)庫(kù)指定內(nèi)容,是比較實(shí)用的功能,需要的朋友可以參考下
    2014-08-08
  • Java?將PDF轉(zhuǎn)為HTML時(shí)保存到流的方法和步驟

    Java?將PDF轉(zhuǎn)為HTML時(shí)保存到流的方法和步驟

    本文介紹如何通過(guò)Java后端程序代碼將PDF文件轉(zhuǎn)為HTML,并將轉(zhuǎn)換后的HTML文件保存到流,下面是實(shí)現(xiàn)轉(zhuǎn)換的方法和步驟,感興趣的朋友一起看看吧
    2022-01-01
  • Java實(shí)現(xiàn)簡(jiǎn)易版聯(lián)網(wǎng)坦克對(duì)戰(zhàn)小游戲(附源碼)

    Java實(shí)現(xiàn)簡(jiǎn)易版聯(lián)網(wǎng)坦克對(duì)戰(zhàn)小游戲(附源碼)

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)簡(jiǎn)易版聯(lián)網(wǎng)坦克對(duì)戰(zhàn)小游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java中的Unsafe在安全領(lǐng)域的使用總結(jié)和復(fù)現(xiàn)(實(shí)例詳解)

    Java中的Unsafe在安全領(lǐng)域的使用總結(jié)和復(fù)現(xiàn)(實(shí)例詳解)

    unsafe里面有很多好用的方法,比如allocateInstance可以直接創(chuàng)建實(shí)例對(duì)象,defineAnonymousClass可以創(chuàng)建一個(gè)VM匿名類(VM?Anonymous?Class),以及直接從內(nèi)存級(jí)別修改對(duì)象的值。這篇文章主要介紹了Java中的Unsafe在安全領(lǐng)域的一些應(yīng)用總結(jié)和復(fù)現(xiàn),需要的朋友可以參考下
    2022-03-03
  • Java動(dòng)態(tài)代理四種實(shí)現(xiàn)方式詳解

    Java動(dòng)態(tài)代理四種實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Java四種動(dòng)態(tài)代理實(shí)現(xiàn)方式,對(duì)于開始學(xué)習(xí)java動(dòng)態(tài)代理或者要復(fù)習(xí)java動(dòng)態(tài)代理的朋友來(lái)講很有參考價(jià)值,有感興趣的朋友可以參考一下
    2021-04-04
  • 深入了解java-jwt生成與校驗(yàn)

    深入了解java-jwt生成與校驗(yàn)

    這篇文章主要介紹了深入了解java-jwt生成與校驗(yàn),Json web token(JWT)是為了網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開發(fā)標(biāo)準(zhǔn)(RFC 7519),該token被設(shè)計(jì)為緊湊且安全的,特別適用于分布式站點(diǎn)的單點(diǎn)登陸(SSO)場(chǎng)景。,需要的朋友可以參考下
    2019-06-06
  • SpringBoot中注解@AliasFor的使用詳解

    SpringBoot中注解@AliasFor的使用詳解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot中注解@AliasFor的用法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-05-05

最新評(píng)論