java面試基礎題(二)

十一、switch 是否能做用在byte 上,是否能做用在long 上,是否能做用在String上?算法

 * switch可做用於char byte short int
 * switch可做用於char byte short int對應的包裝類
 * switch不可做用於long double float boolean,包括他們的包裝類
 * switch中能夠是字符串類型,String(jdk1.7以後才能夠做用在string上)編程

 * switch中能夠是枚舉類型數組

十二、用最有效率的方法計算2乘以8?安全

 

   2 << 3,編程語言

  //計算2*8=2*2System.out.println(2<<3);//8=2的3次方爲8ide

  //計算2*16=2*2System.out.println(2<<4);//16=2的4次方爲16函數

1三、數組有沒有length()方法?String有沒有length()方法?ui

   數組沒有length()方法,有length的屬性。String有length()方法。集合求長度用size()方法線程

1四、在Java中,如何跳出當前的多重嵌套循環?
code

在 Java 中,要想跳出多重循環,能夠在外面的循環語句前定義一個標號,而後在裏層循環體的代碼中

使用帶有標號的 break 語句,便可跳出外層循環

1五、構造器(constructor)是否可被重寫(override)?

 

構造器Constructor不能被繼承,所以不能重寫Override,但能夠被重載Overload。

Constructor不能被繼承,因此Constructor也就不能被override。每個類必須有本身的構造函數,負責構造本身這部分的構造。子類不會覆蓋父類的構造函數,相反必須負責在一開始調用父類的構造函數。

1六、兩個對象值相同(x.equals(y) == true),但卻可有不一樣的hash code,這句話對不對?

  也對,也不對。得看你的hash算法依賴哪些,若是不只僅依賴於值,那確定就不一樣

1七、是否能夠繼承String類?

 不能夠,由於String類有final修飾符,而final修飾的類是不能被繼承的,public final class String

1八、當一個對象被看成參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏究竟是值傳遞仍是引用傳遞?

是值傳遞。Java編程語言只有值傳遞參數。當一個對象實例做爲一個參數被傳遞到方法中時,參數的值就是該對象的引用一個副本。指向同一個對象,對象的內容能夠在被調用的方法中改變,但對象的引用是永遠不會改變的。

1九、String和StringBuilder、StringBuffer的區別?

String的長度是不可變的;StringBuffer 的長度是可變的,若是你對字符串中的內容常常進行操做,特別是內容要修改時,那麼使用StringBuffer,若是最後須要String,那麼使用StringBuffer 的toString()方法;線程安全;StringBuilder 是從JDK 5 開始,爲StringBuffer 該類補充了一個單個線程使用的等價類;一般應該優先使用StringBuilder 類,由於它支持全部相同的操做,但因爲它不執行同步,因此速度更快

20、重載(Overload)和重寫(Override)的區別。重載的方法可否根據返回類型進行區分?

 

方法的重寫Overriding 和重載Overloading 是Java 多態性的不一樣表現。重寫Overriding 是父類與子類之間多態性的一種表現,重載Overloading 是一個類中多態性的一種表現。若是在子類中定義某方法與其父類有相同的名稱和參數,咱們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被「屏蔽」了。若是在一個類中定義了多個同名的方法,它們或有不一樣的參數個數或有不一樣的參數類型,則稱爲方法的重載(Overloading)。Overloaded 的方法是能夠改變返回值的類型。

相關文章
相關標籤/搜索