黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) 最常見的208道Java最新面試題及答案(三)

最常見的208道Java最新面試題及答案(三)

更新時(shí)間:2019-10-15 13:41:58 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3306次


  七、Java最新面試題及答案:Java 異常模塊


  74、throw 和 throws 的區(qū)別?


  throw:是真實(shí)拋出一個(gè)異常。


  throws:是聲明可能會(huì)拋出一個(gè)異常。


  75、final、finally、finalize 有什么區(qū)別?


  final:是修飾符,如果修飾類,此類不能被繼承;如果修飾方法和變量,則表示此方法和此變量不能在被改變,只能使用。


  finally:是 try{} catch{} finally{} 最后一部分,表示不論發(fā)生任何情況都會(huì)執(zhí)行,finally 部分可以省略,但如果 finally 部分存在,則一定會(huì)執(zhí)行 finally 里面的代碼。


  finalize:是Object的protected方法,子類可以覆蓋該方法以實(shí)現(xiàn)資源清理工作,GC在回收對象之前調(diào)用該方法。


  76、try-catch-finally 中哪個(gè)部分可以省略?


  try-catch-finally 其中 catch 和 finally 都可以被省略,但是不能同時(shí)省略,也就是說有 try 的時(shí)候,必須后面跟一個(gè) catch 或者 finally。


  77、try-catch-finally 中,如果 catch 中 return 了,finally 還會(huì)執(zhí)行嗎?


  finally 一定會(huì)執(zhí)行,即使是 catch 中 return 了,catch 中的 return 會(huì)等 finally 中的代碼執(zhí)行完之后,才會(huì)執(zhí)行。


  78、常見的異常類有哪些?


  NullPointerException 空指針異常


  ClassNotFoundException 指定類不存在


  NumberFormatException 字符串轉(zhuǎn)換為數(shù)字異常


  IndexOutOfBoundsException 數(shù)組下標(biāo)越界異常


  ClassCastException 數(shù)據(jù)類型轉(zhuǎn)換異常


  FileNotFoundException 文件未找到異常


  NoSuchMethodException 方法不存在異常


  IOException IO 異常


  SocketException Socket 異常



  八、 Java最新面試題及答案:網(wǎng)絡(luò)模塊


  79、http 響應(yīng)碼 301 和 302 代表的是什么?有什么區(qū)別?


  301:永久重定向;302:暫時(shí)重定向。


  它們的區(qū)別是,301 對搜索引擎優(yōu)化(SEO)更加有利;302 有被提示為網(wǎng)絡(luò)攔截的風(fēng)險(xiǎn)。


  80、forward 和 redirect 的區(qū)別?


  forward 是轉(zhuǎn)發(fā) 和 redirect 是重定向:


  地址欄 url 顯示:foward url 不會(huì)發(fā)生改變,redirect url 會(huì)發(fā)生改變;


  數(shù)據(jù)共享:forward 可以共享 request 里的數(shù)據(jù),redirect 不能共享;


  效率:forward 比 redirect 效率高。


  81、簡述 tcp 和 udp的區(qū)別?


  tcp 和 udp 是 OSI 模型中的運(yùn)輸層中的協(xié)議。tcp 提供可靠的通信傳輸,而 udp 則常被用于讓廣播和細(xì)節(jié)控制交給應(yīng)用的通信傳輸。


  兩者的區(qū)別大致如下:


  tcp 面向連接,udp 面向非連接即發(fā)送數(shù)據(jù)前不需要建立鏈接;


  tcp 提供可靠的服務(wù)(數(shù)據(jù)傳輸),udp 無法保證;


  tcp 面向字節(jié)流,udp 面向報(bào)文;


  tcp 數(shù)據(jù)傳輸慢,udp 數(shù)據(jù)傳輸快;


  82、tcp 為什么要三次握手,兩次不行嗎?為什么?


  我們假設(shè)A和B是通信的雙方。我理解的握手實(shí)際上就是通信,發(fā)一次信息就是進(jìn)行一次握手。


  第一次握手:A給B打電話說,你可以聽到我說話嗎?


  第二次握手:B收到了A的信息,然后對A說:我可以聽得到你說話啊,你能聽得到我說話嗎?


  第三次握手:A收到了B的信息,然后說可以的,我要給你發(fā)信息啦!


  在三次握手之后,A和B都能確定這么一件事:我說的話,你能聽到;你說的話,我也能聽到。這樣,就可以開始正常通信了。


  注意:HTTP是基于TCP協(xié)議的,所以每次都是客戶端發(fā)送請求,服務(wù)器應(yīng)答,但是TCP還可以給其他應(yīng)用層提供服務(wù),即可能A、B在建立鏈接之后,誰都可能先開始通信。


  如果采用兩次握手,那么只要服務(wù)器發(fā)出確認(rèn)數(shù)據(jù)包就會(huì)建立連接,但由于客戶端此時(shí)并未響應(yīng)服務(wù)器端的請求,那此時(shí)服務(wù)器端就會(huì)一直在等待客戶端,這樣服務(wù)器端就白白浪費(fèi)了一定的資源。若采用三次握手,服務(wù)器端沒有收到來自客戶端的再此確認(rèn),則就會(huì)知道客戶端并沒有要求建立請求,就不會(huì)浪費(fèi)服務(wù)器的資源。


  83、說一下 tcp 粘包是怎么產(chǎn)生的?


  tcp 粘包可能發(fā)生在發(fā)送端或者接收端,分別來看兩端各種產(chǎn)生粘包的原因:


  發(fā)送端粘包:發(fā)送端需要等緩沖區(qū)滿才發(fā)送出去,造成粘包;


  接收方粘包:接收方不及時(shí)接收緩沖區(qū)的包,造成多個(gè)包接收。


  84、OSI 的七層模型都有哪些?


  物理層:利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實(shí)現(xiàn)比特流的透明傳輸。


  數(shù)據(jù)鏈路層:負(fù)責(zé)建立和管理節(jié)點(diǎn)間的鏈路。


  網(wǎng)絡(luò)層:通過路由選擇算法,為報(bào)文或分組通過通信子網(wǎng)選擇最適當(dāng)?shù)穆窂健?/p>


  傳輸層:向用戶提供可靠的端到端的差錯(cuò)和流量控制,保證報(bào)文的正確傳輸。


  會(huì)話層:向兩個(gè)實(shí)體的表示層提供建立和使用連接的方法。


  表示層:處理用戶信息的表示問題,如編碼、數(shù)據(jù)格式轉(zhuǎn)換和加密解密等。


  應(yīng)用層:直接向用戶提供服務(wù),完成用戶希望在網(wǎng)絡(luò)上完成的各種工作。


  85、get 和 post 請求有哪些區(qū)別?


  get 請求會(huì)被瀏覽器主動(dòng)緩存,而 post 不會(huì)。


  get 傳遞參數(shù)有大小限制,而 post 沒有。


  post 參數(shù)傳輸更安全,get 的參數(shù)會(huì)明文限制在 url 上,post 不會(huì)。


  86、如何實(shí)現(xiàn)跨域?


  實(shí)現(xiàn)跨域有以下幾種方案:


  服務(wù)器端運(yùn)行跨域 設(shè)置 CORS 等于 *;


  在單個(gè)接口使用注解 @CrossOrigin 運(yùn)行跨域;


  使用 jsonp 跨域;


  87、說一下 JSONP 實(shí)現(xiàn)原理?


  jsonp:JSON with Padding,它是利用script標(biāo)簽的 src 連接可以訪問不同源的特性,加載遠(yuǎn)程返回的“JS 函數(shù)”來執(zhí)行的。



  九、 Java最新面試題及答案:設(shè)計(jì)模式模塊


  88、說一下你熟悉的設(shè)計(jì)模式?


  單例模式:保證被創(chuàng)建一次,節(jié)省系統(tǒng)開銷。


  工廠模式(簡單工廠、抽象工廠):解耦代碼。


  觀察者模式:定義了對象之間的一對多的依賴,這樣一來,當(dāng)一個(gè)對象改變時(shí),它的所有的依賴者都會(huì)收到通知并自動(dòng)更新。


  外觀模式:提供一個(gè)統(tǒng)一的接口,用來訪問子系統(tǒng)中的一群接口,外觀定義了一個(gè)高層的接口,讓子系統(tǒng)更容易使用。


  模版方法模式:定義了一個(gè)算法的骨架,而將一些步驟延遲到子類中,模版方法使得子類可以在不改變算法結(jié)構(gòu)的情況下,重新定義算法的步驟。


  狀態(tài)模式:允許對象在內(nèi)部狀態(tài)改變時(shí)改變它的行為,對象看起來好像修改了它的類。


  89、簡單工廠和抽象工廠有什么區(qū)別?


  簡單工廠:用來生產(chǎn)同一等級結(jié)構(gòu)中的任意產(chǎn)品,對于增加新的產(chǎn)品,無能為力。


  工廠方法:用來生產(chǎn)同一等級結(jié)構(gòu)中的固定產(chǎn)品,支持增加任意產(chǎn)品。


  抽象工廠:用來生產(chǎn)不同產(chǎn)品族的全部產(chǎn)品,對于增加新的產(chǎn)品,無能為力;支持增加產(chǎn)品族。



  十、Java最新面試題及答案:Spring/Spring MVC模塊


  90、為什么要使用 spring?


  spring 提供 ioc 技術(shù),容器會(huì)幫你管理依賴的對象,從而不需要自己創(chuàng)建和管理依賴對象了,更輕松的實(shí)現(xiàn)了程序的解耦。


  spring 提供了事務(wù)支持,使得事務(wù)操作變的更加方便。


  spring 提供了面向切片編程,這樣可以更方便的處理某一類的問題。


  更方便的框架集成,spring 可以很方便的集成其他框架,比如 MyBatis、hibernate 等。


  91、解釋一下什么是 aop?


  aop 是面向切面編程,通過預(yù)編譯方式和運(yùn)行期動(dòng)態(tài)代理實(shí)現(xiàn)程序功能的統(tǒng)一維護(hù)的一種技術(shù)。


  簡單來說就是統(tǒng)一處理某一“切面”(類)的問題的編程思想,比如統(tǒng)一處理日志、異常等。


  92、解釋一下什么是 ioc?


  ioc:Inversionof Control(中文:控制反轉(zhuǎn))是 spring 的核心,對于 spring 框架來說,就是由 spring 來負(fù)責(zé)控制對象的生命周期和對象間的關(guān)系。


  簡單來說,控制指的是當(dāng)前對象對內(nèi)部成員的控制權(quán);控制反轉(zhuǎn)指的是,這種控制權(quán)不由當(dāng)前對象管理了,由其他(類,第三方容器)來管理。


  93、spring 有哪些主要模塊?


  spring core:框架的最基礎(chǔ)部分,提供 ioc 和依賴注入特性。


  spring context:構(gòu)建于 core 封裝包基礎(chǔ)上的 context 封裝包,提供了一種框架式的對象訪問方法。


  spring dao:Data Access Object 提供了JDBC的抽象層。


  spring aop:提供了面向切面的編程實(shí)現(xiàn),讓你可以自定義攔截器、切點(diǎn)等。


  spring Web:提供了針對 Web 開發(fā)的集成特性,例如文件上傳,利用 servlet listeners 進(jìn)行 ioc 容器初始化和針對 Web 的 ApplicationContext。


  spring Web mvc:spring 中的 mvc 封裝包提供了 Web 應(yīng)用的 Model-View-Controller(MVC)的實(shí)現(xiàn)。


  94、spring 常用的注入方式有哪些?


  setter 屬性注入


  構(gòu)造方法注入


  注解方式注入


  95、spring 中的 bean 是線程安全的嗎?


  spring 中的 bean 默認(rèn)是單例模式,spring 框架并沒有對單例 bean 進(jìn)行多線程的封裝處理。


  實(shí)際上大部分時(shí)候 spring bean 無狀態(tài)的(比如 dao 類),所有某種程度上來說 bean 也是安全的,但如果 bean 有狀態(tài)的話(比如 view model 對象),那就要開發(fā)者自己去保證線程安全了,最簡單的就是改變 bean 的作用域,把“singleton”變更為“prototype”,這樣請求 bean 相當(dāng)于 new Bean()了,所以就可以保證線程安全了。


  有狀態(tài)就是有數(shù)據(jù)存儲功能。


  無狀態(tài)就是不會(huì)保存數(shù)據(jù)。


  96、spring 支持幾種 bean 的作用域?


  spring 支持 5 種作用域,如下:


  singleton:spring ioc 容器中只存在一個(gè) bean 實(shí)例,bean 以單例模式存在,是系統(tǒng)默認(rèn)值;


  prototype:每次從容器調(diào)用 bean 時(shí)都會(huì)創(chuàng)建一個(gè)新的示例,既每次 getBean()相當(dāng)于執(zhí)行 new Bean()操作;


  request:每次 http 請求都會(huì)創(chuàng)建一個(gè) bean;


  session:同一個(gè) http session 共享一個(gè) bean 實(shí)例;


  global-session:用于 portlet 容器,因?yàn)槊總€(gè) portlet 有單獨(dú)的 session,globalsession 提供一個(gè)全局性的 http session。


  注意:使用 prototype 作用域需要慎重的思考,因?yàn)轭l繁創(chuàng)建和銷毀 bean 會(huì)帶來很大的性能開銷。


  97、spring 自動(dòng)裝配 bean 有哪些方式?


  no:默認(rèn)值,表示沒有自動(dòng)裝配,應(yīng)使用顯式 bean 引用進(jìn)行裝配。


  byName:它根據(jù) bean 的名稱注入對象依賴項(xiàng)。


  byType:它根據(jù)類型注入對象依賴項(xiàng)。


  構(gòu)造函數(shù):通過構(gòu)造函數(shù)來注入依賴項(xiàng),需要設(shè)置大量的參數(shù)。


  autodetect:容器首先通過構(gòu)造函數(shù)使用 autowire 裝配,如果不能,則通過 byType 自動(dòng)裝配。


  98、spring 事務(wù)實(shí)現(xiàn)方式有哪些?


  聲明式事務(wù):聲明式事務(wù)也有兩種實(shí)現(xiàn)方式,基于 xml 配置文件的方式和注解方式(在類上添加 @Transaction 注解)。


  編碼方式:提供編碼的形式管理和維護(hù)事務(wù)。


  99、說一下 spring 的事務(wù)隔離?


  spring 有五大隔離級別,默認(rèn)值為 ISOLATION_DEFAULT(使用數(shù)據(jù)庫的設(shè)置),其他四個(gè)隔離級別和數(shù)據(jù)庫的隔離級別一致:


  ISOLATION_DEFAULT:用底層數(shù)據(jù)庫的設(shè)置隔離級別,數(shù)據(jù)庫設(shè)置的是什么我就用什么;


  ISOLATIONREADUNCOMMITTED:未提交讀,最低隔離級別、事務(wù)未提交前,就可被其他事務(wù)讀取(會(huì)出現(xiàn)幻讀、臟讀、不可重復(fù)讀);


  ISOLATIONREADCOMMITTED:提交讀,一個(gè)事務(wù)提交后才能被其他事務(wù)讀取到(會(huì)造成幻讀、不可重復(fù)讀),SQL server 的默認(rèn)級別;


  ISOLATIONREPEATABLEREAD:可重復(fù)讀,保證多次讀取同一個(gè)數(shù)據(jù)時(shí),其值都和事務(wù)開始時(shí)候的內(nèi)容是一致,禁止讀取到別的事務(wù)未提交的數(shù)據(jù)(會(huì)造成幻讀),MySQL 的默認(rèn)級別;


  ISOLATION_SERIALIZABLE:序列化,代價(jià)最高最可靠的隔離級別,該隔離級別能防止臟讀、不可重復(fù)讀、幻讀。


  臟讀 :表示一個(gè)事務(wù)能夠讀取另一個(gè)事務(wù)中還未提交的數(shù)據(jù)。比如,某個(gè)事務(wù)嘗試插入記錄 A,此時(shí)該事務(wù)還未提交,然后另一個(gè)事務(wù)嘗試讀取到了記錄 A。


  不可重復(fù)讀 :是指在一個(gè)事務(wù)內(nèi),多次讀同一數(shù)據(jù)。


  幻讀 :指同一個(gè)事務(wù)內(nèi)多次查詢返回的結(jié)果集不一樣。比如同一個(gè)事務(wù) A 第一次查詢時(shí)候有 n 條記錄,但是第二次同等條件下查詢卻有 n+1 條記錄,這就好像產(chǎn)生了幻覺。發(fā)生幻讀的原因也是另外一個(gè)事務(wù)新增或者刪除或者修改了第一個(gè)事務(wù)結(jié)果集里面的數(shù)據(jù),同一個(gè)記錄的數(shù)據(jù)內(nèi)容被修改了,所有數(shù)據(jù)行的記錄就變多或者變少了。


  100、說一下 spring mvc 運(yùn)行流程?


  spring mvc 先將請求發(fā)送給 DispatcherServlet。


  DispatcherServlet 查詢一個(gè)或多個(gè) HandlerMapping,找到處理請求的 Controller。


  DispatcherServlet 再把請求提交到對應(yīng)的 Controller。


  Controller 進(jìn)行業(yè)務(wù)邏輯處理后,會(huì)返回一個(gè)ModelAndView。


  Dispathcher 查詢一個(gè)或多個(gè) ViewResolver 視圖解析器,找到 ModelAndView 對象指定的視圖對象。


  視圖對象負(fù)責(zé)渲染返回給客戶端。


  101、spring mvc 有哪些組件?


  前置控制器 DispatcherServlet。


  映射控制器 HandlerMapping。


  處理器 Controller。


  模型和視圖 ModelAndView。


  視圖解析器 ViewResolver。


  102、@RequestMapping 的作用是什么?


  將 http 請求映射到相應(yīng)的類/方法上。


  103、@Autowired 的作用是什么?


  @Autowired 它可以對類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動(dòng)裝配的工作,通過@Autowired 的使用來消除 set/get 方法。



  十一、Java最新面試題及答案: Spring Boot/Spring Cloud模塊


  104、什么是 spring boot?


  spring boot 是為 spring 服務(wù)的,是用來簡化新 spring 應(yīng)用的初始搭建以及開發(fā)過程的。


  105、為什么要用 spring boot?


  配置簡單


  獨(dú)立運(yùn)行


  自動(dòng)裝配


  無代碼生成和 xml 配置


  提供應(yīng)用監(jiān)控


  易上手


  提升開發(fā)效率


  106、spring boot 核心配置文件是什么?


  spring boot 核心的兩個(gè)配置文件:


  bootstrap (. yml 或者 . properties):boostrap 由父 ApplicationContext 加載的,比 applicaton 優(yōu)先加載,且 boostrap 里面的屬性不能被覆蓋;


  application (. yml 或者 . properties):用于 spring boot 項(xiàng)目的自動(dòng)化配置。


  107、spring boot 配置文件有哪幾種類型?它們有什么區(qū)別?


  配置文件有 . properties 格式和 . yml 格式,它們主要的區(qū)別是書法風(fēng)格不同。


  properties 配置如下:


  spring. RabbitMQ. port=5672


  yml 配置如下:


  spring:


  RabbitMQ:


  port: 5672


  yml 格式不支持 @PropertySource 注解導(dǎo)入。


  108、spring boot 有哪些方式可以實(shí)現(xiàn)熱部署?


  使用 devtools 啟動(dòng)熱部署,添加 devtools 庫,在配置文件中把 spring. devtools. restart. enabled 設(shè)置為 true;


  使用 Intellij Idea 編輯器,勾上自動(dòng)編譯或手動(dòng)重新編譯。


  109、jpa 和 hibernate 有什么區(qū)別?


  jpa 全稱 Java Persistence API,是 Java 持久化接口規(guī)范,hibernate 屬于 jpa 的具體實(shí)現(xiàn)。


  110、什么是 spring cloud?


  spring cloud 是一系列框架的有序集合。它利用 spring boot 的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā),如服務(wù)發(fā)現(xiàn)注冊、配置中心、消息總線、負(fù)載均衡、斷路器、數(shù)據(jù)監(jiān)控等,都可以用 spring boot 的開發(fā)風(fēng)格做到一鍵啟動(dòng)和部署。


  111、spring cloud 斷路器的作用是什么?


  在分布式架構(gòu)中,斷路器模式的作用也是類似的,當(dāng)某個(gè)服務(wù)單元發(fā)生故障(類似用電器發(fā)生短路)之后,通過斷路器的故障監(jiān)控(類似熔斷保險(xiǎn)絲),向調(diào)用方返回一個(gè)錯(cuò)誤響應(yīng),而不是長時(shí)間的等待。這樣就不會(huì)使得線程因調(diào)用故障服務(wù)被長時(shí)間占用不釋放,避免了故障在分布式系統(tǒng)中的蔓延。


  112、spring cloud 的核心組件有哪些?


  Eureka:服務(wù)注冊于發(fā)現(xiàn)。


  Feign:基于動(dòng)態(tài)代理機(jī)制,根據(jù)注解和選擇的機(jī)器,拼接請求 url 地址,發(fā)起請求。


  Ribbon:實(shí)現(xiàn)負(fù)載均衡,從一個(gè)服務(wù)的多臺機(jī)器中選擇一臺。


  Hystrix:提供線程池,不同的服務(wù)走不同的線程池,實(shí)現(xiàn)了不同服務(wù)調(diào)用的隔離,避免了服務(wù)雪崩的問題。


  Zuul:網(wǎng)關(guān)管理,由 Zuul 網(wǎng)關(guān)轉(zhuǎn)發(fā)請求給對應(yīng)的服務(wù)。



  十二、Java最新面試題及答案: Hibernate模塊


  113、為什么要使用 hibernate?


  hibernate 是對 jdbc 的封裝,大大簡化了數(shù)據(jù)訪問層的繁瑣的重復(fù)性代碼。


  hibernate 是一個(gè)優(yōu)秀的 ORM 實(shí)現(xiàn),很多程度上簡化了 DAO 層的編碼功能。


  可以很方便的進(jìn)行數(shù)據(jù)庫的移植工作。


  提供了緩存機(jī)制,是程序執(zhí)行更改的高效。


  114、什么是 ORM 框架?


  ORM(Object Relation Mapping)對象關(guān)系映射,是把數(shù)據(jù)庫中的關(guān)系數(shù)據(jù)映射成為程序中的對象。


  使用 ORM 的優(yōu)點(diǎn):提高了開發(fā)效率降低了開發(fā)成本、開發(fā)更簡單更對象化、可移植更強(qiáng)。


  115、hibernate 中如何在控制臺查看打印的 SQL 語句?


  在 Config 里面把 hibernate. show_SQL 設(shè)置為 true 就可以。但不建議開啟,開啟之后會(huì)降低程序的運(yùn)行效率。


  116、hibernate 有幾種查詢方式?


  三種:hql、原生 SQL、條件查詢 Criteria。


  117、hibernate 實(shí)體類可以被定義為 final 嗎?


  實(shí)體類可以定義為 final 類,但這樣的話就不能使用 hibernate 代理模式下的延遲關(guān)聯(lián)提供性能了,所以不建議定義實(shí)體類為 final。


  118、在 hibernate 中使用 Integer 和 int 做映射有什么區(qū)別?


  Integer 類型為對象,它的值允許為 null,而 int 屬于基礎(chǔ)數(shù)據(jù)類型,值不能為 null。


  119、hibernate 是如何工作的?


  讀取并解析配置文件。


  讀取并解析映射文件,創(chuàng)建 SessionFactory。


  打開 Session。


  創(chuàng)建事務(wù)。


  進(jìn)行持久化操作。


  提交事務(wù)。


  關(guān)閉 Session。


  關(guān)閉 SessionFactory。


  120、get()和 load()的區(qū)別?


  數(shù)據(jù)查詢時(shí),沒有 OID 指定的對象,get() 返回 null;load() 返回一個(gè)代理對象。


  load()支持延遲加載;get() 不支持延遲加載。


  121、說一下 hibernate 的緩存機(jī)制?


  hibernate 常用的緩存有一級緩存和二級緩存:


  一級緩存:也叫 Session 緩存,只在 Session 作用范圍內(nèi)有效,不需要用戶干涉,由 hibernate 自身維護(hù),可以通過:evict(object)清除 object 的緩存;clear()清除一級緩存中的所有緩存;flush()刷出緩存;


  二級緩存:應(yīng)用級別的緩存,在所有 Session 中都有效,支持配置第三方的緩存,如:EhCache。


  122、hibernate 對象有哪些狀態(tài)?


  臨時(shí)/瞬時(shí)狀態(tài):直接 new 出來的對象,該對象還沒被持久化(沒保存在數(shù)據(jù)庫中),不受 Session 管理。


  持久化狀態(tài):當(dāng)調(diào)用 Session 的 save/saveOrupdate/get/load/list 等方法的時(shí)候,對象就是持久化狀態(tài)。


  游離狀態(tài):Session 關(guān)閉之后對象就是游離狀態(tài)。


  123、在 hibernate 中 getCurrentSession 和 openSession 的區(qū)別是什么?


  getCurrentSession 會(huì)綁定當(dāng)前線程,而 openSession 則不會(huì)。


  getCurrentSession 事務(wù)是 Spring 控制的,并且不需要手動(dòng)關(guān)閉,而 openSession 需要我們自己手動(dòng)開啟和提交事務(wù)。


  124、hibernate 實(shí)體類必須要有無參構(gòu)造函數(shù)嗎?為什么?


  hibernate 中每個(gè)實(shí)體類必須提供一個(gè)無參構(gòu)造函數(shù),因?yàn)?hibernate 框架要使用 reflection api,通過調(diào)用 ClassnewInstance() 來創(chuàng)建實(shí)體類的實(shí)例,如果沒有無參的構(gòu)造函數(shù)就會(huì)拋出異常。


由于“最常見的208道Java最新面試題及答案”內(nèi)容太多,本文已滿,請看下文鏈接:


1~30道Java最新面試題及答案請看鏈接:http://m.ilovecolors.com.cn/javazixun/2143.html


31~73道Java最新面試題及答案請看鏈接:http://m.ilovecolors.com.cn/javazixun/2145.html


125~170道Java最新面試題及答案請看鏈接:http://m.ilovecolors.com.cn/javazixun/2148.html


171~208道Java最新面試題及答案請看鏈接:http://m.ilovecolors.com.cn/javazixun/2149.html


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

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日本一区视频 | 波多野结衣中文字幕2022免费 | 免费无遮挡毛片 | 91亚洲免费视频 | 波多野结衣资源在线 | 在线免费视频你懂的 | 成人ab片| 亚洲一区二区三区网站 | 久久这里只有精品免费看青草 | 一级毛片牲交大片 | 欧美日韩在线观看一区 | 五月天在线婷婷 | 99精品国产综合久久久久 | 亚洲第一页在线播放 | 一级毛片 在线播放 | 日韩中文字幕在线看 | 97日韩 | 国产最新精品2020好看的 | 欧美狠狠干 | 亚洲高清不卡视频 | 一级黄色大毛片 | 亚洲综合日韩中文字幕v在线 | 国内精品视频在线观看 | 日日私人影院 | 老年人一级毛片 | 黑人极品videos精品欧美裸 | 一级特黄aaa大片免费看 | 欧美韩日 | 成人公开免费视频 | 午夜日韩| 黄色三级视频在线 | 美国一级大黄一片免费网站 | 免费国产成人高清无线看软件 | 免费观看一级成人毛片 | 国产性xxx | 羞羞视频免费观看网站 | 欧美日韩国产在线播放 | 国产日韩欧美在线观看 | 国产一区二区在线 |播放 | 动漫涩涩视频 | 三级中文字幕永久在线视频 |