- 相關推薦
JAVA高級工程師筆試題及答案
Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。下面是小編收集的JAVA高級工程師筆試題及答案,歡迎大家參考!
JAVA高級工程師筆試題及答案
1、abstractclass和interface的區別?
抽象類可以有私有方法和變量,接口中不能有私有方法和變量。
抽象類可以有方法的實現,接口中不能有方法的實現并且所以的方法都需要實現。
2、try{}里有一個return語句,那么緊跟在這個try后的finally{}里的code會不會被執行,什么時候被執行,在return前還是后?
Finally代碼塊中的語句是必須執行的,必須在try代碼塊執行完之后執行,在return語句后執行。除非代碼塊中有System.exit();方法,因為終止了虛擬機進程,會不執行。
3、int和Integer有什么區別?
Java中提供了兩種不同類型:引用類型和原始類型。Int是原始類型,Integer是int的封裝類型。
4、說出ArrayList,Vector,LinkedList的存儲性能和特性?
ArrayList和Vector是按數組的方式存儲數據的,此數組的元素大于實際存儲的數據,以便于增加和插入元素,它們允許數組按序號索引元素,由于插入數據時涉及到移動等內存操作,所以索引數據快而插入數據慢。Vector由于使用了synchroinzed(安全性),通常性能上較ArrayList差。LinkedList使用雙向鏈表實現存儲,按索引序號前向或后向遍歷,插入數據時只需要記錄本項的前后項即可,所以插入數據速度較快。
5、描述一下JVM加載class文件的原理機制?
Java中所有的類必須加裝到jvm中才能運行,這個工作是由jvm中的類裝載器完成的,類裝載器所作工作實質是把類文件讀取到內存當中。
6、STRING與STRINGBUFFER的區別?
String在追加內容的時候不會在原有的內存區域中追加內容,而是在內存中分配一塊內存區域存放追加內容,StringBuffer不會。
7、List、Map、Set三個接口,存取元素時,各有什么特點?
List以特定順序來持有元素,元素可重復。
Set在內部排序,不允許有重復元素。
Map保存key-value值,value可有多個值。
8、談談final,finally,finalize的區別
Final可以修飾變量、方法、類。被final修飾的變量必須初始化并且不能被修改。被final修飾的方法不能被重載。被final修飾的類不能被繼承,final不能和abstract同時修飾。Finally是在異常處理是提供的,如果拋出異常,那么相匹配的catch子句就會執行,然后控制就會進入finally中。
Java允許finalize()方法在垃圾收集器將對象從內存中清除出去之前做垃圾清理工作。這個方法是垃圾收集器在確定對象沒有被引用時調用的。Finalize()方法是在刪除這個對象之前對這個對象調用的。
9、sleep()和wait()有什么區別?
Sleep()是線程類Thread方法,導致該線程在指定的時間內暫停,指定時間之后會自動恢復,該方法不會釋放對象鎖。
Wait()是Object類的方法,調用該方法是線程會進入等待狀態,直到調用notify或notfyall方法通知恢復狀態,該方法會釋放對象鎖。
10、GC是什么?為什么要有GC?
GC是java提供的垃圾回收器。
有了GC就不需要程序員人工去釋放內存空間,當虛擬機發現內存空間緊張時會自動的去清理一些無用變量所占用的內存空間。程序員也可以調用System.gc();強制執行一次清理。
JAVA筆試題
1、在java中如果聲明一個類為final,表示什么意思?
答:final是最終的意思,final可用于定義變量、方法和類但含義不同,聲明為final的類不能被繼承。
2、父類的構造方法是否可以被子類覆蓋(重寫)?
答:父類的構造方法不可以被子類覆蓋,因為父類和子類的類名是不可能一樣的。
3、請講述String 和StringBuffer的區別。
答:String 類所定義的對象是用于存放“長度固定”的字符串。
StringBuffer類所定義的對象是用于存放“長度可變動”的字符串。
4、如果有兩個類A、B(注意不是接口),你想同時使用這兩個類的功能,那么你會如何編寫這個C類呢?
答:因為類A、B不是接口,所以是不可以直接繼承的,但可以將A、B類定義成父子類,那么C類就能實現A、B類的功能了。假如A為B的父類,B為C的父類,此時C就能實現A、B的功能。
5、結合Java視頻Lesson5(多線程),分析sleep()和wait()方法的區別。
答: Sleeping睡眠的意思 : sleep() 方法用來暫時中止執行的線程。在睡眠后,線程將進入就緒狀態。
waiting等待的意思: 如果調用了 wait() 方法,線程將處于等待狀態。用于在兩個或多個線程并發運行時。
6、談談你對抽象類和接口的理解。
答:定義抽象類的目的是提供可由其子類共享的一般形式、子類可以根據自身需要擴展抽象類、抽象類不能實例化、抽象方法沒有函數體、抽象方法必須在子類中給出具體實現。他使用extends來繼承。
接口:一個接口允許一個類從幾個接口繼承而來,Java 程序一次只能繼承一個類但可以實現幾個接口,接口不能有任何具體的方法,接口也可用來定義可由類使用的一組常量。其實現方式是interface來實現。
【JAVA高級工程師筆試題及答案】相關文章:
photoshop試題「附答案」01-09
管理溝通試題及答案02-08
情商測試題及答案02-03
CAD基礎試題附答案07-17
營養師試題及答案03-09
excel試題2023「附答案」09-12
iq測試題及答案08-07
CAD練習試題「附答案」07-17
cad考試簡答試題及答案06-26