大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java系統(tǒng)架構(gòu)師常見(jiàn)面試題

Java系統(tǒng)架構(gòu)師常見(jiàn)面試題

更新時(shí)間:2019-07-27 11:32:42 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽4193次

  Java系統(tǒng)架構(gòu)師常見(jiàn)面試題,學(xué)習(xí)是一份苦差事,這句話真的不是說(shuō)說(shuō)而已,真的是你認(rèn)真學(xué)習(xí)過(guò),才會(huì)懂得,學(xué)習(xí)是多么的辛苦,這點(diǎn)大家肯定深有體會(huì),但是小編還是想說(shuō),沒(méi)辦法,想要更好的生活,你就要不斷地努力學(xué)習(xí)。


  所幸的是,程序員這個(gè)行業(yè),學(xué)習(xí)和回報(bào)率是要高于其他行業(yè)的,不斷提升自己的技術(shù)水平和認(rèn)知,是絕對(duì)沒(méi)有壞處的。


Java系統(tǒng)架構(gòu)師常見(jiàn)面試題.jpg


  什么是Spring框架?Spring框架有哪些主要模塊?


  Spring框架是一個(gè)為Java應(yīng)用程序的開(kāi)發(fā)提供了綜合、廣泛的基礎(chǔ)性支持的Java平臺(tái)。


  Spring幫助開(kāi)發(fā)者解決了開(kāi)發(fā)中基礎(chǔ)性的問(wèn)題,使得開(kāi)發(fā)人員可以專注于應(yīng)用程序的開(kāi)發(fā)。


  Spring框架本身亦是按照設(shè)計(jì)模式精心打造,這使得我們可以在開(kāi)發(fā)環(huán)境中安心的集成Spring框架,不必?fù)?dān)心Spring是如何在后臺(tái)進(jìn)行工作的。


  Spring框架至今已集成了20多個(gè)模塊。這些模塊主要被分如下圖所示的核心容器、數(shù)據(jù)訪問(wèn)/集成,、Web、AOP(面向切面編程)、工具、消息和測(cè)試模塊。


  使用Spring框架能帶來(lái)哪些好處?


  下面列舉了一些使用Spring框架帶來(lái)的主要好處:


  DependencyInjection(DI)方法使得構(gòu)造器和JavaBeanproperties文件中的依賴關(guān)系一目了然。與EJB容器相比較,IoC容器更加趨向于輕量級(jí)。這樣一來(lái)IoC容器在有限的內(nèi)存和CPU資源的情況下進(jìn)行應(yīng)用程序的開(kāi)發(fā)和發(fā)布就變得十分有利。


  Spring并沒(méi)有閉門造車,Spring利用了已有的技術(shù)比如ORM框架、logging框架、J2EE、Quartz和JDKTimer,以及其他視圖技術(shù)。


  Spring框架是按照模塊的形式來(lái)組織的。由包和類的編號(hào)就可以看出其所屬的模塊,開(kāi)發(fā)者僅僅需要選用他們需要的模塊即可。


  要測(cè)試一項(xiàng)用Spring開(kāi)發(fā)的應(yīng)用程序十分簡(jiǎn)單,因?yàn)闇y(cè)試相關(guān)的環(huán)境代碼都已經(jīng)囊括在框架中了。更加簡(jiǎn)單的是,利用JavaBean形式的POJO類,可以很方便的利用依賴注入來(lái)寫入測(cè)試數(shù)據(jù)。


  Spring的Web框架亦是一個(gè)精心設(shè)計(jì)的WebMVC框架,為開(kāi)發(fā)者們?cè)趙eb框架的選擇上提供了一個(gè)除了主流框架比如Struts、過(guò)度設(shè)計(jì)的、不流行web框架的以外的有力選項(xiàng)。


  Spring提供了一個(gè)便捷的事務(wù)管理接口,適用于小型的本地事物處理(比如在單DB的環(huán)境下)和復(fù)雜的共同事物處理(比如利用JTA的復(fù)雜DB環(huán)境)。


  什么是控制反轉(zhuǎn)(IOC)?什么是依賴注入?


  控制反轉(zhuǎn)是應(yīng)用于軟件工程領(lǐng)域中的,在運(yùn)行時(shí)被裝配器對(duì)象來(lái)綁定耦合對(duì)象的一種編程技巧,對(duì)象之間耦合關(guān)系在編譯時(shí)通常是未知的。在傳統(tǒng)的編程方式中,業(yè)務(wù)邏輯的流程是由應(yīng)用程序中的早已被設(shè)定好關(guān)聯(lián)關(guān)系的對(duì)象來(lái)決定的。在使用控制反轉(zhuǎn)的情況下,業(yè)務(wù)邏輯的流程是由對(duì)象關(guān)系圖來(lái)決定的,該對(duì)象關(guān)系圖由裝配器負(fù)責(zé)實(shí)例化,這種實(shí)現(xiàn)方式還可以將對(duì)象之間的關(guān)聯(lián)關(guān)系的定義抽象化。而綁定的過(guò)程是通過(guò)“依賴注入”實(shí)現(xiàn)的。控制反轉(zhuǎn)是一種以給予應(yīng)用程序中目標(biāo)組件更多控制為目的設(shè)計(jì)范式,并在我們的實(shí)際工作中起到了有效的作用。依賴注入是在編譯階段尚未知所需的功能是來(lái)自哪個(gè)的類的情況下,將其他對(duì)象所依賴的功能對(duì)象實(shí)例化的模式。這就需要一種機(jī)制用來(lái)激活相應(yīng)的組件以提供特定的功能,所以依賴注入是控制反轉(zhuǎn)的基礎(chǔ)。否則如果在組件不受框架控制的情況下,框架又怎么知道要?jiǎng)?chuàng)建哪個(gè)組件?


  在Java中依然注入有以下三種實(shí)現(xiàn)方式:


  構(gòu)造器注入


  Setter方法注入


  接口注入


  請(qǐng)解釋下Spring框架中的IoC?


  Spring中的org.springframework.beans包和org.springframework.context包構(gòu)成了Spring框架IoC容器的基礎(chǔ)。BeanFactory接口提供了一個(gè)先進(jìn)的配置機(jī)制,使得任何類型的對(duì)象的配置成為可能。ApplicationContex接口對(duì)BeanFactory(是一個(gè)子接口)進(jìn)行了擴(kuò)展,在BeanFactory的基礎(chǔ)上添加了其他功能,比如與Spring的AOP更容易集成,也提供了處理messageresource的機(jī)制(用于國(guó)際化)、事件傳播以及應(yīng)用層的特別配置,比如針對(duì)Web應(yīng)用的WebApplicationContext。org.springframework.beans.factory.BeanFactory是SpringIoC容器的具體實(shí)現(xiàn),用來(lái)包裝和管理前面提到的各種bean。BeanFactory接口是SpringIoC容器的核心接口。IOC:把對(duì)象的創(chuàng)建、初始化、銷毀交給spring來(lái)管理,而不是由開(kāi)發(fā)者控制,實(shí)現(xiàn)控制反轉(zhuǎn)。


  什么是SpringMVC?


  答:SpringMvc是spring的一個(gè)模塊,基于MVC的一個(gè)框架,無(wú)需中間整合層來(lái)整合。


  SpringMVC的優(yōu)點(diǎn):


  1)它是基于組件技術(shù)的.全部的應(yīng)用對(duì)象,無(wú)論控制器和視圖,還是業(yè)務(wù)對(duì)象之類的都是java組件.并且和Spring提供的其他基礎(chǔ)結(jié)構(gòu)緊密集成.


  2)不依賴于ServletAPI(目標(biāo)雖是如此,但是在實(shí)現(xiàn)的時(shí)候確實(shí)是依賴于Servlet的)


  3)可以任意使用各種視圖技術(shù),而不僅僅局限于JSP


  4)支持各種請(qǐng)求資源的映射策略


  5)它應(yīng)是易于擴(kuò)展的


  SpringMVC工作原理?


  1)客戶端發(fā)送請(qǐng)求到DispatcherServlet


  2)DispatcherServlet查詢handlerMapping找到處理請(qǐng)求的Controller


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


  4)DispatcherServlet查詢ModelAndView,找到指定視圖


  5)視圖將結(jié)果返回到客戶端


  什么是MyBatis?


  MyBatis是一個(gè)可以自定義SQL、存儲(chǔ)過(guò)程和高級(jí)映射的持久層框架。


  講下MyBatis的緩存


  MyBatis的緩存分為一級(jí)緩存和二級(jí)緩存,一級(jí)緩存放在session里面,默認(rèn)就有,二級(jí)緩存放在它的命名空間里,默認(rèn)是不打開(kāi)的,使用二級(jí)緩存屬性類需要實(shí)現(xiàn)Serializable序列化接口(可用來(lái)保存對(duì)象的狀態(tài)),可在它的映射文件中配置<cache/>


  Mybatis是如何進(jìn)行分頁(yè)的?分頁(yè)插件的原理是什么?


  1)Mybatis使用RowBounds對(duì)象進(jìn)行分頁(yè),也可以直接編寫sql實(shí)現(xiàn)分頁(yè),也可以使用


  Mybatis的分頁(yè)插件。


  2)分頁(yè)插件的原理:實(shí)現(xiàn)Mybatis提供的接口,實(shí)現(xiàn)自定義插件,在插件的攔截方法內(nèi)攔截待執(zhí)行的sql,然后重寫sql。


  舉例:selectfromstudent,攔截sql后重寫為:selectt.from(select*fromstudent)tlimit0,10


  簡(jiǎn)述Mybatis的插件運(yùn)行原理,以及如何編寫一個(gè)插件?


  1)Mybatis僅可以編寫針對(duì)ParameterHandler、ResultSetHandler、StatementHandler、Executor這4種接口的插件,Mybatis通過(guò)動(dòng)態(tài)代理,為需要攔截的接口生成代理對(duì)象以實(shí)

現(xiàn)接口方法攔截功能,每當(dāng)執(zhí)行這4種接口對(duì)象的方法時(shí),就會(huì)進(jìn)入攔截方法,具體就是InvocationHandler的invoke()方法,當(dāng)然,只會(huì)攔截那些你指定需要攔截的方法。


  2)實(shí)現(xiàn)Mybatis的Interceptor接口并復(fù)寫intercept()方法,然后在給插件編寫注解,指定要攔截哪一個(gè)接口的哪些方法即可,記住,別忘了在配置文件中配置你編寫的插件。


  


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 久久99精品一久久久久久 | 午夜精品福利影院 | 日韩欧美第一区二区三区 | 国产综合影院 | 四虎在线成人免费网站 | 亚洲欧美在线综合一区二区三区 | a毛片全部免费播放 | 911精品国产亚洲日本美国韩国 | 精品一区二区三区在线播放 | 99热这里只有精品首页精品 | 色福利视频 | 久久伦理| 亚洲视频大全 | 天天天天天天干 | 亚洲精品乱码久久久久久蜜桃欧美 | 中文字幕亚洲无线码在线一区 | 国产日产欧美精品一区二区三区 | 99在线播放视频 | 91久久精品午夜一区二区 | 青青草国产一区二区三区 | 97精品在线播放 | 久久久久国产精品四虎 | 日本阿v精品视频在线观看 日本爱爱免费视频 | 久久日韩 | 国内精品久久久久久久aa护士 | 最新四虎4hu影库地址在线 | 97久久久亚洲综合久久88 | 日韩中文字幕高清在线专区 | 亚洲天堂一区二区三区 | 亚洲精品亚洲人成人网 | 色婷婷av777 色婷婷国产 | 色精品一区二区三区 | 干美女网站 | 日本最新免费二区三区 | 亚洲综合国产一区在线 | 福利资源在线 | 久久亚洲精品成人综合 | 日韩欧美小视频 | 91亚洲免费 | 国产毛片在线 | 91长腿女神清纯大又嫩在线 |