国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java八股文面試[java基礎(chǔ)]—— 重載 和 重寫

這篇具有很好參考價值的文章主要介紹了java八股文面試[java基礎(chǔ)]—— 重載 和 重寫。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

java八股文面試[java基礎(chǔ)]—— 重載 和 重寫,java八股文,面試,職場和發(fā)展

?java八股文面試[java基礎(chǔ)]—— 重載 和 重寫,java八股文,面試,職場和發(fā)展

java八股文面試[java基礎(chǔ)]—— 重載 和 重寫,java八股文,面試,職場和發(fā)展

Overload Override Overwrite三者區(qū)別:

java八股文面試[java基礎(chǔ)]—— 重載 和 重寫,java八股文,面試,職場和發(fā)展

?

Java中,有一個名叫方法簽名的東西,它的定義是這樣的

Definition: Two of the components of a method declaration comprise the method signature—the method’s name and the parameter types.

大概意思是,方法簽名有兩部分組成——方法名和參數(shù)列表

我上面的函數(shù)的方法簽名就是 hand(int a,int b) ?而簡單來說,JVM就是通過方法簽名來決定去調(diào)用哪一個方法的,而從方法簽名的組成部分來說,返回類型并不在方法簽名中,所以當(dāng)一個類中出現(xiàn)方法名參數(shù)列表相同,只有返回類型不同時,JVM無法根據(jù)方法簽名來確定該調(diào)用哪一個方法,所以會報錯。

參考:https://blog.csdn.net/qq_53574615/article/details/130379554

擴展:

可以通過修改字節(jié)碼,把函數(shù)修改成同名:?

構(gòu)造兩個不同名字 相同參數(shù)的成員函數(shù):

public class OverWrite {
    public String getString(String str) {
        return str;
    }

    public void getString1(String str) {
        return;
    }
}

通過javap -v 命令查看字節(jié)碼:

D:\Program Files\Java\jdk1.8.0_331\bin>javap.exe -v D:\project\test\out\production\test\OverWrite.class
Classfile /D:/project/test/out/production/test/OverWrite.class
  Last modified 2023-8-17; size 504 bytes
  MD5 checksum 40c07ae9b391609cd8fb00b3d2924ce2
  Compiled from "OverWrite.java"
public class OverWrite
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER
Constant pool:
   #1 = Methodref          #3.#19         // java/lang/Object."<init>":()V
   #2 = Class              #20            // OverWrite
   #3 = Class              #21            // java/lang/Object
   #4 = Utf8               <init>
   #5 = Utf8               ()V
   #6 = Utf8               Code
   #7 = Utf8               LineNumberTable
   #8 = Utf8               LocalVariableTable
   #9 = Utf8               this
  #10 = Utf8               LOverWrite;
  #11 = Utf8               getString
  #12 = Utf8               (Ljava/lang/String;)Ljava/lang/String;
  #13 = Utf8               str
  #14 = Utf8               Ljava/lang/String;
  #15 = Utf8               getString1
  #16 = Utf8               (Ljava/lang/String;)V
  #17 = Utf8               SourceFile
  #18 = Utf8               OverWrite.java
  #19 = NameAndType        #4:#5          // "<init>":()V
  #20 = Utf8               OverWrite
  #21 = Utf8               java/lang/Object
{
  public OverWrite();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: invokespecial #1                  // Method java/lang/Object."<init>":()V
         4: return
      LineNumberTable:
        line 1: 0
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       5     0  this   LOverWrite;

  public java.lang.String getString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
         0: aload_1
         1: areturn
      LineNumberTable:
        line 3: 0
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       2     0  this   LOverWrite;
            0       2     1   str   Ljava/lang/String;

  public void getString1(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
         0: return
      LineNumberTable:
        line 7: 0
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       1     0  this   LOverWrite;
            0       1     1   str   Ljava/lang/String;
}
SourceFile: "OverWrite.java"

可以看到getString 和 getString1 的兩個函數(shù)定義

java八股文面試[java基礎(chǔ)]—— 重載 和 重寫,java八股文,面試,職場和發(fā)展

可以通過字節(jié)碼修改工具把getString1改成getString,實際class還是可以跑的。?

Main函數(shù)中記錄了調(diào)用的返回值信息:

java八股文面試[java基礎(chǔ)]—— 重載 和 重寫,java八股文,面試,職場和發(fā)展

?所以即使OverWrite.class中有兩個同名不同返回值的函數(shù),JVM可以進行正常跑,只不過java編譯器做了如此限定。

?知識來源:

【基礎(chǔ)】重載和重寫的區(qū)別_嗶哩嗶哩_bilibili

【2023年面試】Java中重寫和重載的區(qū)別_嗶哩嗶哩_bilibili

【23版面試突擊】Overload、Override、Overwrite的區(qū)別_嗶哩嗶哩_bilibili文章來源地址http://www.zghlxwxcb.cn/news/detail-653992.html

到了這里,關(guān)于java八股文面試[java基礎(chǔ)]—— 重載 和 重寫的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 前端基礎(chǔ)面試題八股文

    前端基礎(chǔ)面試題八股文

    代碼結(jié)構(gòu): 使頁面在沒有css的情況下,也能夠呈現(xiàn)出好的內(nèi)容結(jié)構(gòu) 有利于SEO: 爬蟲根據(jù)標簽來分配的權(quán)重,因此可以和搜索引擎建立良好的溝通,幫助爬蟲抓取更多的有效信息 方便其他設(shè)備解析: 如屏幕閱讀器、盲人閱讀器、移動設(shè)備等,以有意義的方式來渲染頁面 便于

    2024年02月07日
    瀏覽(21)
  • Java 面試八股文

    參考: 2023年 Java 面試八股文(20w字)_json解析失敗_leader_song的博客-CSDN博客

    2024年02月13日
    瀏覽(26)
  • Java面試必備八股文

    Java面試必備八股文

    1.1)Java有哪幾種數(shù)據(jù)類型 基本數(shù)據(jù)類型:byte(1字節(jié)) short(2字節(jié)) int(4字節(jié)) long(8字節(jié)) float(4字節(jié)) double(8字節(jié)) char(2字節(jié)) boolean(1字節(jié)) 引用數(shù)據(jù)類型:String 類 接口 抽象類 枚舉 數(shù)組 1.2)JVM、JRE和JDK的關(guān)系 JVM指的是Java的虛擬機,Java程序需要運行在虛擬機上

    2023年04月08日
    瀏覽(35)
  • Java面試八股文寶典:序言

    Java作為一門廣泛應(yīng)用于企業(yè)級應(yīng)用開發(fā)的編程語言,一直以來都是技術(shù)面試中的重要話題。無論您是剛剛踏入編程世界的新手,還是經(jīng)驗豐富的Java開發(fā)工程師,都需要通過面試來展示自己的技能和知識。 在面試中,除了技術(shù)知識,還需要展現(xiàn)出解決問題、溝通能力和編程實

    2024年02月09日
    瀏覽(38)
  • 【八股文篇】Java 面試題

    【八股文篇】Java 面試題

    ?? 博主介紹 : 博主從事應(yīng)用安全和大數(shù)據(jù)領(lǐng)域,有8年研發(fā)經(jīng)驗,5年面試官經(jīng)驗,Java技術(shù)專家,WEB架構(gòu)師,阿里云專家博主,華為云云享專家,51CTO TOP紅人 Java知識圖譜點擊鏈接: 體系化學(xué)習(xí)Java(Java面試專題) ???? 感興趣的同學(xué)可以收藏關(guān)注下 , 不然下次找不到喲

    2024年02月12日
    瀏覽(26)
  • 一天吃透Java面試八股文

    一天吃透Java面試八股文

    Java是一門面向?qū)ο蟮木幊陶Z言 。面向?qū)ο蠛兔嫦蜻^程的區(qū)別參考下一個問題。 Java具有平臺獨立性和移植性 。 Java有一句口號: Write once, run anywhere ,一次編寫、到處運行。這也是Java的魅力所在。而實現(xiàn)這種特性的正是Java虛擬機JVM。已編譯的Java程序可以在任何帶有JVM的平臺

    2024年02月05日
    瀏覽(27)
  • java八股文面試[JVM]——垃圾回收

    java八股文面試[JVM]——垃圾回收

    參考:JVM學(xué)習(xí)筆記(一)_卷心菜不卷Iris的博客-CSDN博客 GC垃圾回收 面試題: JVM內(nèi)存模型 以及分區(qū),需要詳細到每個區(qū)放什么 堆里面的分區(qū):Eden,survival from to,老年代,各自的特點。 GC的三種收集方法:標記清除、標記整理、復(fù)制算法的原理與特點,分別用在什么地方 針

    2024年02月11日
    瀏覽(44)
  • 34 道 Java八股文 精選面試題

    34 道 Java八股文 精選面試題

    java 是一門 開源的跨平臺的面向?qū)ο蟮?計算機語言. ? 跨平臺是因為 java 的 class 文件是運行在虛擬機上的,其實跨平臺的,而 虛擬機是不同平臺有不同版本 ,所以說 java 是跨平臺的. 面向?qū)ο笥袔讉€特點: ? 1. 封裝 兩層含義:一層含義是把對象的屬性和行為看成一個密不可分的

    2024年02月10日
    瀏覽(28)
  • java八股文面試[多線程]——自旋鎖

    java八股文面試[多線程]——自旋鎖

    優(yōu)點: 1. ?自旋鎖盡可能的減少線程的阻塞, 這對于鎖的競爭不激烈,且占用鎖時間非常短的代碼塊來說性能能大幅度的提升,因為自旋的消耗會小于線程阻塞掛起再喚醒的操作的消耗 ?,這些操作會導(dǎo)致線程發(fā)生兩次上下文切換! 2. 非自旋鎖在獲取不到鎖的時候會進入阻

    2024年02月10日
    瀏覽(31)
  • java八股文面試[JVM]——元空間

    java八股文面試[JVM]——元空間

    JAVA8為什么要增加元空間 為什么要移除永久代?? ? 知識來源: 【2023年面試】JVM8為什么要增加元空間_嗶哩嗶哩_bilibili

    2024年02月11日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包