公眾號:mywangxiao
及時(shí)發(fā)布考試資訊
分享考試技巧、復(fù)習(xí)經(jīng)驗(yàn)
新浪微博 @wangxiaocn關(guān)注微博
聯(lián)系方式 400-18-8000
基礎(chǔ)知識:
1.c++或java中的異常處理機(jī)制的簡單原理和應(yīng)用。
當(dāng)java 程序違反了java的語義規(guī)則時(shí),java虛擬機(jī)就會將發(fā)生的錯誤表示為一個異常。違反語義規(guī)則包括2種情況。一種是java類庫內(nèi)置的語義檢查。例如數(shù)組下標(biāo)越界,會引發(fā)indexoutofboundsexception;訪問null的對象時(shí)會引發(fā)nullpointerexception。另一種情況就是java允許程序員擴(kuò)展這種語義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時(shí)用throw關(guān)鍵字引發(fā)異常。所有的異常都是 java.lang.thowable的子類。
2. java的接口和c++的虛類的相同和不同處。
由于java 不支持多繼承,而有可能某個類或?qū)ο笠褂梅謩e在幾個類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩裕F(xiàn)有的單繼承機(jī)制就不能滿足要求。與繼承相比,接口有更高的靈活性,因?yàn)榻涌谥袥]有任何實(shí)現(xiàn)代碼。當(dāng)一個類實(shí)現(xiàn)了接口以后,該類要實(shí)現(xiàn)接口里面所有的方法和屬性,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是public static,所有方法默認(rèn)情況下是public.一個類可以實(shí)現(xiàn)多個接口。
3. 垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。
java 語言中一個顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得java程序員在編寫程序的時(shí)候不再需要考慮內(nèi)存管理。由于有個垃圾回收機(jī)制,java中的對象不再有“作用域”的概念,只有對象的引用才有“作用域”。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個單獨(dú)的低級別的線程運(yùn)行,不可預(yù)知的情況下對內(nèi)存堆中已經(jīng)死亡的或者長時(shí)間沒有使用的對象進(jìn)行清楚和回收,程序員不能實(shí)時(shí)的調(diào)用垃圾回收器對某個對象或所有對象進(jìn)行垃圾回收。回收機(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。
4. 請說出你所知道的線程同步的方法。
wait():使一個線程處于等待狀態(tài),并且釋放所持有的對象的lock。
sleep():使一個正在運(yùn)行的線程處于睡眠狀態(tài),是一個靜態(tài)方法,調(diào)用此方法要捕捉interruptedexception異常。
notify():喚醒一個處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時(shí)候,并不能確切的喚醒某一個等待狀態(tài)的線程,而是由jvm確定喚醒哪個線程,而且不是按優(yōu)先級。
allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。
5. 請講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用。
6. error與exception有什么區(qū)別?
error表示系統(tǒng)級的錯誤和程序不必處理的異常,
exception表示需要捕捉或者需要程序進(jìn)行處理的異常。
7. 在java中一個類被聲明為final類型,表示了什么意思?
表示該類不能被繼承,是頂級類。
8. 描述一下你最常用的編程風(fēng)格。
9. heap和stack有什么區(qū)別。
棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。
堆是棧的一個組成元素
10. 如果系統(tǒng)要使用超大整數(shù)(超過long長度范圍),請你設(shè)計(jì)一個數(shù)據(jù)結(jié)構(gòu)來存儲這種超大型數(shù)字以及設(shè)計(jì)一種算法來實(shí)現(xiàn)超大整數(shù)加法運(yùn)算)。
public class bigint()
{
int[] arrone = new arrone[1000];
string intstring="";
public int[] arr(string s)
{
intstring = s;
for(int i=0;i { 編輯推薦:
(責(zé)任編輯:xy)