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

Java面試必考的關(guān)鍵字的用法匯總

 更新時(shí)間:2023年06月08日 09:23:01   作者:小威要向諸佬學(xué)習(xí)呀  
這篇文章主要為大家詳細(xì)介紹了Java中的幾種關(guān)鍵字相關(guān)知識(shí),本文比較適合剛?cè)肟覬ava的小白以及準(zhǔn)備秋招的大佬閱讀,需要的小伙伴快收藏起來(lái)吧

Java中的this關(guān)鍵字

Java 中的 this 關(guān)鍵字是一個(gè)引用類(lèi)型變量,用于表示當(dāng)前對(duì)象的引用。當(dāng)方法中需要調(diào)用當(dāng)前對(duì)象的成員變量或成員方法時(shí),可以使用 this 關(guān)鍵字。

在 Java 類(lèi)中,實(shí)例變量和局部變量可能會(huì)有相同的名稱(chēng),因此使用 this 關(guān)鍵字可以區(qū)分它們。當(dāng)代碼中出現(xiàn) this 關(guān)鍵字時(shí),編譯器會(huì)優(yōu)先解析為實(shí)例變量,如果實(shí)例中不存在該變量,則解析為局部變量。

除了用于區(qū)分變量之外,this 關(guān)鍵字還可以用于以下幾個(gè)方面:

1.在構(gòu)造函數(shù)中調(diào)用其他的構(gòu)造函數(shù):

在類(lèi)中定義多個(gè)構(gòu)造函數(shù)時(shí),可以使用 this 關(guān)鍵字來(lái)調(diào)用同一類(lèi)中的其他構(gòu)造函數(shù),以達(dá)到代碼重用的目的。如果在一個(gè)構(gòu)造函數(shù)中調(diào)用另一個(gè)構(gòu)造函數(shù),必須將 this() 作為構(gòu)造函數(shù)的第一條語(yǔ)句使用。

2.返回當(dāng)前對(duì)象

在某些情況下,需要返回當(dāng)前對(duì)象,可以使用 this 關(guān)鍵字來(lái)實(shí)現(xiàn)。例如,在鏈?zhǔn)骄幊讨?,每個(gè)方法調(diào)用都需要返回當(dāng)前對(duì)象,這樣可以使代碼更加簡(jiǎn)潔明了。

3.傳遞當(dāng)前對(duì)象給其他方法或構(gòu)造函數(shù)

在調(diào)用其他方法或構(gòu)造函數(shù)時(shí),可以將當(dāng)前對(duì)象作為參數(shù)傳遞給它們,以便其他方法或構(gòu)造函數(shù)能夠訪問(wèn)和操作當(dāng)前對(duì)象。

Java中的super關(guān)鍵字

super 關(guān)鍵字用于訪問(wèn)父類(lèi)中的成員變量、成員方法和構(gòu)造方法,在子類(lèi)中使用 super 關(guān)鍵字可以引用父類(lèi)的成員。super 有以下幾種用法:

訪問(wèn)父類(lèi)的成員變量

public class Parent {
    public int x = 10;
}
public class Child extends Parent {
    public int x = 20;
    public void print() {
        System.out.println("Child x: " + x);
        System.out.println("Parent x: " + super.x);
    }
}
public static void main(String[] args) {
    Child child = new Child();
    child.print();
}

在上面的代碼中,Child 類(lèi)繼承了 Parent 類(lèi),并聲明了一個(gè)同名的 x 變量。通過(guò) super.x 可以訪問(wèn)父類(lèi)中的 x 值。

訪問(wèn)父類(lèi)的成員方法

public class Parent {
    public void hello() {
        System.out.println("Hello from parent");
    }
}
public class Child extends Parent {
    public void hello() {
        super.hello();
        System.out.println("Hello from child");
    }
}
public static void main(String[] args) {
    Child child = new Child();
    child.hello();
}

在上面的代碼中,Child 類(lèi)重寫(xiě)了 Parent 類(lèi)的 hello() 方法,使用 super.hello() 調(diào)用了父類(lèi)中的方法并在子類(lèi)中添加了自己的實(shí)現(xiàn)。

調(diào)用父類(lèi)的構(gòu)造方法

public class Parent {
    public Parent(int x) {
        System.out.println("Parent constructor with x = " + x);
    }
}
public class Child extends Parent {
    public Child() {
        super(10);
    }
}
public static void main(String[] args) {
    Child child = new Child();
}

在上面的代碼中,Child 類(lèi)調(diào)用了父類(lèi)中的有參構(gòu)造函數(shù),使用 super(10) 可以傳遞參數(shù)給父類(lèi)的構(gòu)造方法。

需要注意的是,super 關(guān)鍵字必須放在子類(lèi)構(gòu)造方法的第一行,而且只能使用一次。同時(shí),如果子類(lèi)沒(méi)有顯式地調(diào)用父類(lèi)的構(gòu)造函數(shù),Java 編譯器會(huì)隱式地插入一個(gè)父類(lèi)默認(rèn)構(gòu)造函數(shù)的調(diào)用語(yǔ)句。

Java中的static關(guān)鍵字

在Java中,static關(guān)鍵字可以用來(lái)修飾類(lèi)的成員變量、方法和代碼塊。當(dāng)用Static修飾類(lèi)的成員時(shí),它代表這個(gè)成員屬于整個(gè)類(lèi),而不是某個(gè)對(duì)象實(shí)例。換句話(huà)說(shuō),無(wú)論創(chuàng)建多少個(gè)對(duì)象,靜態(tài)成員只會(huì)被創(chuàng)建一次并共享。

下面我們來(lái)詳細(xì)介紹Java中static關(guān)鍵字的幾種用法:

靜態(tài)變量

被static修飾的成員變量稱(chēng)為靜態(tài)變量或者類(lèi)變量。靜態(tài)變量存儲(chǔ)在靜態(tài)存儲(chǔ)區(qū),不屬于任何一個(gè)對(duì)象,僅在程序執(zhí)行期間存在一份內(nèi)存。除非顯式地對(duì)它賦值,否則它默認(rèn)被初始化為0或null。

public class Example {
    static int age;
    public static void main(String[] args){
        System.out.println(age);    //輸出0
    }
}

靜態(tài)方法

被static修飾的方法稱(chēng)為靜態(tài)方法或類(lèi)方法。它們被設(shè)計(jì)成僅與類(lèi)本身有關(guān)聯(lián)。靜態(tài)方法中不能使用this和super關(guān)鍵字,因?yàn)樗鼈兌寂c具體的對(duì)象相關(guān)。既然靜態(tài)方法不依賴(lài)于對(duì)象,所以它可以在沒(méi)有任何實(shí)例的情況下被調(diào)用。

public class Example {
    public static void show(){
        System.out.println("This is a static method");
    }
    public static void main(String[] args){
        Example.show(); //無(wú)需實(shí)例化就可以調(diào)用Static方法
    }
}

靜態(tài)代碼塊

靜態(tài)代碼塊稱(chēng)為類(lèi)初始化塊,在類(lèi)被加載時(shí)自動(dòng)執(zhí)行。它們僅能訪問(wèn)靜態(tài)成員并支持使用static關(guān)鍵字來(lái)聲明變量和方法。

public class Example {
    static{
        System.out.println("This is a Static Block");
    }
    public static void main(String[] args){
        System.out.println("Main method Executed..");
    }
}

上面是Java中對(duì)Static關(guān)鍵字的三種常見(jiàn)應(yīng)用,但是我們?cè)谑褂玫倪^(guò)程中還需要注意以下幾點(diǎn):

靜態(tài)方法只能訪問(wèn)到類(lèi)變量和其他靜態(tài)方法。

非靜態(tài)方法可以訪問(wèn)到類(lèi)變量,非靜態(tài)變量,其他非靜態(tài)方法和靜態(tài)變量/方法。

Static方法不能以任何方式引用當(dāng)前對(duì)象的實(shí)例。 不能在靜態(tài)方法內(nèi)部使用this關(guān)鍵字,或者向它傳遞任何參數(shù)。

Java中的final關(guān)鍵字

在Java中,final關(guān)鍵字可以用來(lái)修飾類(lèi)、方法以及變量。它表示其修飾的內(nèi)容不可改變,對(duì)于類(lèi)、方法和變量分別有不同的含義:

1.final修飾類(lèi)

被final修飾的類(lèi)不能被繼承,即該類(lèi)不允許有子類(lèi)。通常情況下使用final類(lèi)是為了防止子類(lèi)修改父類(lèi)的行為,從而確保類(lèi)的安全性和一致性。例如,在Java Collection Framework中的很多類(lèi)都被聲明為final。

final class Example {
    //....
}

2.final修飾方法

被final修飾的方法不能被子類(lèi)重寫(xiě),也就是說(shuō),該方法已經(jīng)是最終實(shí)現(xiàn)。與final類(lèi)一樣,這種行為也能夠有效保護(hù)代碼的完整性和安全性。但需要注意的是,final方法并不一定要有方法體,因?yàn)樗鼈兛赡苤皇且恍┙涌谝?guī)范。

class Example {
    public final void show(){
        System.out.println("This method is final and can't be overriden");
    }
}

3.final變量

被final修飾的變量稱(chēng)為常量,其賦值后不能再被修改。常量可以在運(yùn)行時(shí)初始化,也可以在編譯時(shí)通過(guò)直接賦值或構(gòu)造函數(shù)進(jìn)行初始化。Java開(kāi)發(fā)人員通常將常量用于在程序中使用固定的數(shù)值或字符串。傳統(tǒng)上我們推薦使用大寫(xiě)字母來(lái)表示常量。

final int AGE = 20;
final String NAME = "Xiaowei";

我們需要注意,當(dāng)final變量引用一個(gè)對(duì)象時(shí),只是意味著該變量不能在執(zhí)行期間重新指向另一個(gè)對(duì)象,而并不阻止對(duì)象本身的狀態(tài)被修改。

以上就是Java面試必考的關(guān)鍵字的用法匯總的詳細(xì)內(nèi)容,更多關(guān)于Java關(guān)鍵字的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用IDEA如何把Java程序打包成jar

    使用IDEA如何把Java程序打包成jar

    這篇文章主要介紹了使用IDEA把Java程序打包成jar,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • Mybatis-Plus如何實(shí)現(xiàn)時(shí)間日期的比較

    Mybatis-Plus如何實(shí)現(xiàn)時(shí)間日期的比較

    文章主要討論了在使用Mybatis-Plus進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)時(shí),如何正確處理日期和時(shí)間的比較,作者強(qiáng)調(diào)了使用數(shù)據(jù)庫(kù)函數(shù)進(jìn)行比較的重要性,避免了直接將時(shí)間轉(zhuǎn)換為字符串進(jìn)行比較的錯(cuò)誤,同時(shí),作者建議在需要比較天數(shù)時(shí)使用LocalDate
    2024-11-11
  • 18個(gè)Java8日期處理的實(shí)踐(太有用了)

    18個(gè)Java8日期處理的實(shí)踐(太有用了)

    這篇文章主要介紹了18個(gè)Java8日期處理的實(shí)踐(太有用了),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • java判斷用戶(hù)輸入的是否至少含有N位小數(shù)的實(shí)例

    java判斷用戶(hù)輸入的是否至少含有N位小數(shù)的實(shí)例

    下面小編就為大家分享一篇java判斷用戶(hù)輸入的是否至少含有N位小數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Java依賴(lài)注入容器超詳細(xì)全面講解

    Java依賴(lài)注入容器超詳細(xì)全面講解

    依賴(lài)注入(Dependency Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個(gè)概念。具體含義是:當(dāng)某個(gè)角色(可能是一個(gè)Java實(shí)例,調(diào)用者)需要另一個(gè)角色(另一個(gè)Java實(shí)例,被調(diào)用者)的協(xié)助時(shí),在 傳統(tǒng)的程序設(shè)計(jì)過(guò)程中,通常由調(diào)用者來(lái)創(chuàng)建被調(diào)用者的實(shí)例
    2023-01-01
  • DoytoQuery中的查詢(xún)映射方案詳解

    DoytoQuery中的查詢(xún)映射方案詳解

    這篇文章主要為大家介紹了DoytoQuery中的查詢(xún)映射方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Java經(jīng)典面試題匯總:Spring

    Java經(jīng)典面試題匯總:Spring

    本篇總結(jié)的是Spring框架相關(guān)的面試題,后續(xù)會(huì)持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實(shí)習(xí)生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯(cuò)誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • 一篇文章帶你玩轉(zhuǎn)go語(yǔ)言的接口

    一篇文章帶你玩轉(zhuǎn)go語(yǔ)言的接口

    這篇文章主要介紹了go語(yǔ)言的接口,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧,希望能夠給你帶來(lái)幫助
    2021-09-09
  • Spring Boot系列教程之死信隊(duì)列詳解

    Spring Boot系列教程之死信隊(duì)列詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot系列教程之死信隊(duì)列的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • mac安裝配置jdk環(huán)境變量

    mac安裝配置jdk環(huán)境變量

    這篇文章主要為大家介紹了mac安裝配置jdk環(huán)境變量實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論