Java基礎面試題(2013超級完整版)99_第1頁
Java基礎面試題(2013超級完整版)99_第2頁
Java基礎面試題(2013超級完整版)99_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一部分 Java 的類1 .請解釋 Java 語言的跨平臺特性。解析:雖然不知道什么是跨平臺也可以使用 Java 語言進行編程,但是對于一個 Java 編程員來說,理解跨平臺特性能夠更深入掌握 Java 語言,所以企業中往往要求應聘者至少理解這個特性。參考答案:Java 的跨平臺特性也被稱為可移植性、平臺無關性,或者一次編寫處處運行。他的意思就是如果用 Java 語言編寫一個應用,那么就可以在不同平臺上運行,而不需要為不同平臺單獨運行開發。之所以能實現跨平臺的特性。主要得益于 Java 虛擬機(JVM,JVM解釋器在運行 Java 應用時根據當前平臺進行解釋,解釋成符合當前平臺規范的機器碼,

2、所以可以實現同樣的應用在不同平臺上都能運行。2 .請列舉 JAVA 語言的主要特點解析:了解一門語言,往往從熟悉該語言的主要特點開始入手,所以企業也常常通過應聘者對 JAVA語言特點的掌握程度而判斷其語言基礎是否扎實。參考答案:JAVA 語言有很多特點,主要包括跨平臺性:一個應用可以不經過修改直接運行到不同的平臺上。面向對象:JAVA 語言是一門面向對面的語言,可以使用對象的屬性和行為,可以使用面向對象的思想進行分析設計,并實現整個應用。解釋執行 JAVA 應用時,JVM 中的解釋器將解釋類文件,生成符合當前平臺的字節碼。自動回收:JAVA 應用中的垃圾回收是自動進行的,JVM 中的后臺線程將

3、監視內存中數據的使用,當內存中的數據不再被引用時,將被作為垃圾回收,而不需要程序員動手回收。3 .請說明一個 JAVAlfe 中主要包含哪幾個元素?并說明每種元素的作用。解析:無論簡單還是復雜的 JAVA 應用,都是由若干個類組成,所以類是 JAVA 應用的組成單位。了解一個類中包含的主要元素能夠對類有一個清晰的認識。一個類中往往會有五種元素,即屬性、方法、構造方法、塊以及內部類、其實塊和內部類比較少見。參考答案:JAVA 類中主要包含屬性、方法、構造方法、塊以及內部類。屬性用來定義對象的數據;方法用來定義對象的行為;構造方法可以用來創建對象;塊能夠用來在類加載時執行操作或者在每次實例化前執行

4、通用操作;內部類作為類的一個成員存在,能夠訪問外部類的屬性和方法。4、請說明構造方法的作用和特征解析:類是對象的模板,使用類往往都需要首先對類進行實例化,即創建對象。要創建對象必須使用 new 關鍵字調用構造方法(constructor)才能完成,構造方法中往往對屬性進行實例化,也可以實現其他必要的功能,如讀取屬性文件等。構造方法有獨特的特征:名字必須與類名相同且大小寫敏感,而且構造方法不能聲明返回值,這兩個特征缺一不可。使用 Eclipse 工具時,可以使用菜單 GenerateConstructor 自動生成不同的構造方法。參考答案:構造方法的作用是用來創建對象,使用 new 關鍵字調用。

5、構造方法的名字必須與類的名字相同,并且大小寫敏感,同時構造方法不能聲明返回值類型,可以使用任意一種訪問修飾符,但是不能使用其他修飾符進行修飾,如 static、final、abstract 等修飾符都可以修飾構造方法。5、什么事方法重載(overload)?解析:如果一個類的某個行為,會有不同的算法和邏輯,例如,Math 類的計算絕對值的方法,既可以計算 int 類型數值的絕對值,也可以計算 double 類型數值的絕對值。這種情況下,每種類型都定義一個不同的方法名,如 abInt、absDouble,那么類的可讀性就較差,使用時,必須熟悉處理每種類型參數所對應的方法名。然而,如果使用同一個方

6、法名,而使用不同的形式參數來區別這些方法,那么就具有很好的可讀性,如 abs(inti)、abs(doubled)等??勺x性強的代碼是企業對開發人員的基本要求,方法重載能夠使得代碼有很好的可讀性。參考答案:方法重載指的是在一個類中可以聲明多個相同名字的方法,而方法的形式參數有區別。調用這些同名的方法時,JVM 會根據實際參數的不同綁定到不同的方法。6、請列舉 Java 語言中的權限訪問修飾符,并說明每種權限的含義。解析:正確使用權限訪問修飾符,能夠有效控制類以及類成員的安全性,Java 語言中有四種訪問修飾符,包括 public、同包、protected 以及 private,一般情況下,應用

7、中的類多是 public 權限,屬性多是 private 權限,方法多是 public 權限。參考答案:Java 語言中有四種權限訪問修飾符,即 publicprotected、同包以及 private,public 表示公共權限,即任何包中都可以訪問:protected 表示受保護權限,即同包中可以訪問,同包中的子類可以訪問:同包權限是默認權限,即不顯示指明權限修飾符的時候就是同包權限,表示只有同包中可以訪問:private 是私有權限,表示只能在本類中訪問。7、請列舉 Java 語言中的八種基本數據類型,并說明每種數據類型的含義及長度。解析:數據類型在任何一門編程語言中都是很重要的知識點,

8、屬性、方法參數、方法返回值要指定各自的數據類型。Java 語言雖然是一門面向對象的語言。但是也定義了基本數據類型,基本數據類型可以直接賦值,不需要使用 new 關鍵字創建,可以直接使用運算符進行運算,編程中經常被使用,而且 Java 語言中的基本數據類型的長度固定,不會隨著平臺的不同而不同。參考答案:Java 語言的八種基本數據類型有:byte 字節型,8 位長度:short 短整型,16 位長度,int 整型,32 位長度:long 長整型,64 位長度:float 單精度浮點型。32 位長度:double雙精度浮點型,64 位長度:char 字符型,16 位長度:boolean 型,表示邏

9、輯值,有 true和 false 兩個值, 分別表示真和假8.什么叫引用類型, 引用類型和基本數據類型有什么區別?解析:很多初級程序員都能夠理解 inti=20;中的 int 是一種類型,稱為整型。而對于類似 Employeee=newEmployee。;這樣表達式中的 Employee 卻感覺無所適從。其實,任何一個類都是一種類型,如 Employee 就是一種類型,可以說變量 e 的類型就是 EmployeeoJava 語言中將類的類型稱為引用類型,即 referencetype。可以說,除了八種基本數據類型之外的類型都是引用類型,包括 API中所有的類、自定義的所有類,也包括數組。引用類

10、型和基本數據類型的直觀區別就是引用類型的變量需要使用 new 調用構造方法來賦值,而基本數據類型可以直接使用“=”號賦值。但是,引用類型中的 String 比較特殊,既可以使用 new 關鍵字賦值,也可以直接使用“=賦值,一般情況下都使用“=直接賦值。參考答案:Java 語言中除了基本數據類型之外的類型,都稱為引用類型。引用類型就是類的類型,所有的對象都是引用類型,包括數組對象。引用類型必須使用 new 調用構造方法進行賦值,引用類型的變量擁有自己的屬性和方法,可以使用圓點調用自己的屬性和方法?;緮祿愋椭苯邮褂枚栠M行賦值,且沒有自己的屬性和方法,往往都在聲明屬性或方法時使用。9.對于 S

11、tring 對象,可以使用“=賦值,也可以使用 new 關鍵字賦值,兩種方式有什么區別?解析:String 類型是實際工作中經常使用到的類型,從數據類型上劃分,String 是一個引用類型,是 API 中定義的一個類。所以 String 類型的對象可以使用 new 創建,例如 Stringname=newString(ETC);為變量 name 進行賦值,值為ETC。然而,String 類比起其他類有些特殊,可以使用“=直接賦值,如 Stringname=ETC,也是為變量 name 進行賦值,值為“ETC。這兩種賦值方式是有差別的,使用 new 賦值,永遠都是創建一個新對象,在新的內存空間初

12、始化了字符串的值;而使用“=賦值,不會每次都初始化新的字符串,而是從一個“字符串實例池”中去查找有沒有要賦值的字符串,如有則直接引用;如不存在,則初始化一個字符串,并放入“字符串實例池”。在實際編程中,往往使用“=好對 String類型變量進行賦值。參考答案:使用“=”賦值不一定每次都創建一個新的字符串,而是從“字符串實例池”中查找字符串。使用 new 進行賦值,則每次都創建一個新的字符串。10.String 類是一個“不可變類”,請解釋“不可變類”的含義。解析:String 類是一個不可變類,即 immutable 類。所謂不可變,意思是當一個字符串被初始化后,它的值就不會被改變。例如,St

13、rings=newString(hello”)為將初始化一個值為 hello 的字符串,如果調用s.toUpperCase()看起來是把 hello 變為大寫的 HELLQ 然而事實上并不會把已有的 hello 變為 HELLQ 而是在新的空間初始化一個 HELLO 字符串。也正因為有這種不可變性,所以才能支持“字符串實例池”的使用。參考答案:所謂的不可變類,就是當字符串初始化后,就不能夠被改變。ll.String 類和 StringBuffe 類有什么區別?解析:String 類是不可變類,字符串一旦初始化后,就不能被改變。而 StringBuffer 類是可變類,字符串值可以唄改變。常常在

14、實際應用中看到累死這樣的代碼:Strings=new(hello);s+=world,這兩句代碼首先創建一個字符 hello,然后將 world 追加到 hello 結尾并重新賦值給變量 s。然后,這個過程實際上是這樣的:首先創建一個 StringBuffer 對象,然后用 StringBuffer 類的 append 方法追加字符串,最后對 StringBuffer 對象調用 toString 方法合成字符串返回??梢?,使用+號連接字符串時,本質上是使用了可變的 StringBuffer 類,經變動肯定性能效率受到影響,所以建議需要追加字符串時,可以考慮直接使用 StringBuffer類。

15、 參考答案: String 類是不可變類, 即字符串值一旦初始化后就不可能改變。 StringBuffer 是可變字符串類, 類似 String的緩沖區,可以修改字符串的值。12 .StringBuffe 冰口 StringBuilde 類有什么區另解析:StringBuffer 是 JDK5 中增加的一個新類,在以前版本中不存在這個類。StringBuilder 中的方法和StringBuffer 中的方法基本相同,但是 StringBuffer 是線程安全的,而 StringBuilder 不是線程安全的,因此在不考慮同步的情況下,StringBuilder 有更好的性能。參考答案:StringBuffer 是線程安全的字符串緩沖,而 StringBuilder 不是線程安全的。13 .包裝器類型包括哪些類,有什么作用?解析: 初級程序員常常對 float 和 Float 或者 double 和 Double 感到混淆。 在 Java 語言中, 有八中基本數據類型, 即 byte、int、long、float、doublechar、booleano對應這八種基本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論