亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java入門面試題有哪些

發布時間:2021-08-08 18:21:53 來源:億速云 閱讀:140 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“java入門面試題有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“java入門面試題有哪些”這篇文章吧。

1. 談談你對面向對象的了解? (談談你對面向對象和面向過程的了解?)

面向對象與面向過程相比較,面向過程注重事件的步驟與順序,比較直接高效,面向對象注重事件參與的對象與對象各己需要做的事,更易于復用,維護與擴展。(以舉例來說明更加形象)

(例:拿常見手機支付來看)

面向過程:1,手機掃碼——>2,輸入密碼——>3,確認是否支付成功——>4,離開

面向對象:拆出人與手機二個對象,(人:輸入密碼,離開,手機:手機掃碼,確認是否支付成功)

下面就要談談面向對象的三大特征:封裝。繼承與多態

封裝的意義:明確標識出允許外部使用的屬性與方法,內部細節對外部隱藏,外部調用無需修改和關心內部如何實現。

繼承:繼承父類(基類)的方法,不包括私有化的部分,引用父類的方法或者按自己需求進行修改與擴展。

多態:(條件:1,在繼承的基礎上,2,存在方法重寫,3,父類的引用指向子類的對象),基于對象所屬類的不同,子類對父類同一個方法的調用,實際執行的邏輯不同。(無法調用調用子類特有的方法)。

2.==與equals的比較(筆試中常見)

==:比較的是棧中的值,基本上就是比較的變量當中的值,引用類型是堆中的內存對象地址、

equals:Object默認采用“==”比較,通常繼承后會進行重寫比較的為對象的內容(例如String)。

例題:

public class Taxi {
    public static void main(String[] args) {
        String str1="hello";
        String str2=new String("hello");
        String str3=str2;
        System.out.println(str1==str2);//false
        System.out.println(str1==str3);//false
        System.out.println(str2==str3);//true
        System.out.println(str1.equals(str2));//true
        System.out.println(str1.equals(str3));//true
        System.out.println(str2.equals(str3));//true
    }
}

解析:在Java中字符串是對象,字符串在生成時其實是在內存常量池當中生成。所以str1指向的“hello”的對象內存地址,str2因為new關鍵字在堆中開辟內存,但內存指向常量池中的“hello”,str2指向開辟內存的對象地址。str3==str2,所以str3指向str2指向開辟內存的對象地址。因為str1與str2和str1與str3“==”比較內存地址不同返回flase,str2與str3的內存地址相同返回ture,字符串方法中equals重寫過,比較的是內容,str1與str2與str3的內容相同為“hello”,所以返回的是ture.

3.fianl關鍵字

final的作用:

該類不能被繼承
方法該方法不能被重寫,但可以重載
變量變量一旦被賦值就不能修改
成員變量(普通)在聲明的時候就需要賦值,或者靜態塊中與構造函數中賦值
成員變量(靜態)在聲明的時候就需要賦值,或者靜態塊中賦值
局部變量系統不會給變量初始化,必須程序員寫入,在初始化時不會報錯,但在使用前一定要初始化,不然報錯
基本數據類型基本數據類型的數值初始化后不能改變
引用數據類型初始化后不能指向另一個對象,但引用的值是可以改變的

4.為什么局部內部類與匿名內部類只能訪問局部的final變量?

首先必須知道,內部類與外部類,內部類不會因為定義在方法中,跟方法執行完一起回收,就會產生一個問題,外部方法結束時,就會回收局部變量,但內部類對象(當沒有引用時回收)還存在,就存在了一個問題,內部類訪問了一個不存在的變量,所以在jdk當中為了解決這個辦法,局部就復制了一份內部類成員變量,當局部變量回收后仍可以訪問局部變量,但實際訪問的是“copy”過的值。(為了復制的局部變量必須與原局部變量一樣,所以使用final修飾)

public class Management {
    private int id=10;
    //final修飾局部變量
    public void outPrint(final String x){
        class InClass{
            public void Inprint(){
                System.out.println(x);
                System.out.println(id);
            }
        }
        new InClass().Inprint();
    }
    public static void main(String[] args) {
       Management m=new Management();
        m.outPrint("小羅");
    }
}

5.String,StringBuffer,StringBuilder 三者的區別與使用場景?

String:final修飾的,不可變的,每次操作會產生新的對象。

StringBuffer,StringBuilder:對原對象進行操作,不產生新對象。

性能上:StringBuilder (線程不安全)> StringBuffer(線程安全) > String

使用場景:當需要對字符串內容進行多次改變時,使用StringBuffer,StringBuilder。但因為性能原因優先使用StringBuilder ,需要多線程,共享變量時使用StringBuffer。

6.重載和重寫(覆蓋)的區別?

重載:發生在類當中,方法名稱必須相同,參數的類型,個數順序不同。方法返回值與修飾符可以不同。(下圖:不是重載,方法名稱必須相同,參數的類型,個數順序相同,重載與返回值沒有關系)

 public void outPrint(String x,int i){
       
    }
public int outPrint(String x,int i){
       //這個不是重載,編譯時會報錯 
    }

重寫(覆蓋):發生在繼承的父類與子類當中,方法名與參數列表必須相同,返回值的范圍小于等于父類,如果存在異常,拋出異常范圍小于等于父類,修飾符的權限必須大于等于父類。如果父類方法以private修飾則子類不能重寫該方法。

7.接口與抽象類的區別?

1,抽象類可以存在普通成員函數,而接口只能存在public abstract 方法,

2,抽象類只能繼承一個,而接口可以s實現多個。

3,抽象類中成員變量可以是任何類型,而接口中成員變量只能是public static final 類型的。

(高級:接口設計的目的:是對類行為進行約束,抽象類的目的:提高代碼的復用性,抽象類不允許實例化)

使用場景:當你關注的是事務本身時,就用抽象類,當你關注操作時就使用接口。

8.list與set的區別?

list:有序,可重復的,按對象進入順序進行存儲,允許多個null對象,可以使用迭代器取出所以元素,還可以所以get方法獲取指定下標的元素。

set:無序,不可重復。只允許有一個null對象,只能使用迭代器遍歷元素。

9.hashCode與equals

equals:Object默認采用“==”比較,通常繼承后會進行重寫比較的為對象的內容(例如String)。

hashCode:定義在Object中hashCode()會獲取哈希碼(又稱為散列碼),確定哈希表表上的索引,并返回int整數。特點“根據鍵快速找到與之對應的值”

聯系與規則:

1,如果二個對象相等,hashCode一定也是相等的

2,如果二個對象相等,二個對象調用equals返回ture。

3,二個對象的hashCode一樣,他們不一定相等。

4,equals方法被覆蓋,hashCode方法也必須覆蓋。

5,hashCode默認行為是堆上的對象獨特值,如果沒有重寫hashCode(),則該類二個對象無論如何都不會相等。

10.ArryList與LinkList的區別?

ArryList:基于動態數組,連續存儲,適合下標訪問,擴容機制:因為數組長度是固定的,超過固定長度會新建立一個數組,長度擴大原來1.5倍,回收老數組。

LinkList:基于列表,可以存儲在分散的內存當中。適合插入,刪除,不適合查詢。LinkList一般使用迭代器進行遍歷。不建議使用for循環遍歷,因為每一次遍歷都會get方法,消耗性能大,不使用indexOf來返回元素索引,和遍歷元素。用indexOf遍歷list進行遍歷時,當結果為空時還遍歷這個列表。

以上是“java入門面試題有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

买车| 周至县| 阿图什市| 天柱县| 怀柔区| 全州县| 临夏市| 玉树县| 河西区| 藁城市| 洪洞县| 武清区| 保定市| 墨脱县| 红安县| 富锦市| 宿松县| 弥渡县| 四会市| 大丰市| 泊头市| 龙州县| 根河市| 延川县| 阿鲁科尔沁旗| 阳泉市| 石狮市| 玛纳斯县| 客服| 万全县| 景德镇市| 施秉县| 环江| 葵青区| 达日县| 乌拉特后旗| 沅江市| 巫溪县| 河源市| 定陶县| 温州市|