JAVA面試面試常見問題

2021-08-17 17:47:55 字數 4770 閱讀 1439

面試官問你乙個問題,你要說出關鍵點,不要說出一大堆然後又沒有重點,那樣的話其實沒有任何意義,關於這個點的問題,我就舉幾個例子:

第乙個是:

struts

的工作流:

注:首先說為什麼我要突出這幾個點呢,因為別人問你struts的工作流,你不用非要說到**級別的,但是你起碼要告訴別人,你是知道核心過濾器,也是知道十八個***的。緊接著你也要是知道值棧,並且知道值棧預設放在request的域裡面。如果你把這些流程都掌握了,基本上問題都不大了,但是呢,這個時候你要搞清楚值棧的兩個部分,乙個普通的棧頂(根元素資料),和context非根元素物件(map),因為問到struts的工作流,他會引導你答出值棧,又會問值棧怎麼搞,如果你把值棧弄比較熟了,那你這個struts也就差不多了,

但是呢還有下乙個問題

你有沒有用過自定義***,

怎麼定義自定義***:

按開發步驟回答:

1.首先有乙個類繼承或者實現(某個類)

interceptor

2.再配置***組(將自定義***與預設***放在同乙個組內)

3.再對它們進行引用(保證即經過自定義***也經過這

18個預設的***)

自定義***配置:

***組

***(名稱,完整類名)

棧(名稱)                   

棧的引入(先引入預設棧,後引入自定義棧)

執行(自定義)棧

例:<

default-interceptor-ref

name

="mystack"

>

default-interceptor-ref

>

<

interceptors

>

<

interceptor

name

="hello"

class

="cn.itcast.b_interceptor.hellointerceptor"

>

interceptor

>

<

interceptor-stack

name

="mystack"

>

<

interceptor-ref

name

="defaultstack"

>

interceptor-ref

>

<

interceptor-ref

name

="hello"

>

interceptor-ref

>

interceptor-stack

>

interceptors

>

<

default-interceptor-ref

name

="mystack"

>

default-interceptor-ref

>

<

action

name

="user"

class

="cn.itcast.b_interceptor.useraction"

>

<

result

name

="success"

>

/index.jsp

result

>

<

result

name

="error"

>

/error.jsp

result

>

action

>

package

>

還有,面試官問你、

hibernate

的快取

你可以先簡單地說下一級快取然後緊接著說二級快取

說二級快取你該怎麼說呢,首先呢,你要說它的優點,然後再說它的缺點,然後再說我們一般是怎麼做的

優點:快

缺點:耗記憶體

應用:經常需要查詢但很少修改的放在二級快取中

如果面試官問到

spring

不會簡單問aop

面試官會問,請你說下對

spring

的理解和心得體會

(趕腳你瞬間就懵了)

那你應該怎麼答呢?

首先就三點:

(基本解決)

1.spring是個輕量級的基於企業級開源的框架,它是基於ioc的,(ioc又是什麼呢?ioc是控制反轉,然後控制反轉的優點:不需要程式設計師去關注物件的建立與銷毀,你只要專心自己的業務,還有什麼好處?它可以節約記憶體,並且面向介面程式設計,還可以達到高內聚松耦合,它可以達到一種解耦的效果(後面可以自由擴充套件)

2.aop,面向切面程式設計,基於介面程式設計的。基於動態**的

優點:代替了人力的切面程式設計

應用:aop事物與aop日誌

什麼是動態**:

設計模式

3.容器的作用

它作為框架的整合器(容器),有整合作用,有提高良好的第三方支援,它能夠幫助我們更好地結合其他框架完成企業級任務。

這些都是答題或介紹新技術的模式

ajax:

做非同步請求

特點:不用整體提交,也不用整體重新整理頁面。

優點:節約網路資源,表單驗證可以做到同步做不到的(整體重新整理)   對比地回答

servlet

與jsp

的訪問流程

重點:1.servlet是當乙個請求來到的時候,如果是第一次請求該servlet,將進行servlet的初始化,後面再有請求就不會初始化了。(引出話題,單例與多例)

servlet是單例

struts是多例(不需要畫蛇添足回答多執行緒,企業級應用都是多執行緒  ==)

什麼是單例與多例,單例設計模式

2.jsp在第一次請求,被翻譯成乙個servlet,再把請求**或重定向到它,再次請求不會再翻譯,直接就會將請求**或重定向。(詳細看文末的解釋--jsp

執行機制)

引出來的點:(設計模式必須掌握三種)

小結:設計模式的分類

建立型模式(共五種):工廠方法模式,抽象工廠模式,單例模式,建造者模式,原型模式。

結構型模式(共七種):介面卡模式,裝飾者設計模式,**模式,外觀模式,橋接模式,組合模式,享元模式。

行為型模式(共十一種):策略模式,模板方法模式,觀察者模式,迭代子模式,責任鏈模式,命令模式,備忘錄模式,狀態模式,訪問者模式,中介者模式,直譯器模式。

其他(兩種):並髮型模式與執行緒池模式。

單例設計模式:

一種常用的軟體設計模式,在它的核心結構中只包含乙個被稱為單例類的特殊類,通過單例模式,可以保證系統中乙個類只有乙個例項易於外界訪問,從而方便對例項個數的控制並節約系統資源,如果希望在系統中某個類的物件只能存在乙個,單例設計模式就是最好的解決方案

優點:例項控制方面,會阻止其他物件例項化單例物件的副本從而確保所有物件都訪問唯一例項

靈活性:因為類控制了例項化過程,所以類可以靈活更改例項化過程

缺點:開銷方面:雖然數量很少,但如果每次物件請求引用時都要檢查是否存在類的例項,將仍然需要一些開銷,可以通過使用靜態初始化解決此問題

可能引發的開發混淆:使用單例物件(尤其在類庫中定義的物件時,開發人員必須記住自己不能使用

new關鍵字例項化物件,因為可能無法訪問庫源**,因此應用程式開發人員可能意外發現自己無法直接例項化此類。

面試官需要知道的是技術核心,一般程式設計師要知道的東西。

總結:答技術,它是什麼,做什麼,優點是什麼。可順帶說一下在專案中的應用

如果要回答兩種技術的區別的時候,比如說dom程式設計與sax程式設計,dom有什麼優點,有什麼缺點,sax有什麼優點,什麼缺點

所以我們一般在什麼情況用dom,什麼時候用sax。

注:dom

樹和sax

流解析模式的區別?

基於sax(事件的處理)的優點和缺點

優點:這種處理的優點非常類似於流**的優點。分析能夠立即開始,而不是等待所有的資料被處理。而且,由於應用程式只是在讀取資料時檢查資料,因此不需 要將資料儲存在記憶體中。這對於大型文件來說是個巨大的優點。事實上,應用程式甚至不必解析整個文件;它可以在某個條件得到滿足時停止解析。一般來說,sax 還比它的替代者 dom 快許多。

缺點:由於應用程式沒有以任何方式儲存資料,使用 sax 來更改資料或在資料流中往後移是不可能的。

基於dom(樹)的處理的優點和缺點

優點:1)由於樹在記憶體中是持久的,因此可以修改它以便應用程式能對資料和結構作出更改。

2)它可以在任何時候在樹中上下導航,而不是像 sax 那樣是一次性的處理。

3)dom 使用起來也要簡單得多。

缺點:1)在記憶體中構造這樣的樹涉及大量的開銷。大型檔案完全占用系統記憶體容量的情況並不鮮見。

2)建立一棵dom樹可能是乙個緩慢的過程。

所以面試有技巧,沒有那麼簡單也沒有那麼難。

表達在面試中比編碼能力更為突出。

不用沒有目的學習技術,遇到瓶頸則選擇替換技術。(沒有永不淘汰的技術)

了解優缺,了解改進。這樣成長會比較快。

mvc開發模式了解,但你一定要寫在簡歷時,請到

csdn

的博文上看過相關介紹至少兩篇以上再寫入簡歷中。

、jsp執行機制(介紹)

Java 面試常見問題

介面抽象類 區別成員變數 抽象類可以是變數也可以是常量,介面只能是常量 關鍵字 抽象類abstract 介面是inte ce 構造方法 介面沒有構造方法,抽象類有構造方法 成員方法 抽象類可以有非抽象方法,而介面不能有 介面可以多實現,而抽象類只能單繼承 介面可以同時繼承多個介面 相同點不能直接例項...

面試常見問題

面試時,有幾個問題是公司面試人員常常會提出的,針對這些問題好好準備,在面試時也就不會啞口無言,無言以對了,下面就面試十大必考題做出分析,也許對hr經理也是乙個 1 為什麼想進本公司?這通常是面試官最先問到的問題。此時面試官就開始評斷錄用與否了,建議大家先判斷自己去應徵的工作性質,是專業能力導向呢,或...

面試常見問題

1.如果我們不能提供你所要求的薪水,你還願意來我們公司嗎?你的期望薪水是多少?你想得到的薪水是多 少?如果達不到你的要求,怎麼辦?答 我認為工作最重要的是合作開心,薪酬是其次的,不過我原來的月薪是 元,如果跳槽的話就希望 自己能有點進步,如果不是讓您太為難的話,您看這個工資是不是可以有一點提高?2....