您好,登錄后才能下訂單哦!
Java有哪些基礎面試題?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
1、Java 有哪些特點?
答案:并發性,你可以在其中執行許多語句,而不必一次執行它;面向對象,基于類和面向對象的編程語言;獨立性,支持一次編寫,到處運行的獨立編程語言,即編譯后的代碼可以在支持Java的所有平臺上運行。
2、值傳遞和引用傳遞的區別是什么?
答案:值傳遞 是指在調用函數時將實際參數復制一份到函數中,這樣的話如果函數對其傳遞過來的形式參數進行修改,將不會影響到實際參數。引用傳遞 是指在調用函數時將對象的地址直接傳遞到函數中,如果在對形式參數進行修改,將影響到實際參數的值。
3、描述一下==和equals的區別。
答案:== 是Java中一種操作符,它有兩種比較方式。一是對于基本數據類型來說,==判斷的是兩邊的值是否相等。另一個是對于引用類型來說,==判斷的是兩邊的引用是否相等,也就是判斷兩個對象是否指向了同一塊內存區域。equals是Java中所有對象的父類,即 Object 類定義的一個方法。它只能比較對象,它表示的是引用雙方的值是否相等。所以記住,并不是說==比較的就是引用是否相等,equals比較的就是值,這需要區分來說的。
4、String中的equals是如何重寫的?
答案:String代表的是Java開發中的字符串,String類比較特殊,它整個類都是被final修飾的,也就是說,String不能被任何類繼承,任何 修改String字符串的方法都是創建了一個新的字符串。equals方法是Object類定義的方法,Object是所有類的父類,當然也包括String,String重寫了equals方法,下面我們來看看是怎么重寫的:
首先會判斷要比較的兩個字符串它們的引用是否相等。如果引用相等的話,直接返回 true ,不相等的話繼續下面的判斷。然后再判斷被比較的對象是否是 String 的實例,如果不是的話直接返回 false,如果是的話,再比較兩個字符串的長度是否相等,如果長度不想等的話也就沒有比較的必要了;長度如果相同,會比較字符串中的每個 字符 是否相等,一旦有一個字符不相等,就會直接返回 false。
5、為什么重寫equals方法必須重寫hashcode方法?
答案:如果在 Java 運行期間對同一個對象調用 hashCode 方法后,無論調用多少次,都應該返回相同的 hashCode,但是在不同的 Java 程序中,執行 hashCode 方法返回的值可能不一致。如果兩個對象的 equals 相等,那么 hashCode 必須相同。如果兩個對象 equals 不相等,那么 hashCode 也有可能相同,所以需要重寫 hashCode 方法,因為你不知道 hashCode 的底層構造(反正我是不知道,有大牛可以傳授傳授),所以你需要重寫 hashCode 方法,來為不同的對象生成不同的 hashCode 值,這樣能夠提高不同對象的訪問速度。hashCode 通常是將地址轉換為整數來實現的。
6、static關鍵字有什么用?
答案:static是Java中非常重要的關鍵字,static表示的概念是靜態的,在Java中,static 主要用來修飾變量,static修飾的變量能夠直接通過類名變量名來進行訪問,不用通過實例化類再進行使用。static 可以修飾代碼塊,主要分為兩種,一種直接定義在類中,使用 static{},這種被稱為靜態代碼塊,一種是在類中定義靜態內部類,使用 static class xxx 來進行定義。
7、抽象類和接口的不同點是什么?
答案:抽象級別不同:類、抽象類、接口其實是三種不同的抽象級別,抽象程度依次是 接口 > 抽象類 > 類。在接口中,只允許進行方法的定義,不允許有方法的實現,抽象類中可以進行方法的定義和實現;而類中只允許進行方法的實現,我說的方法的定義是不允許在方法后面出現 {};使用的關鍵字不同:類使用 class 來表示;抽象類使用 abstract class 來表示;接口使用 interface 來表示;變量:接口中定義的變量只能是公共的靜態常量,抽象類中的變量是普通變量。
看完上述內容,你們掌握Java有哪些基礎面試題的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。