高階工程師面試題
一、三大框架方面問題
1、Spring 事務的四種隔離性,並說說每個隔離性的區別
Read uncommitted(未授權讀取、讀未提交):
如果一個事務已經開始寫資料,則另外一個事務則不允許同時進行寫操作,但允許其他事務讀此行資料。該隔離級別可以通過“排他寫鎖”實現。
避免了更新丟失,卻可能出現髒讀。也就是說事務B讀取到了事務A未提交的資料。這是事務最低的隔離級別,它充許令外一個事務可以看到這個事務未提交的資料,這種隔離級別會產生髒讀,不可重複讀和幻像讀
Read committed(授權讀取、讀提交):
讀取資料的事務允許其他事務繼續訪問該行資料,但是未提交的寫事務將會禁止其他事務訪問該行。該隔離級別避免了髒讀,但是卻可能出現不可重複讀。事務A事先讀取了資料,事務B緊接了更新了資料,並提交了事務,而事務A再次讀取該資料時,資料已經發生了改變。
保證一個事務修改的資料提交後才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的資料
Repeatable read(可重複讀取):
讀取資料的事務將會禁止寫事務(但允許讀事務),寫事務則禁止任何其他事務。避免了不可重複讀取和髒讀,但是有時可能出現幻讀。這可以通過“共享讀鎖”和“排他寫鎖”實現。
幻讀是指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的資料進行了修改,
這種修改涉及到表中的全部資料行。同時,第二個事務也修改這個表中的資料,這種修改是向表
中插入一行新資料。那麼,以後就會發生操作第一個事務的使用者發現表中還有沒有修改的資料行,
就好象發生了幻覺一樣
Serializable(序列化):
提供嚴格的事務隔離。它要求事務序列化執行,事務只能一個接著一個地執行,但不能併發執行。如果僅僅通過“行級鎖”是無法實現事務序列化的,必須通過其他機制保證新插入的資料不會被剛執行查詢操作的事務訪問到。
序列化是最高的事務隔離級別,同時代價也花費最高,效能很低,一般很少使用,在該級別下,事務順序執行,不僅可以避免髒讀、不可重複讀,還避免了幻像讀。
2、Spring事務的傳播行為,並說說每個傳播行為的區別
2. PROPAGATION_SUPPORTS: 如果存在一個事務,支援當前事務。如果沒有事務,則非事務的執行
3. PROPAGATION_MANDATORY: 如果已經存在一個事務,支援當前事務。如果沒有一個活動的事務,則丟擲異常。
4. PROPAGATION_REQUIRES_NEW: 總是開啟一個新的事務。如果一個事務已經存在,則將這個存在的事務掛起。
5. PROPAGATION_NOT_SUPPORTED: 總是非事務地執行,並掛起任何存在的事務。
6. PROPAGATION_NEVER: 總是非事務地執行,如果存在一個活動事務,則丟擲異常
7. PROPAGATION_NESTED:如果一個活動的事務存在,則執行在一個巢狀的事務中. 如果沒有活動事務, 則按TransactionDefinition.PROPAGATION_REQUIRED 屬性執行
三、專案優化相關
1、mysql查詢欄位區不區分大小寫?
解答:不區分,值也不區分
MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的:
1、資料庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變數名也是嚴格區分大小寫的
2、簡單說說資料庫叢集和負載均衡、分散式
解答:資料庫負載均衡和叢集參考 ,參考2
3、儲存過程的結構和優點
解答:大概結構 儲存過程的優缺點
1、HashMap和Hashtable的區別
解答http://blog.csdn.net/u010983881/article/details/49762595
2、抽象類與介面的區別。
抽象類裡面的方法有具體實現內容,而介面只定義了方法沒有實現內容。
介面定義的變數都是final的,而abstract類定義的可以不是final的
abstract類可以通過get....()方法實現類的例項,但是介面不可以
3、final關鍵字的使用和區別
http://www.importnew.com/7553.html
4、異常分類和處理機制。
http://blog.csdn.net/hguisu/article/details/6155636
5、JDK版本區別。
http://blog.itpub.net/29119536/viewspace-1629145/
6、StringBuilder內部實現機制。
https://segmentfault.com/a/1190000004261063
7、反射機制的使用。
http://www.cnblogs.com/chenliang901114/archive/2013/04/23/javalearner.html
8、匿名內部類的使用。
匿名內部類是沒有名字的類,只在某一處被使用,不會被多處呼叫,一般是某個父類或介面的特定實現。
9、泛型的概念和使用。
http://www.infoq.com/cn/articles/cf-java-generics
10、弱引用和虛引用的概念和使用方式
-
強引用: 一般的引用都是強引用,即使OutOfMemory也不會回收這部分被把持的引用記憶體。
-
軟引用(SoftReference): 如果記憶體空間足夠,垃圾回收器就不會回收它;如果記憶體空間不足了,就會回收這些物件的記憶體。只要垃圾回收器沒有回收它,該物件就可以被使用。++軟引用可以用來實現記憶體敏感的快取記憶體。++
-
弱引用(WeakReference):弱引用的物件擁有更短暫的生命週期。當垃圾回收期發現只有若引用的物件,不論記憶體空間足夠與否,都會回收它。
-
虛引用():虛引用不會決定物件的生命週期,如果一個物件僅持有一個虛引用,那麼它隨時可能被回收。++虛引用主要用來跟蹤物件被垃圾回收器回收的活動。+
-
SpringMVC的方法級別的攔截,Struts2是類級別的攔截;
-
SpringMVC是基於Servlet實現Controller,Struts2是基於Filter實現;
-
SpringMVC效能和安全性高於Struts2;
-
SpringMVC更加元件化和流程化,易於擴充套件,比如返回JSON通過設定@ResponseBody即可;
-
Struts2更加無耦合,比較純粹,但是需要更多的自行開發的程式碼以支援更多功能。
14、GC演算法有哪些
15、垃圾回收器有哪些
16、如何調優JVM
zookeeper的用途
dubbo的用途以及優點
dubbo的實現原理
單向連結串列的逆序排列
雙向連結串列的操作
1億個整數的倒序輸出
找出給定字串中最長迴文(迴文:abcdcba,兩端對稱)
Get和Post的區別
Https協議的實現
長連線的管理
Socket的基本方法
inner join和left join的區別
left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄
right join(右聯接) 返回包括右表中的所有記錄和左表中聯結欄位相等的記錄
inner join(等值連線) 只返回兩個表中聯結欄位相等的行
複雜SQL語句
資料庫優化方式
資料庫拆分方式
如何保證不同資料結構的資料一致性
什麼是XSS攻擊,具體如何實現?開放問題:如何保障系統安全?
寫出一個設計模式的類圖
設計模式的意義是什麼
寫個單例模式的程式碼
如何避免Quartz重複啟動任務
執行緒池滿了如何處理額外的請求
同一個物件的連個同步方法能否被兩個執行緒同時呼叫
相關文章
- 面試題總結 —— JAVA高階工程師面試題Java工程師
- .NET高階工程師面試題之SQL篇工程師面試題SQL
- 面試總結——Java高階工程師面試Java工程師
- 最近Java高階工程師面試總結Java工程師面試
- 面試總結——Java高階工程師(二)面試Java工程師
- 面試總結——Java高階工程師(三)面試Java工程師
- Java高階軟體工程師面試考綱Java軟體工程工程師面試
- 前端高階面試題@JS篇前端面試題JS
- Java高階面試題及答案Java面試題
- 面試高階前端工程師必問之流-stream面試前端工程師
- Java高階開發工程師面試考綱Java工程師面試
- 高階工程師面試大全- 資料庫篇工程師面試資料庫
- PHP 高階工程面試題彙總PHP面試題
- 面試java高階工程師、專案經理等的常見問題面試Java工程師
- 八年phper的高階工程師面試之路PHP工程師面試
- 某TMD公司iOS高階工程師面試回憶iOS工程師面試
- 高階前端工程師面試必備(持續更新中)前端工程師面試
- 高階工程師面試大全- 訊息中介軟體篇工程師面試
- 中高階前端開發高頻面試題前端面試題
- 出一套 iOS 高階面試題iOS面試題
- 幾道高階前端面試題解析前端面試題
- 20個高階Java面試題彙總Java面試題
- 上海攜程java高階面試題(一)Java面試題
- 高階遊戲開發工程師測試題遊戲開發工程師
- 招聘.net高階工程師工程師
- 急聘高階java工程師Java工程師
- JVM知識點總覽:高階Java工程師面試必備JVMJava工程師面試
- 高階Java開發面試解答,Java開發面試題及答案Java面試題
- 一道高階iOS面試題(runtime方向)iOS面試題
- 大資料數倉高階面試題整理《一》大資料面試題
- 吃透這份Java高階工程師面試497題解析,Java微服務架構訓練營Java工程師面試微服務架構
- 2020面試必知:中高階工程師面試題集整理(題目+答案)工程師面試題
- 史上最全的中高階JAVA工程師-面試題彙總Java工程師面試題
- 【面試】2018大廠高階前端面試題彙總前端面試題
- Java高階面試-面經Java面試
- 高階工程師-Java註解工程師Java
- 招聘【高階Golang工程師】--北京Golang工程師
- Java高階開發工程師Java工程師