【JAVA秒會技術之秒殺面試官】JavaEE常見面試題(五)

來源:互聯網
上載者:User

標籤:nts   write   png   blog   mic   cas   面試官   方法   一對多   

51.事務的特性?

答:①原子性(Atomicity)

指事務是一個不可分割的工作單位,事務中的操作要麼全都發生,要麼全不發生;

②一致性(Consistency)

事務前後資料的完成性必須保持一致;(例:轉賬前後的,兩個人的金額總數是不變的)

③隔離性(Isolation)

指多個使用者並發訪問資料庫時,一個使用者的事務不能被其他使用者的事務幹擾,多個並發事務之間要項目隔離;

④持久性(Durability)

指一個事務一旦被提交,它對資料庫中資料的改變是永久性的,接下來即使資料庫發生故障,也不應該對其有任何影響;

52.事務並發訪問的問題?

答:①髒讀:一個事務讀到了另一個事務未提交的資料;

②不可重複讀取:在同一個事務中,多次查詢的結果不一致(由update引起的)

③虛讀/幻讀:在同一個事務中,多次查詢的結果不一致(由insert引起的)

53.隔離的層級?

答:①讀未提交

read uncommitted;一個事務讀到另一個事務沒有提交的資料;

(未解決,3問題都存在)

②讀已提交 —— oracle預設

read committed;一個事務讀到另一個事務已提交的資料;

(解決髒讀)

③可重複讀 --- mysql預設

repeatable read;在一個事務中讀到的資料始終保持一致,無論另一個事務是否提交

(解決髒讀和不可重複讀取)

④序列化

serializable 序列化,同時只能執行一個事務,相當於單線程事務;

(都解決)

54.tuncate和delete區別?

答:① truncate資料ddl delete屬於dml

② truncate是先刪除drop該表,再create該表。而且無法復原!!!

55.在Hibernate中實現資料檢索的5種方式?

答:① 對象導航(關聯層級的資料檢索)

② HQL語句

③ SQL語句

④ QBC語句

⑤ 通過OID載入(get( ) / load( ))

56.Cascade與Inverse區別?

答:①Cascade主要用於級聯操作(如:級聯添加,刪除等);

②Inverse主要用於控制權是否要反轉,一般將控制權放在多方,可以提高效率;

如:當刪除部門時,串聯刪除部門下的所有使用者。

若inverse = “false” 預設值,可以不配

控制台輸出3條語句:

Update user set deptId = null where deptId = 1;//解決父子關係

           Delete from user where deptId is null; //先幹掉子類           Delete from user where id=1; //再自殺若inverse = “true” 代表控制權要反轉,交給多方維護,相率會提高;   控制台輸出2條語句:           Delete from user where deptId=1; //自殺           Delete from user where id=1;//自殺

57.PO類的定義規範?

答:①是一個共有類;

②提供無參共有構造方法;

③屬性是私人的;

④為私人屬性提供共有的getter/setter;

⑤不能使用final修飾;

⑥可以實現java.io.Serializbale介面;

⑦如果是基本類型,需要使用它的封裝類;

58.請分別寫出一對一,一對多,多對一,多對多的PO類對應檔?

59.抽取BaseAction的理由?

答:①通過實現RequestAware、SessionAware、ApplicationAware介面,自訂protected Map request/session/application,並提供getter方法,繼承setter方法,此時再編寫Action類時,依賴的是自己的API,將來架構升級改造時,只要修改BaseAction就可以了,可以更好的實現與Struts2的解耦合;

②可以在BaseAction中抽取一些公用的操作方法;

60.XML文檔定義有幾種形式?它們之間有何本質區別?解析XML文檔有哪幾種方式?

答:(1)XML文檔有兩種約束方式:DTD約束和Schema約束;

(2)區別:

①DTD不符合XML的文法結構,schema符合XML的文法結構;

②DTD的約束擴充性比較差,XML文檔只能引入一個DTD的檔案。schema可以引入多個檔案;

③DTD不支援名稱空間(理解包結構),schema支援名稱空間;

④DTD支援資料比較少,schema支援更多的資料類型;

(3)解析方式主要有三種:

①DOM解析:

(a)載入整個xml的文檔到記憶體中,形成樹狀結構,產生對象;

(b)容易產生記憶體溢出;

(c)可以做增刪改;

②SAX解析

(a)邊讀邊解析;

(b)不可以做增刪改;

③ DOM4J解析(hibernate底層採用)

(a)可讓SAX解析也產生樹狀結構。

(b)主要api開發步驟:

1)SAXReader.read(xxx.xml)代表解析xml的文檔,返回對象是Document;

2)Document.getRootElement(),返回的是文檔的根節點,是Element對象;

3)Element:

.element(...) -- 獲得指定名稱第一個子項目。可以不指定名稱;

.elements(...) -- 獲得指定名稱的所有子項目。可以不指定名稱;

.getText() -- 獲得當前元素的常值內容;

.elementText(...) -- 獲得指定名稱子項目的文本值

.addElement() -- 添加子節點

.setText() -- 設定子標籤內容

4)XMLWriter.write("..") --寫出

5)XMLWriter.close() --關閉輸出資料流

61.你們項目為什麼選用maven進行構建?

答:①首先,maven是一個優秀的項目構建工具。使用maven,可以很方便的對項目進行分模組構建,這樣在開發與測試打包部署時,效率會提高很多。

②其次,maven可以進行依賴的管理。使用maven,可以將不同系統的依賴進行統一管理,並且可以進行依賴之間的傳遞和繼承。

【JAVA秒會技術之秒殺面試官】JavaEE常見面試題(五)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.