每天記錄十道面試題(一)

1、面向對象的特徵有哪些方面?


       1)封裝性:封裝是將數據和過程包裹起來,用戶只是可以知道並使用對象的屬性和方法,並不知道對象的具體實現。對象以外的部分不能隨意存取對象內部的數據。在封裝的對象內部可以改變其結構或實現方法,只要對象的接口沒有變化,則代碼的其它部分也不需要處理。這樣使錯誤局部化,大大提高了程序的可維護性,並且降低了查錯改錯的難度。

2)繼承性:繼承是有聯繫的類所構成的層次模型。它可以重用類,並且提供了明確表達共性的方式,即原始類的派生類(子類)可以從基類(父類)那裏繼承方法和實例變量,並且類可以修改或增加新的方法使之更適合特殊的需要。這樣使設計新類的過程大大簡化。

3)多態性:多態是在父類中定義的屬性和方法被子類繼承之後,可以具有不同的數據類型或表現出不同的行爲。多態性包括參數多態性和包含多態性。Java編輯器會自動根據所傳遞的參數進行判斷,根據運行時對象的類型不同而執行不同的操作,這樣很好地解決了應用程序函數同名問題。多態性豐富了對象的內容,擴大了對象的適應性,改變了對象單一繼承的關係。

2、public,private,protected修飾符的作用域,以及不寫修飾符時的區別?


       1)使用public修飾符的變量和方法,在任何一個類中創建對象後都可以訪問到,包括當前類、同包的類、子孫類以及外包的類。

2)使用protected修飾符的變量和方法,不可以訪問外包類創建的對象。

3)不寫修飾符的變量和方法,爲默認類,只可以訪問同一個包中類創建的對象。

4)使用private修飾符的變量和方法,只能在當前類中使用。

3、String是最基本的數據類型嗎?


不是。

Java語言中數據類型劃分爲兩大類,分別是基本數據類型和引用數據類型。

基本數據類型又分爲:

整數型:字節型(byte)、短整型(short)、整形(int)、 長整型(long)

浮點數型:單精度型(float)、雙精度型(double)

字符型(char)

邏輯型(boolean)

引用數據類型又分爲:

接口、對象、類、數組、字符串String、集合等

4、float型float f=3.4是否正確?


不正確。

隱式轉換,即自動轉換,它是由小至大的轉換:

byte——》short——》int——》long——》float——》double

char——》int——》long——》float——》double

它不要求加以聲明,是系統默認的。

顯式轉換,即強制轉換,它是由大至小的轉換,它的格式爲:

類型 變量=(類型) 變量2;

在Java裏面,沒小數點的默認是int,有小數點的默認是 double,應該寫成:

float f=(float)3.4 或float f = 3.4 f

5、語句float f=1.3;編譯能否通過?


不能。

理由同上。應該用強制類型轉換,寫成float f=(float)1.3或float f = 1.3 f

6、short s1 = 1; s1 = s1 + 1;   寫法有錯嗎?


short s1 = 1; s1 = s1 + 1;有

Java規範有這樣的規則:1.高位轉低位需要強制轉換 2.低位轉高位自動轉.

i 是int 型, s1是 short型, 通過加1運算後s1 自動轉爲int 型,所以要強制轉換

short s1 = 1; s1 += 1;正確

這個不會發生類型的提升,JAVA規範上說 :

e1+=e2 實際上是 e1=(T1)(e1+e2) ,其中T1是e1的數據類型。

s1+=1等效於 s1=(short)(s1+1),所以是正確的。

注意:

將字面量(數值)直接賦值給變量時,只要沒有超出左邊類型的數據範圍,就可以直接賦值(只限於byte,short,char )

7、Java有沒有goto?


沒有。

goto和const是Java中的保留字,現在沒有在Java中使用

8、int 和 Integer 有什麼區別?


       1)Integer可以 爲null,而int不可以;

2)Integer可用於泛型,而int不可以;

3)int比Integer更高效,因爲int是在棧中直接存儲的具體數值,而Integer是堆中存儲數值的引用;

4)兩個Integer的值可以相同,但卻不相等(兩個Integer直接賦值,會自動裝箱,在-128-127的範圍有緩存,是可以等於的);

5)自動裝箱(原始數據類型轉換成引用數據類型)和自動拆箱(引用數據類型轉換成原始數據類型)

9、&和&&的區別?


運算符“&&”爲簡潔與運算符,運算符“&”爲非簡潔與運算符,它們的區別如下:

1)運算符“&&”只有在其左側爲true時,才運算其右側的邏輯表達式,否則直接返回運算結果false;

2)運算符"&"無論其在左側爲true或false,都要運算其右側的邏輯表達式,最後才返回運算結果。

10、簡述邏輯操作(&,|,^)與條件操作(&&,||)的區別?


1)條件操作只能操作布爾型,而邏輯操作不僅可以操作布爾型,而且可以操作數值型

2)邏輯操作不會產生短路。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章