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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 java后臺開發(fā)筆試題匯總

java后臺開發(fā)筆試題匯總

更新時間:2020-06-22 13:26:42 來源:動力節(jié)點 瀏覽4512次

java筆試題是大家比較關心的問題,因為在找工作的時候,都會有java筆試題的測試,這直接影響面試結果,動力節(jié)點java培訓機構的小編為大家準備了java后臺開發(fā)筆試題匯總,有需要的小伙伴可以看一看。

java后臺開發(fā)筆試題

1、使用Spring框架的好處是什么?

輕量:Spring是輕量的,基本的版本大約2MB

控制反轉(IOC):Spring通過控制反轉實現(xiàn)類松散耦合,對象們給出它們的依賴,而不是創(chuàng)建或查找依賴的對象們。

面向切面的編程(AOP):Spring支持面向切面的編程,并且把業(yè)務邏輯和系統(tǒng)服務分開。

容器:spring包含并管理應用中對象的生命周期和配置。

MVC框架:Spring的WEB框架是個精心設計的框架,是Web框架的一個很好的替代品。

事務管理:Spring提供一個持續(xù)的事務管理接口,可以擴展到上至本地事務下至全局事務。

異常處理:Spring提供方便的API把具體技術相關的異常轉換為一致的unchecked異常。

2、Java工廠模式和Spring IOC的區(qū)別在哪?

Java工廠是在工廠中修改,在工廠中修改就要重修編譯工廠類,重新編譯的話就要先停了JVM再重新啟動。

Spring IOC是熱插拔的,在XML中直接修改,修改xmlspring就會立即發(fā)現(xiàn)你改動了XML,會再重新讀一遍XML,就會發(fā)現(xiàn)新改動了,根本不用重新啟動JVM。

3、ORM框架(Object relation mapping)有什么概念?

ORM對象關系映射關系,面向對象的對象模型和關系型數(shù)據(jù)之間的相互轉換。

Hibernate和Mybatis都是常用的ORM框架,兩者區(qū)別:

(1)mybatis手寫SQL,而hibernate提供映射機制,開發(fā)人員無需擔心。

(2)mybatis控制更細粒度,但可移植型差,hibernate開發(fā)DAO很簡單,可移植性好。

(3)hibernate擁有完整的日志系統(tǒng),mybatis則欠缺一些

(4) mybatis相比hibernate需要關心很多細節(jié)

(5)sql直接優(yōu)化上,mybatis要比hibernate方便很多

4、數(shù)據(jù)庫事務的四大特性及事務隔離級別是什么?

(1)事務的四大特性:

原子性(Atomicity):事務包含的所有操作要么全部成功,要么全部失敗回滾。

一致性(Consistency):一個事務執(zhí)行之前和執(zhí)行之后都必須處于一致性狀態(tài)。

隔離性(Isolation):當多個用戶并發(fā)訪問數(shù)據(jù)庫時,比如操作同一張表時,數(shù)據(jù)庫為每一個用戶開啟的事務,不能被其他事務的操作所干擾,多個并發(fā)事務之間要相互隔離。

持久性(Durability):一個事務一旦被提交了,那么對數(shù)據(jù)庫中的數(shù)據(jù)的改變就是永久性的,即便是在數(shù)據(jù)庫系統(tǒng)遇到故障的情況下也不會丟失提交事務的操作。

(2)事務隔離:

更新丟失:兩事務同時更新,一個失敗回滾覆蓋另一個事務的更新。

臟讀:事務T1讀取到事務T2修改了但是還未提交的數(shù)據(jù),之后事務T2又回滾其更新操作,導致事務T1讀到的是臟數(shù)據(jù)。

不可重復讀:事務T1讀取某個數(shù)據(jù)后,事務T2對其做了修改,當事務T1再次讀該數(shù)據(jù)時得到與前一次不同的值。

虛讀(幻讀):事務T1讀取在讀取某范圍數(shù)據(jù)時,事務T2又插入一條數(shù)據(jù),當事務T1再次數(shù)據(jù)這個范圍數(shù)據(jù)時發(fā)現(xiàn)不一樣了,出現(xiàn)了一些“幻影行”。

不可重復讀和臟讀的區(qū)別:臟讀是某一事務讀取了另一個事務未提交的臟數(shù)據(jù),而不可重復讀則是讀取了前一事務提交的數(shù)據(jù)。

幻讀和不可重復讀的異同:都是讀取了另一條已經提交的事務(這點就臟讀不同),所不同的是不可重復讀查詢的都是同一個數(shù)據(jù)項,而幻讀針對的是一批數(shù)據(jù)整體(比如數(shù)據(jù)的個數(shù))。

(3)事務隔離的級別:

讀未提交(1000):只限制同一數(shù)據(jù)寫事務禁止其他寫事務。解決”更新丟失”。

讀已提交(1100):只限制同一數(shù)據(jù)寫事務禁止其它讀寫事務。解決”臟讀”,以及”更新丟失”。

可重復讀(1110):限制同一數(shù)據(jù)寫事務禁止其他讀寫事務,讀事務禁止其它寫事務(允許讀)。解決”不可重復讀”,以及”更新丟失”和”臟讀”。

串行化(1111):提供嚴格的事務隔離。它要求事務序列化執(zhí)行,事務只能一個接著一個地執(zhí)行,但不能并發(fā)執(zhí)行。如果僅僅通過“行級鎖”是無法實現(xiàn)事務序列化的,必須通過其他機制保證新插入的數(shù)據(jù)不會被剛執(zhí)行查詢操作的事務訪問到。

5、假設有一張用戶表,正常的表只能存放大概一千萬或是兩千萬左右的數(shù)據(jù),但是有上億的用戶?怎么存儲?

橫向分割或者縱向分割。

不太嚴格的將,對于海量數(shù)據(jù)的數(shù)據(jù)庫,如果是因為表多而數(shù)據(jù)多,這時候適合垂直切分,即把關系緊密的(比如同一模塊)的表切分出來出來放在一個servlet上。如果對于表并不多,但每張表的數(shù)據(jù)非常多,這時候就適合水平切分,即把表的數(shù)據(jù)按某種規(guī)則切分到對個數(shù)據(jù)庫(server)上。

可以橫向分割,把表分割成多個表然后分布式存儲。

6、庫函數(shù)和系統(tǒng)調用是什么?

(1)系統(tǒng)調用是為了方便應用使用操作系統(tǒng)的接口,而庫函數(shù)是為了方便入門編寫應用程序而引出的,比如自己編寫一個函數(shù)其實也可以說是一個庫函數(shù)。

(2)系統(tǒng)調用可以理解為內核提供給我們在用戶態(tài)的接口函數(shù),可以認為是某種內核的庫函數(shù)。

(3)read()函數(shù)是系統(tǒng)調用,而fread()函數(shù)是C標準庫函數(shù)。

7、Java設計模式有哪些?

創(chuàng)建型模式(5種):工廠方法模式,抽象工廠模式,單例模式,建造者模式,原型模式。

結構型模式(7種):適配器模式,裝飾器模式,代理模式,外觀模式,橋接模式,組合模式,享元模式。

行為型模式(11種):策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。

8、講講類的實例化順序,比如父類靜態(tài)數(shù)據(jù),構造函數(shù),字段,子類靜態(tài)數(shù)據(jù),構造函數(shù),字段,當new的時候,他們的執(zhí)行順序。

父類靜態(tài)成員和靜態(tài)初始化塊 ,按在代碼中出現(xiàn)的順序依次執(zhí)行

子類靜態(tài)成員和靜態(tài)初始化塊 ,按在代碼中出現(xiàn)的順序依次執(zhí)行

結論:對象初始化的順序,先靜態(tài)方法,再構造方法,每個又是先基類后子類

父類實例成員和實例初始化塊 ,按在代碼中出現(xiàn)的順序依次執(zhí)行

父類構造方法

子類實例成員和實例初始化塊 ,按在代碼中出現(xiàn)的順序依次執(zhí)行

子類構造方法

9、請你講述數(shù)組和鏈表數(shù)據(jù)結構之間各自的時間復雜度。

數(shù)組,是將元素在內存中連續(xù)存放,由于每個元素占用內存相同,可以通過下標迅速訪問數(shù)組中任何元素。但是如果要在數(shù)組中增加一個元素,需要移動大量元素,在內存中空出一個元素的空間,然后將要增加的元素放在其中。同樣的道理,如果想刪除一個元素,同樣需要移動大量元素去填掉被移動的元素。如果應用需要快速訪問數(shù)據(jù),很少插入和刪除元素,就應該用數(shù)組。

鏈表 中的元素在內存中不是順序存儲的,而是通過存在元素中的指針聯(lián)系到一起,每個結點包括兩個部分:一個是存儲 數(shù)據(jù)元素 的 數(shù)據(jù)域,另一個是存儲下一個結點地址的 指針。

如果要訪問鏈表中一個元素,需要從第一個元素開始,一直找到需要的元素位置。但是增加和刪除一個元素對于鏈表數(shù)據(jù)結構就非常簡單了,只要修改元素中的指針就可以了。如果應用需要經常插入和刪除元素你就需要用鏈表。

內存存儲區(qū)別

數(shù)組從棧中分配空間, 對于程序員方便快速,但自由度小。

鏈表從堆中分配空間, 自由度大但申請管理比較麻煩。

邏輯結構區(qū)別

數(shù)組必須事先定義固定的長度(元素個數(shù)),不能適應數(shù)據(jù)動態(tài)地增減的情況。當數(shù)據(jù)增加時,可能超出原先定義的元素個數(shù);當數(shù)據(jù)減少時,造成內存浪費。

鏈表動態(tài)地進行存儲分配,可以適應數(shù)據(jù)動態(tài)地增減的情況,且可以方便地插入、刪除數(shù)據(jù)項。(數(shù)組中插入、刪除數(shù)據(jù)項時,需要移動其它數(shù)據(jù)項)

總結

存取方式上,數(shù)組可以順序存取或者隨機存取,而鏈表只能順序存取;

存儲位置上,數(shù)組邏輯上相鄰的元素在物理存儲位置上也相鄰,而鏈表不一定;

存儲空間上,鏈表由于帶有指針域,存儲密度不如數(shù)組大;

按序號查找時,數(shù)組可以隨機訪問,時間復雜度為O(1),而鏈表不支持隨機訪問,平均需要O(n);

按值查找時,若數(shù)組無序,數(shù)組和鏈表時間復雜度均為O(1),但是當數(shù)組有序時,可以采用折半查找將時間復雜度降為O(logn);

插入和刪除時,數(shù)組平均需要移動n/2個元素,而鏈表只需修改指針即可;

空間分配方面:

數(shù)組在靜態(tài)存儲分配情形下,存儲元素數(shù)量受限制,動態(tài)存儲分配情形下,雖然存儲空間可以擴充,但需要移動大量元素,導致操作效率降低,而且如果內存中沒有更大塊連續(xù)存儲空間將導致分配失敗;

鏈表存儲的節(jié)點空間只在需要的時候申請分配,只要內存中有空間就可以分配,操作比較靈活高效;

java后臺開發(fā)筆試題匯總

以上就是動力節(jié)點java培訓機構的小編針對“java后臺開發(fā)筆試題匯總”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美精品第1页www劲爆 | 日本ccc三级 | 日本欧美一区二区三区免费不卡 | 香蕉国产人午夜视频在线观看 | 日韩欧美一二三区 | 亚洲欧美视频在线 | 国产日韩亚洲欧洲一区二区三区 | 在线免费福利 | 久久免费视频7 | 成人精品亚洲 | 欧美三级不卡在线观看视频 | 91看片淫黄大片欧美看国产片 | 久久五月天综合 | 日韩激情淫片免费看 | a色在线| 人人艹在线视频 | 一个人看的www日本高清视频 | 超91视频| 日韩精品在线免费观看 | 亚洲香蕉| 日本特级淫片免费看 | 国产三区视频 | 午夜两性剧场 | 欧美精品在线一区二区三区 | 一级毛片aaa片免费观看 | 欧美精品国产精品 | 国产成人亚洲影视在线 | 成人www| 亚洲欧美日韩国产综合 | 97视频精品全国在线观看 | 污污网站免费入口链接 | 狼人香蕉国产在线视频 | 九九精品国产99精品 | 精品一区中文字幕 | 欧美性受一区二区三区 | 久久天天躁狠狠躁夜夜不卡 | 777毛片| 日本韩国在线观看 | 国产亚洲高清在线精品99 | 欧美一级看片免费观看视频在线 | 一机毛片|