Java高級(jí)程序員面試題(個(gè)人建議收藏+分享)

1.你認(rèn)為項(xiàng)目中最重要的過(guò)程是那些?

分析、設(shè)計(jì)階段 ?盡量找出進(jìn)度的優(yōu)先級(jí)

2.如果給你一個(gè)4-6人的team,怎么分配?

挑選一技術(shù)過(guò)硬的人作為我的替補(bǔ)。其它人平均分配任務(wù),每周進(jìn)行全面的任務(wù)分配,每個(gè)人領(lǐng)取一周的工作量

,每天匯報(bào)進(jìn)度。

3.簡(jiǎn)述軟件開(kāi)發(fā)文檔?

需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、操作手冊(cè)、測(cè)試計(jì)劃

4.你認(rèn)為一個(gè)項(xiàng)目如何才正確?

?是企業(yè)利益最大化。

5.你經(jīng)常讀那些書(shū)?

Java編程思想 Java模式 ?人月神話

6.springmvc的工作原理?

客戶端請(qǐng)求提交到DispacherServlet由DispacherServlet控制器查詢HandlerMapping,找到處理請(qǐng)求的Controller

Controller調(diào)用業(yè)務(wù)邏輯處理后,返回ModelAndView

DispacherServlet查詢視圖解析,找到ModelAndView指定的視圖

視圖負(fù)責(zé)將結(jié)果顯示到客戶端

7.springmvc 和struts2的區(qū)別?

機(jī)制 :springmvc 的入口是servlet,struts2的入口是filter

性能 : springmvc 會(huì)比struts2快一點(diǎn)。springmvc是基于方法設(shè)計(jì),struts2是基于類,每次發(fā)一次請(qǐng)求都會(huì)實(shí)例一個(gè)action,每個(gè)Action都會(huì)被注入屬性。

參數(shù)傳遞:struts2是在接受參數(shù)的時(shí)候,可以采用屬性來(lái)接收參數(shù),這家說(shuō)明可以讓多個(gè)方法共享

攔截器機(jī)制:struts2有自己的interceptor機(jī)制,springmvc用的是獨(dú)立的AOP方式,strtus2的配置文件還是比springmvc大,springmvc使用簡(jiǎn)潔,springMVC比struts2開(kāi)發(fā)效率要高.

8.struts2工作原理?

客戶端初始化一個(gè)執(zhí)行servlet的請(qǐng)求

這個(gè)請(qǐng)求經(jīng)過(guò)一系列的過(guò)濾器,被FilterDispatcher調(diào)用,詢問(wèn)ActionMapper來(lái)決定是否調(diào)用Action

FilterDispatcher把請(qǐng)求的處理交給ActionProxy

ActionProxy通過(guò)Configuraction Manager詢問(wèn)相關(guān)的配置文件,找到需要的Action類

ActionProxy創(chuàng)建ActionInvocation的實(shí)例

ActionInvocation調(diào)用Action前后的攔截器

Action執(zhí)行完畢后,根據(jù)struts.xml配置文件找到對(duì)應(yīng)的視圖頁(yè)面

9.Hibernate 工作原理?

讀取并解析配置文件

創(chuàng)建SessionFactory

打開(kāi)Session

創(chuàng)建事務(wù):transaction

持久化操作

提交事務(wù)

關(guān)閉Session

關(guān)閉SessionFactory

10.為什么要用spring?

spring能夠很好的和各大框架整合

spring 通過(guò)IOC容器管理了對(duì)象的創(chuàng)建和銷毀 ?工廠模式

在使用hiberna,mybatis的時(shí)候,不用每次都編寫(xiě)提交的事務(wù)的代碼,可以使用spring的AOP來(lái)管理事務(wù) ? ? ?AOP其實(shí)就是一個(gè)動(dòng)態(tài)代理的實(shí)現(xiàn)

聲明式事務(wù)和編程式事務(wù)

11.mybatis的優(yōu)缺點(diǎn)?

優(yōu)點(diǎn):SQL寫(xiě)在XML中,便于統(tǒng)一管理和優(yōu)化

? ? ? ? ? ? ? ?提供映射標(biāo)簽,支持對(duì)象和數(shù)據(jù)庫(kù)的orm字段關(guān)系映射

? ? ? ? ? ? ? ?可以對(duì)SQL進(jìn)行優(yōu)化

缺點(diǎn):?SQL工作量大

? ? ? ? ? ? ? ? ?mybagtis移植姓不好

? ? ? ? ? ? ? ? ?不支持級(jí)聯(lián)?

12.談?wù)凷SH整合?

struts(表示層)+spring(業(yè)務(wù)層)+hibernate(持久層)

struts是一個(gè)表示層的框架,主要用于接收請(qǐng)求,分發(fā)請(qǐng)求。struts其實(shí)屬于MVC中的VC層次的

hibernate是一個(gè)持久層的框架,主要負(fù)責(zé)與關(guān)系數(shù)據(jù)庫(kù)的操作

spring是一個(gè)業(yè)務(wù)層的框架,是一個(gè)整合的框架,能夠很好的黏合表示層和持久層。

13.maven是什么?有什么作用?

是一個(gè)項(xiàng)目管理、構(gòu)建工具

作用:幫助下載jar ? 尋找依賴,幫助下載依賴 ? 熱部署、熱編譯

14.WEB 前端優(yōu)化?

減少HTTP請(qǐng)求的數(shù)量(合并css、js、圖片)

利用瀏覽器的緩存機(jī)制

利用GZIP壓縮機(jī)制:只針對(duì)文本類資源有效

把CSS文件放在HTML開(kāi)頭

把javascript文件放在HTML結(jié)尾

避免CSS表達(dá)式(判斷瀏覽器)

使用javascript壓縮

減少DNS查找

避免重定向

使用ajax

15.安全性測(cè)試

利用安全性測(cè)試技術(shù),找到潛在的漏洞

16.事務(wù)隔離級(jí)別(4種)

Serializable(串行化):一個(gè)事務(wù)在執(zhí)行過(guò)程中完全看不到其他事物對(duì)數(shù)據(jù)庫(kù)所做的更新(事務(wù)執(zhí)行的時(shí)候不允許別的事務(wù)并發(fā)執(zhí)行,事務(wù)只能一個(gè)接著一個(gè)地執(zhí)行,而不能并發(fā)執(zhí)行)

Repeatable Read(可重復(fù)讀):一個(gè)事務(wù)在執(zhí)行過(guò)程中可以看到其它事務(wù)已經(jīng)提交的新插入的記錄,但是不能看到其它事務(wù)對(duì)已有記錄的更新

Read Commited(讀已提交數(shù)據(jù)):一個(gè)事務(wù)在執(zhí)行過(guò)程中可以看到其它事務(wù)已經(jīng)提交的新插入的記錄,而且能看到其它事務(wù)已經(jīng)提交的對(duì)已有記錄的更新。

Read Uncommitted(讀未提交數(shù)據(jù)):一個(gè)事務(wù)在執(zhí)行過(guò)程中可以看到其它事務(wù)沒(méi)有提交的新插入的記錄的更新,而且能看其它事務(wù)沒(méi)有提交到對(duì)已有記錄的更新

17.MYSQL存儲(chǔ)引擎(4種)

?MyISAM它不支持事務(wù),也不支持外鍵,尤其是訪問(wèn)速度快,對(duì)事務(wù)完整性沒(méi)有要求或者以SELECT、INSERT為主的應(yīng)用基本都可以使用這個(gè)引擎來(lái)創(chuàng)建表。

每個(gè)MyISAM在磁盤(pán)上存儲(chǔ)成3個(gè)文件,其中文件名和表名都相同,但是擴(kuò)展名分別為:.frm(存儲(chǔ)表定義) ? ? ,YD(MYData,存儲(chǔ)數(shù)據(jù)) ?, ?MYI(MYIndex,存儲(chǔ)索引),InnoDB,InnoDB存儲(chǔ)引擎提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全。但是對(duì)比MyISAM的存儲(chǔ)引擎,InnoDB寫(xiě)的處理效率差一些并且會(huì)占用更多的磁盤(pán)空間以保留數(shù)據(jù)和索引。

1)自動(dòng)增長(zhǎng)列2)外鍵約束

MEMORY

memory使用存在內(nèi)存中的內(nèi)容來(lái)創(chuàng)建表。每個(gè)MEMORY表實(shí)際對(duì)應(yīng)一個(gè)磁盤(pán)文件,格式是.frm。MEMORY類型的表訪問(wèn)非??欤?yàn)樗綌?shù)據(jù)是放在內(nèi)存中的,并且默認(rèn)使用HASH索引,但是一旦服務(wù)器關(guān)閉,表中的數(shù)據(jù)就會(huì)丟失,但表還會(huì)繼續(xù)存在。

MERGE

?merge存儲(chǔ)引擎是一組MyISAM表的組合,這些MyISAM表結(jié)構(gòu)必須完全相同,MERGE表中并沒(méi)有數(shù)據(jù),對(duì)MERGE類型的表可以進(jìn)行查詢、更新、刪除的操作,這些操作實(shí)際上是對(duì)內(nèi)部的MyISAM表進(jìn)行操作。

18.事務(wù)傳播特性

1. PROPAGATION_REQUIRED: 如果存在一個(gè)事務(wù),則支持當(dāng)前事務(wù)。如果沒(méi)有事務(wù)則開(kāi)啟

2. PROPAGATION_SUPPORTS: 如果存在一個(gè)事務(wù),支持當(dāng)前事務(wù)。如果沒(méi)有事務(wù),則非事務(wù)的執(zhí)行

3. PROPAGATION_MANDATORY: 如果已經(jīng)存在一個(gè)事務(wù),支持當(dāng)前事務(wù)。如果沒(méi)有一個(gè)活動(dòng)的事務(wù),則拋出異常。

4. PROPAGATION_REQUIRES_NEW: 總是開(kāi)啟一個(gè)新的事務(wù)。如果一個(gè)事務(wù)已經(jīng)存在,則將這個(gè)存在的事務(wù)掛起。

5. PROPAGATION_NOT_SUPPORTED: 總是非事務(wù)地執(zhí)行,并掛起任何存在的事務(wù)。

6. PROPAGATION_NEVER: 總是非事務(wù)地執(zhí)行,如果存在一個(gè)活動(dòng)事務(wù),則拋出異常

7. PROPAGATION_NESTED:如果一個(gè)活動(dòng)的事務(wù)存在,則運(yùn)行在一個(gè)嵌套的事務(wù)中. 如果沒(méi)有活動(dòng)事務(wù),

20.TCP協(xié)議(傳輸控制協(xié)議Transmission Control Protocol )

建立鏈接:三次握手(1.給對(duì)方撥號(hào) 2.喂,您好,請(qǐng)問(wèn)是哪位 3 我是小劉)

關(guān)閉鏈接:四次揮手保證可靠

21.shiro 是什么

Apache Shiro 是一個(gè)強(qiáng)大易用的java安全框架,提供了認(rèn)證、授權(quán)、加密和會(huì)話管理等功能。

認(rèn)證?:驗(yàn)證用戶來(lái)核實(shí)他們的身份

授權(quán):會(huì)話管理

22. ?項(xiàng)目技術(shù)

前臺(tái):面向的客戶

前端:css div js jquery?

后端:springmvc spring mybatis

使用的優(yōu)化技術(shù):

? ? ? ? ? 1.頁(yè)面靜態(tài)化(Freemarker)

? ? ? ? ? 2.緩存

? ? ? ? ? ? ? ? ? 2.1 頁(yè)面緩存(OSCache)

? ? ? ? ? ? ? ? ? 2.2 分布式緩存(memcached)

? ? ? ? ? 3. 圖片分離(服務(wù)器)

? ? ? ? ? 4.負(fù)載均衡(解決高并發(fā)終極策略)

后臺(tái):(管理對(duì)象)

前端:css html js jquery?

后端:springmvc spring ?mybatis

數(shù)據(jù)庫(kù):mysql

圖片分離框架:jersey

23.什么RESTful(表現(xiàn)層狀態(tài)轉(zhuǎn)化)架構(gòu)?

(1)每一個(gè)URI代表一種資源;

(2)客戶端和服務(wù)器之間,傳遞這種資源的某種表現(xiàn)層;

(3)客戶端通過(guò)四個(gè)HTTP動(dòng)詞,對(duì)服務(wù)器端資源進(jìn)行操作,實(shí)現(xiàn)"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。

以上內(nèi)容只做了簡(jiǎn)單總結(jié)以及引導(dǎo),具體內(nèi)容大家可以根據(jù)自己的情況詳細(xì)總結(jié)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容