2020最新Java框架面試題及答案

2020最新Java框架面試題及答案

深圳達(dá)內(nèi)教育      2022-03-18 14:40:01     9

2020最新Java框架面試題及答案,  1、Spring在ssm中起什么作用?  Spring:輕量級(jí)框架  作用:Bean工廠,用來(lái)管理Bean的生命周期和框架集成?! 纱蠛诵?

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹



  1、Spring在ssm中起什么作用?


  Spring:輕量級(jí)框架


  作用:Bean工廠,用來(lái)管理Bean的生命周期和框架集成。


  兩大核心:1、IOC/DI(控制反轉(zhuǎn)/依賴注入):把dao依賴注入到service層,service層反轉(zhuǎn)給action層,Spring頂層容器為BeanFactory。2、AOP:面向切面編程


  2、Spring的事務(wù)?


  編程式事務(wù)管理:編程方式管理事務(wù),極大靈活性,難維護(hù)。


  聲明式事務(wù)管理:可以將業(yè)務(wù)代碼和事務(wù)管理分離,用注解和xml配置來(lái)管理事務(wù)。


  3、IOC在項(xiàng)目中的作用?


  作用:Ioc解決對(duì)象之間的依賴問(wèn)題,把所有Bean的依賴關(guān)系通過(guò)配置文件或注解關(guān)聯(lián)起來(lái),降低了耦合度。


  4、Spring的配置文件中的內(nèi)容?


  開啟事務(wù)注解驅(qū)動(dòng)


  事務(wù)管理器


  開啟注解功能,并配置掃描包


  配置數(shù)據(jù)庫(kù)


  配置SQL會(huì)話工廠,別名,映射文件


  不用編寫Dao層的實(shí)現(xiàn)類


  5、Spring下的注解?


  注冊(cè):@Controller@Service@Component


  注入:@Autowired@Resource


  請(qǐng)求地址:@RequestMapping


  返回具體數(shù)據(jù)類型而非跳轉(zhuǎn):@ResponseBody


  6、SpringDI的三種方式?


  構(gòu)造器注入:通過(guò)構(gòu)造方法初始化


  <constructor-argindex="0"type="java.lang.String"value="寶馬"></constructor-arg>


  setter方法注入:通過(guò)setter方法初始化


  <propertyname="id"value="1111"></property>


  接口注入


  7、Spring主要使用了什么模式?


  工廠模式:每個(gè)Bean的創(chuàng)建通過(guò)方法


  單例模式:默認(rèn)的每個(gè)Bean的作用域都是單例


  代理模式:關(guān)于Aop的實(shí)現(xiàn)通過(guò)代理模式


  8、IOC,AOP的實(shí)現(xiàn)原理?


  IOC:通過(guò)反射機(jī)制生成對(duì)象注入


  AOP:動(dòng)態(tài)代理


  二、SpringMvc面試題


  1、SpringMvc的控制器是不是單例模式,如果是,有什么問(wèn)題,怎么解決?


  問(wèn)題:?jiǎn)卫J?,在多線程訪問(wèn)時(shí)有線程安全問(wèn)題


  解決方法:不要用同步,在控制器里面不能寫字段


  2、SpringMvc中控制器的注解?


  @Controller:該注解表明該類扮演控制器的角色


  3、@RequestMapping注解用在類上的作用?


  作用:用來(lái)映射一個(gè)URL到一個(gè)類或者一個(gè)特定的處理方法上


  4、前臺(tái)多個(gè)參數(shù),這些參數(shù)都是一個(gè)對(duì)象,快速得到對(duì)象?


  方法:直接在方法中聲明這個(gè)對(duì)象,SpringMvc就自動(dòng)把屬性賦值到這個(gè)對(duì)象里面


  5、SpringMvc中函數(shù)的返回值?


  String,ModelAndView,List,Set等


  一般String,Ajax請(qǐng)求,返回一個(gè)List集合


  6、SpringMvc中的轉(zhuǎn)發(fā)和重定向?


  轉(zhuǎn)發(fā):return:“hello”


  重定向:return:“redirect:hello.jsp”


  7、SpringMvc和Ajax之間的相互調(diào)用?


  通過(guò)JackSon框架把java里面對(duì)象直接轉(zhuǎn)換成js可識(shí)別的json對(duì)象,具體步驟如下:


  加入JackSon.jar


  在配置文件中配置json的映射


  在接受Ajax方法里面直接返回Object,list等,方法前面需要加上注解@ResponseBody


  8、SpringMvc的工作流程圖?


  JavaSSM框架面試題,附答案


  9、Struts2和SpringMvc的區(qū)別?


  入口不同:


  Struts2:filter過(guò)濾器


  SpringMvc:一個(gè)Servlet即前端控制器


  開發(fā)方式不同:


  Struts2:基于類開發(fā),傳遞參數(shù)通過(guò)類的屬性,只能設(shè)置為多例


  SpringMvc:基于方法開發(fā)(一個(gè)url對(duì)應(yīng)一個(gè)方法),請(qǐng)求參數(shù)傳遞到方法形參,可以為單例也可以為多例(建議單例)


  請(qǐng)求方式不同:


  Struts2:值棧村塾請(qǐng)求和響應(yīng)的數(shù)據(jù),通過(guò)OGNL存取數(shù)據(jù)


  SpringMvc:通過(guò)參數(shù)解析器將request請(qǐng)求內(nèi)容解析,給方法形參賦值,將數(shù)據(jù)和視圖封裝成ModelAndView對(duì)象,最后又將ModelAndView中的模型數(shù)據(jù)通過(guò)request域傳輸?shù)巾?yè)面,jsp視圖解析器默認(rèn)使用的是jstl。


  三、Mybatis面試題


  1、Ibatis和Mybatis?


  Ibatis:2010年,apache的Ibatis框架停止更新,并移交給了google團(tuán)隊(duì),同時(shí)更名為MyBatis。從2010年后Ibatis在沒(méi)更新過(guò),徹底變成了一個(gè)孤兒框架。一個(gè)沒(méi)人維護(hù)的框架注定被mybatis拍在沙灘上。


  Mybatis:Ibatis的升級(jí)版本。


  2、什么是Mybatis的接口綁定,有什么好處?


  Mybatis實(shí)現(xiàn)了DAO接口與xml映射文件的綁定,自動(dòng)為我們生成接口的具體實(shí)現(xiàn),使用起來(lái)變得更加省事和方便。


  3、什么情況用注解,什么情況用xml綁定?


  注解使用情況:Sql語(yǔ)句簡(jiǎn)單時(shí)


  xml綁定使用情況:xml綁定(@RequestMap用來(lái)綁定xml文件)


  4、Mybatis在核心處理類叫什么?


  SqlSession


  5、查詢表名和返回實(shí)體Bean對(duì)象不一致,如何處理?


  映射鍵值對(duì)即可


  <resultcolumn="title"property="title"javaType="java.lang.String"/>


  column:數(shù)據(jù)庫(kù)中表的列名


  property:實(shí)體Bean中的屬性名


  6、Mybatis的好處?


  把Sql語(yǔ)句從Java中獨(dú)立出來(lái)。


  封裝了底層的JDBC,API的調(diào)用,并且能夠?qū)⒔Y(jié)果集自動(dòng)轉(zhuǎn)換成JavaBean對(duì)象,簡(jiǎn)化了Java數(shù)據(jù)庫(kù)編程的重復(fù)工作。


  自己編寫Sql語(yǔ)句,更加的靈活。


  入?yún)o(wú)需用對(duì)象封裝(或者map封裝),使用@Param注解


  7、Mybatis配置一對(duì)多?


  <collectionproperty="topicComment"column="id"ofType="com.tmf.bbs.pojo.Comment"select="selectComment"/>


  property:屬性名


  column:共同列


  ofType:集合中元素的類型


  select:要連接的查詢


  8、Mybatis配置一對(duì)一?


  <associationproperty="topicType"select="selectType"column="topics_type_id"javaType="com.tmf.bbs.pojo.Type"/>


  property:屬性名


  select:要連接的查詢


  column:共同列


  javaType:集合中元素的類型


  9、${}和#{}的區(qū)別?


  ${}:簡(jiǎn)單字符串替換,把${}直接替換成變量的值,不做任何轉(zhuǎn)換,這種是取值以后再去編譯SQL語(yǔ)句。


  #{}:預(yù)編譯處理,sql中的#{}替換成?,補(bǔ)全預(yù)編譯語(yǔ)句,有效的防止Sql語(yǔ)句注入,這種取值是編譯好SQL語(yǔ)句再取值。


  總結(jié):一般用#{}來(lái)進(jìn)行列的代替


  10、獲取上一次自動(dòng)生成的主鍵值?


  selectlast_insert_id()


  11、Mybatis如何分頁(yè),分頁(yè)原理?


  RowBounds對(duì)象分頁(yè)


  在Sql內(nèi)直接書寫,帶有物理分頁(yè)


  12、Mybatis工作原理?


  JavaSSM框架面試題,附答案


  原理:


  通過(guò)SqlSessionFactoryBuilder從mybatis-config.xml配置文件中構(gòu)建出SqlSessionFactory。


  SqlSessionFactory開啟一個(gè)SqlSession,通過(guò)SqlSession實(shí)例獲得Mapper對(duì)象并且運(yùn)行Mapper映射的Sql語(yǔ)句。


  完成數(shù)據(jù)庫(kù)的CRUD操作和事務(wù)提交,關(guān)閉SqlSession。



      以上就是深圳達(dá)內(nèi)教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“2020最新Java框架面試題及答案”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


相關(guān)推薦


最新最全java面試題及答案(初級(jí)到高級(jí))


史上最全的中高級(jí)JAVA工程師面試題及答案匯總


Java高級(jí)開發(fā)工程師面試題


2019史上最全java面試題題庫(kù)大全800題


哪有資深java工程師面試題


Java面試題及答案

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。