Java新手必備:20道java基礎面試題,不看答案你會幾道題?

Java新手必備:20道java基礎面試題,不看答案你會幾道題?

一、面向對象的特徵有哪些方面? 【基礎】java

答:面向對象的特徵主要有如下幾個方面:面試

  1. 抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解所有問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
  2. 繼承:繼承是一種聯結類的層次模型,而且容許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類能夠從現有的類中派生,這個過程稱爲類繼承。新類繼承了原始類的特性,新類稱爲原始類的派生類(子類),而原始類稱爲新類的基類(父類)。派生類能夠從它的基類那裏繼承方法和實例變量,而且類能夠修改或增長新的方法使之更適合特殊的須要。
  3. 封裝:封裝是把過程和數據包圍起來,對數據的訪問只能經過已定義的界面。面向對象計算始於這個基本概念,即現實世界能夠被描繪成一系列徹底自治、封裝的對象,這些對象經過一個受保護的接口訪問其餘對象。
  4. 多態性:多態性是指容許不一樣類的對象對同一消息做出響應。多態性包括參數化多態性和包含多態性。多態性語言具備靈活、抽象、行爲共享、代碼共享的優點,很好的解決了應用程序函數同名問題。

二、做用域public,private,protected,以及不寫時的區別?【基礎】編程

答:區別以下:數組

做用域 當前類 同包 子孫類 其餘數據結構

public √ √ √ √ide

protected √ √ √ ×函數

default √ √ × ×code

private √ × × ×對象

不寫時默認爲default。blog

三、String 是最基本的數據類型嗎? 【基礎】

答:不是。

四、float 型float f=3.4是否正確? 【基礎】

答:不正確;精度不許確,應該用強制類型轉換,以下所示:float f=(float)3.4 。

五、語句float f=1.3;編譯可否經過?【基礎】

答:不能;應該用強制類型轉換,以下所示:float f=(float)1.3; 。

六、short s1 = 1; s1 = s1 + 1;有什麼錯?【基礎】

答:short s1 = 1; s1 = s1 + 1;s1+1運算結果是int 型,須要強制轉換類型;short s1 = 1; s1 += 1;能夠正確編譯,自動類型提高。

七、Java 有沒有goto? 【基礎】

答:goto 是java 中的保留字,如今沒有在java 中使用。

八、int 和Integer 有什麼區別? 【基礎】

答:Java 提供兩種不一樣的類型:引用類型和原始類型(或內置類型);

int 是java 的原始數據類型,Integer 是java 爲int 提供的封裝類。

Java 爲每一個原始類型提供了封裝類:

原始類型: boolean,char,byte,short,int,long,float,double

封裝類型:Boolean,Character,Byte,Short,Integer,Long,Float,Double引用類型和原始類型的行爲徹底不一樣,而且它們具備不一樣的語義。引用類型和原始類型具備不一樣的特徵和用法,它們包括:大小和速度問題,這種類型以哪一種類型的數據結構存儲,當引用類型和原始類型用做某個類的實例數據時所指定的缺省值。對象引用實例變量的缺省值爲,而原始類型實例變量的缺省值與它們的類型有關。

九、&和&&的區別?【基礎】

答:&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)。

十、簡述邏輯操做(&,|,^)與條件操做(&&,||)的區別?【基礎】

答:區別主要有兩點:a.條件操做只能操做布爾型的,而邏輯操做不只能夠操做布爾型,並且能夠操做數值型b.邏輯操做不會產生短路。

十一、heap 和stack 有什麼區別?【基礎】

答:棧是一種線形集合,其添加和刪除元素的操做應在同一段完成,棧按照後進先出的方式進行處理;堆是棧的一個組成元素。

十二、Math.round(11.5) 等於多少? Math.round(-11.5)等於多少? 【基礎】

答:Math.round(11.5)==12 Math.round(-11.5)==-11 round 方法返回與參數最接近的長整數,參數加1/2 後求其floor。

1三、swtich 是否能做用在byte 上,是否能做用在long 上,是否能做用在String上? 【基礎】

答:switch(expr1)中,expr1 是一個整數表達式。所以傳遞給switch 和case語句的參數應該是int、short、char 或者byte。long,string 都不能做用於swtich。

1四、編程題: 用最有效率的方法算出2 乘以8 等於幾? 【基礎】

答: 2 << 3。

1五、有沒有length()這個方法? String 有沒有length()這個方法?【基礎】

答:數組沒有length()這個方法,有length 的屬性。String 有length()這個方法。

1六、在JAVA 中,如何跳出當前的多重嵌套循環?【基礎】

答:在最外層循環前加label 標識,而後用break:label 方法便可跳出多重循環。

1七、構造器Constructor 是否可被override? 【基礎】

答:構造器Constructor 不能被繼承,所以不能重寫Overriding,但能夠被重載Overloading。

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

答:不對,有相同的hash code。

1九、是否能夠繼承String 類? 【基礎】

答:String 類是final 類,故不能夠繼承。

20、如下二條語句返回值爲true 的有:

A:「beijing」==「beijing」;

B:「beijing」.equalsIgnoreCase(new String(「beijing」));【基礎】

答:A 和B

相關文章
相關標籤/搜索