JAVA軟件工程師面試遇到的11個問題,這些你都知道嗎?

問題一: list.map.set的存儲特點?

List以特定次序來持有元素,可有重復元素.

Set無法擁有重復元素內部排序.

Map保存key-value值,value可多值

問題二:final,finally,finalize的區別

final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改被聲明為final的方法也同樣只能使用,不能被重寫。

finally—再異常處理時提供finally塊來執行任何清除操作。如果拋出一個異常 ,那么相匹配的catch子句就會執行,然后控制就會進入finally塊(如果有的話)。

finalize—方法名。Java技術允許使用finalize方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在Object類中定義的,因此所有的類都繼承了它。子類覆蓋 ;finalize方法以整理系統資源或者執行其他清理工作finalize方法是在垃圾收集器刪除對象之前對這個對象調用的。

問題三:簡單介紹下java?Spring的AOP,IOC的講述對struts2的了解,1,2的比較xml的了解 J2ee的webserviced的協議?

Spring AOP:代理機制Spring提供的自動代理機制Spring的IoC來實組件之間的依賴關系注入,使控制層與業務實現分離,即客戶通過調用業務委托接口來調用具體的業務組件的實例,避免控制層與業務層的藕合帶來的維護或升級困難。由Spring為DAO生成代理對象來為DAO添加事務服務,由IoC容器DAO的代理實例注入到業務組件中業務組件通過DAO的委托接口調用DAO對象,使得上層組件不直接依賴于DAO的實現類,使得持久層更換或修改不影響上層組件。

問題四:數據庫里面游標,索引是怎么用的?在oracle數據庫中,用get和load方法這2個方法來查沒有的數據那么分別會反饋什么樣的結果?

declare cur cursor keyset for

get返回null,loadclassnotfoundException

問題五:概述反射和序列化

Reflection是Java被視為動態(或準動態)語言的一個關鍵性質。這個機制允許程序在運行時透過Reflection

APIs取得任何一個已知名稱的class的內部信息,包括其modifiers(諸如public,

static等等)、superclass(例如Object)、實現之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于運行時改變fields內容或喚起methods。本文借由實例,大面積示范Reflection

APIs。

序列化就是一種用來處理對象流的機制,所謂對象流也就是將對象的內容進行流化。可以對流化后的對象進行讀寫操作,也可將流化后的對象傳輸于網絡之間。序列化是為了解決在對對象流進行讀寫操作時所引發的問題。

序列化的實現:將需要被序列化的類實現Serializable接口,該接口沒有需要實現的方法,implements

Serializable只是為了標注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object

obj)方法就可以將參數為obj的對象寫出(即保存其狀態),要恢復的話則用輸入流

問題六:Servlet的生命周期分為3個階段:?和CGI的區別

Servlet的生命周期主要由3個過程組成。

(1)init方法:服務器初始化servlet。

(2)service方法:初始化完畢,servlet對象調用該方法響應客戶的請求。

(3)destroy方法:調用該方法消滅servlet對象。

其中,init方法只在servlet第一次被請求加載的時候被調用一次,當有客戶再請求servlet服務時,web服務器將啟動一個新的線程,在該線程中,調用service方法響應客戶的請求。與cgi的區別在于servlet處于服務器進程中,它通過多線程方式運行其service方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成后就銷毀,所以效率上低于servlet

問題七:適配器模式與橋梁模式的區別

適配器模式把一個類的接口變換成客戶端所期待的另一種接口,從而使原本因接口不匹配而無法在一起工作的兩個類能夠在一起工作。又稱為轉換器模式、變壓器模式、包裝模式(把已有的一些類包裝起來,使之能有滿足需要的接口)。適配器模式的用意是將接口不同而功能相同或者相近的兩個接口加以轉換,包括適配器角色補充一些源角色沒有但目標接口需要的方法。就像生活中電器插頭是三相的,而電源插座是兩相的,這時需要一個三相變兩相的轉換器來滿足。比如,在JavaI/O庫中使用了適配器模式,象FileInputStream是一個適配器類,其繼承了InputStrem類型,同時持有一個對FileDiscriptor的引用。這是將一個FileDiscriptor對象適配成InputStrem類型的對象形式的適配器模式。StringReader是一個適配器類,其繼承了Reader類型,持有一個對String對象的引用。它將String的接口適配成Reader類型的接口。等等。

橋梁模式的用意是要把實現和它的接口分開,以便它們可以獨立地變化。橋梁模式并不是用來把一個已有的對象接到不相匹配的接口上的。當一個客戶端只知道一個特定的接口,但是又必須與具有不同接口的類打交道時,就應該使用橋梁模式。比如,JDBC驅動器就是一個橋梁模式的應用,使用驅動程序的應用系統就是抽象化角色,而驅動器本身扮演實現化角色。應用系統和JDBC驅動器是相對獨立的。應用系統動態地選擇一個合適的驅動器,然后通過驅動器向數據庫引擎發出指令就可以訪問數據庫中的數據。

工廠模式

工廠模式:工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的數據生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類并且實現了相同的方法,但是這些方法針對不同的數據進行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現了基類中的方法。然后需要定義一個工廠類,工廠類可以根據條件生成不同的子類實例。當得到子類的實例后,開發人員可以調用基類中的方法而不必考慮到底返回的是哪一個子類的實例。

問題八:抽象類能否被實例化 ?抽象類的作用是什么?

抽象類一般不能被實例化;抽象類通常不是由程序員定義的,而是由項目經理或模塊設計人設計抽象類的原因通常是為了規范方法名抽象類必須要繼承,不然沒法用,作為模塊設計者,可以把讓底層程序員直接用得方法直接調用,而一些需要讓程序員覆蓋后自己做得方法則定義稱抽象方法

問題九:newArrayList(10)含義

內存中連續分配了用來存在Object對象的數組;

問題九:抽象類是否可以沒有抽象方法?為什么?

可以,在java中用abstract關鍵字來修飾一個類時,這個類叫做抽象類。

抽象類中不一定要包含abstract方法,但一個類中包含了abstract方法,則這個類必須聲明為abstract類。

問題十:ajax的工作原理?

Ajax基本上就是把JavaScript技術和XMLHttpRequest對象放在Web表單和服務器之間。當用戶填寫表單時,數據發送給一些JavaScript代碼而不是直接發送給服務器。相反,JavaScript代碼捕獲表單數據并向服務器發送請求。同時用戶屏幕上的表單也不會閃爍、消失或延遲。換句話說,JavaScript代碼在幕后發送請求,用戶甚至不知道請求的發出。更好的是,請求是異步發送的,就是說JavaScript代碼(和用戶)不用等待服務器的響應。因此用戶可以繼續輸入數據、滾動屏幕和使用應用程序。

然后,服務器將數據返回JavaScript代碼(仍然在Web表單中),后者決定如何處理這些數據。它可以迅速更新表單數據,讓人感覺應用程序是立即完成的,表單沒有提交或刷新而用戶得到了新數據。JavaScript代碼甚至可以對收到的數據執行某種計算,再發送另一個請求,完全不需要用戶干預!這就是XMLHttpRequest的強大之處。它可以根據需要自行與服務器進行交互,用戶甚至可以完全不知道幕后發生的一切。結果就是類似于桌面應用程序的動態、快速響應、高交互性的體驗,但是背后又擁有互聯網的全部強大力量。

問題十一:Socket如何獲取本地ip地址?

public InetAddress getLocalAddress

學習java之路:http://www.zparkedu.com/

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,996評論 2 374

推薦閱讀更多精彩內容

  • 問題一: list.map.set的存儲特點? List以特定次序來持有元素,可有重復元素. Set無法擁有重復元...
    OSET我要編程閱讀 205評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,721評論 18 399
  • 從三月份找實習到現在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發崗...
    時芥藍閱讀 42,324評論 11 349
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,785評論 18 139
  • 一、懷念 我遇到一個女孩,她擁有這世上最明凈的眸子。她把過往的傷口都仔細地藏了起來,只用悠遠唱腔為我輕頌豪邁的草原...
    林厭七閱讀 380評論 0 0