JAVA技術(shù)--JAVA基礎(chǔ)概念_第1頁
JAVA技術(shù)--JAVA基礎(chǔ)概念_第2頁
JAVA技術(shù)--JAVA基礎(chǔ)概念_第3頁
JAVA技術(shù)--JAVA基礎(chǔ)概念_第4頁
JAVA技術(shù)--JAVA基礎(chǔ)概念_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、1 抽象:java基礎(chǔ)面試題1 抽象:抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前 口標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其屮的一部分,暫時 不用部分細(xì)節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。2 繼承:繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了-種明確表 述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。 新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新 類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可 以修改或增加新的方法使之更適合特殊的需要。3 封裝:封裝是把

2、過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο?計算始于這個基本概念,即現(xiàn)實世界可以被描繪成一 系列完全自治、封裝的對象, 這些對象通過一個受保護的接口訪問其他對象。4. 多態(tài)性:多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和 包含多態(tài)性。多態(tài)性語言具冇靈活、抽彖、行為共享、代碼共享的優(yōu)勢,很好的 解決了應(yīng)用程序函數(shù)同名問題。5、string 和 stringbuffer 的區(qū)別java平臺提供了兩個類:string和stringbuffer,它們可以儲存和操作字符串, 即包含多個字符的字符數(shù)據(jù)。這個string類提供了數(shù)值不可改變的字符串。而這 個st

3、ringbuffer類提供的字符串進行修改。當(dāng)你知道字符數(shù)據(jù)要改變的時候你就 可以使用stringbuffero典型地,你可以使用stringbuffers來動態(tài)構(gòu)造字符數(shù)據(jù)。6、運行時異常與一般異常有何異同?異常表示程序運行過程中可能出現(xiàn)的非正常狀態(tài),運行時界常表示虛擬機的通常 操作屮可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋 出可能發(fā)生的非運行時異常,但是并不要求必須聲明拋出未被捕獲的運行時異 常。7、說出servlet的生命周期,并說出servlet和cgi的區(qū)別。servlet被服務(wù)器實例化后,容器運行其init方法,請求到達(dá)時運行其service方 法,se

4、rvice方法自動派遣運彳亍與請求對應(yīng)的doxxx方法(doget, do post)等, 當(dāng)服務(wù)器決定將實例銷毀的時候調(diào)用其destroy方法。與cgi的區(qū)別在于servlet處于服務(wù)器進程中,它通過多線程方式運行其service 方法,一個實例可以服務(wù)于多個請求,并且其實例一般不會銷毀,而cgi對每 個請求都產(chǎn)生新的進程,服務(wù)完成后就銷毀,所以效率上低于servletox說出arraylist3vector5 linkedlist的存儲性能和特性arraylist和vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素數(shù)大于實際存儲的 數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插

5、入元素要涉 及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,vector由于使用 了 synchronized方法(線程安全),通常性能上較arraylist差,而linkedlist 使用雙向鏈表實現(xiàn)存儲,按序號索引數(shù)據(jù)需要進行前向或后向遍歷,但是插入數(shù) 據(jù)時只需要記錄木項的前后項即可,所以插入速度較快。10、&和&&的區(qū)別。&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)o11 > hashmap 和 hashtable 的區(qū)別。hashmap是hashtable的輕量級實現(xiàn)(非線程安全的實現(xiàn)),他們都完成了

6、map 接口,主要區(qū)別在于hashmap允許空(null)鍵值(key),由于非線程安全, 效率上可能高于hashtable。hashmap允許將null作為一個entry的key或者value,而hashtable不允許。hashmap 把 hashtable 的 contains 方法去掉了,改成 containsvalue 和 containskeyo因為contains方法容易讓人引起誤解。hashtable 繼承自 dictionary 類,而 hashmap 是 javal 2 引進的 map interface 的一個實現(xiàn)。最大的不同是,hashtable的方法是synchron

7、ize的,而hashmap不是,在多 個線程訪問hashtable吋,不需要自己為它的方法實現(xiàn)同步,而hashmap就必 須為之提供外同步。hashtable和hashmap采用的hash/rehash算法都大概-樣,所以性能不會有 很大的差異。12、final, finally, finalize 的區(qū)別。final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可 繼承。finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的 此方法,可以覆蓋此方法捉供垃圾收集時的其他資源回收,例如關(guān)閉文件等

8、。13、sleep()和wait()有什么區(qū)別?sleep是線程類(thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時間,給執(zhí)行機會 給其他線程,但是監(jiān)控狀態(tài)依然保持,到時后會自動恢復(fù)。調(diào)用sleep不會釋放對彖鎖。wait是object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進入 等待此對象的等待鎖定池,只有針對此對彖發(fā)出notify方法(或notifyaii)后木 線程才進入對象鎖定池準(zhǔn)備獲得對象鎖進入運行狀態(tài)。14、overload 和 override 的區(qū)別。overloaded 的方法是否可以改變返值的類型?方法的重寫override和重載overload是java多態(tài)

9、性的不同表現(xiàn)。重寫overrid 是父類與子類之間多態(tài)性的一種表現(xiàn),重載overload是-個類屮多態(tài)性的一種 表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被 重寫(overrid)。了類的對象使用這個方法時,將調(diào)用了類中的定義,對它而言, 父類屮的定義如同被”屏蔽”了。如果在一個類中定義了多個同名的方法,它們 或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(0verloading)o overload的方法是可以改變返冋值的類型。15、error和exception有什么區(qū)別?error表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢 出。不可能

10、指槊程序能處理這樣的情況。exception表示一種設(shè)計或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運行正常,從 不會發(fā)生的情況。16同步和異步有何異同,在什么情況下分別使用他們?舉例說明。如果數(shù)據(jù)將在線程間共享。例如正在寫的數(shù)據(jù)以后可能被另一個線程讀到,或者 正在讀的數(shù)據(jù)可能已經(jīng)被另一個線程寫過了,那么這些數(shù)據(jù)就是共享數(shù)據(jù),必須 進行同步存取。當(dāng)應(yīng)用程序在對彖上調(diào)用了一個需要花費很長時間來執(zhí)行的方法,并且不希望讓 程序等待方法的返回時,就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往 更有效率。17、try 有一個return語句,那么緊跟在這個try后的 finally 里的code會不會被執(zhí)行,

11、什么時候被執(zhí)行,在 return前還是后?會執(zhí)行,在return前執(zhí)行。java中的異常處理機制的簡單原理和應(yīng)用。當(dāng)java程序違反了 java的語義規(guī)則時,java虛擬機就會將發(fā)生的錯誤表示 為一個異常。違反語義規(guī)則包括2種情 況。一種是java類庫內(nèi)置的語義檢查。 例如數(shù)組下標(biāo)越界,會引發(fā)indexoutofboundsexception;訪問null的對象時會引 發(fā)nullpointerexception。另-種情況就是java允許程序員擴展這種語義檢查, 程序員可以創(chuàng)建口己的異常,并自由選擇在何時用throw關(guān)鍵字引發(fā)異常。所 冇的異常都是java.iang.thowable的子類。1

12、9垃圾回收的優(yōu)點和原理。并考慮2種回收機制。java語言屮一個顯著的特點就是引入了垃圾冋收機制,使c+程序員最頭疼的 內(nèi)存管理的問題迎刃而解,它使得java程序員在編寫程序的時候不再需要考慮 內(nèi)存管理。由于有個垃圾回收機制,java中的對象不再有”作用域”的概念,只 冇對象的引用才冇”作用域“。垃圾回收可以冇效的防止內(nèi)存泄需,有效的使用可 以使用的內(nèi)存。垃圾冋收器通常是作為一個單獨的低級別的線程運行,不可預(yù) 知的情況下對內(nèi)存堆屮已經(jīng)死亡的或者長吋間沒有使用的對象進行清楚和冋收, 程序員不能實時的調(diào)用垃圾回收器對某個對象或所冇對象進行垃圾回收?;厥?機制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾

13、回收。20.請說出你所知道的線程同步的方法。wait():使一個線程處于等待狀態(tài),并且釋放所持有的對象的locko sleep():使一個正在運行的線程處于睡喂?fàn)顟B(tài),是一個靜態(tài)方法,調(diào)用此方法要 捕捉 interruptedexception 異常。notify():喚醒一個處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時候,并不能 確切的喚醒某-個等待狀態(tài)的線程,而是由jvm確定喚醒哪個線程,而且不是 按優(yōu)先級。allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個對象 的鎖,而是讓它們競爭。21.描述一下jvm加載class文件的原理機制jvm屮類的裝載是由class

14、loader和它的子類來實現(xiàn)的,java classloader是 一個重要的java運行時系統(tǒng)組件。它負(fù)責(zé)在運行時查找和裝入類文件的類。22、mvc的各個部分都有那些技術(shù)來實現(xiàn)?如何實現(xiàn)?mvc是modelviewcontroller的簡寫。”model”代表的是應(yīng)用的業(yè)務(wù)邏輯(通過javabean, ejb組件實現(xiàn)),”view”是應(yīng)用的表示面(由jsp頁面產(chǎn) 血,"controller"是提供應(yīng)用的處理過程控制(一般是一個servlet),通過這種 設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件口j以 進行交互和重用。23. list. map. set三個接口,存取元素時,各有什么特 點?list以特定次序來持冇元索,可冇重復(fù)元索。set無法擁冇重復(fù)元索,內(nèi)部排序。map 保存 key-value 值.24. struts的應(yīng)用(如struts架構(gòu))struts是采用java servlet/javaserver pages技術(shù),開發(fā)web應(yīng)用程序的開放 源碼的frameworko采用stru

溫馨提示

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

評論

0/150

提交評論