大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2020年常見Java框架面試題

2020年常見Java框架面試題

更新時間:2020-04-07 13:46:04 來源:動力節點 瀏覽2388次


    1.Collections.sort排序內部原理


    在Java6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java7中,內部實現換成了TimSort,其對對象間比較的實現要求更加嚴格


    2.hashMap原理,Java8做的改變


    從結構實現來講,HashMap是數組+鏈表+紅黑樹(JDK1.8增加了紅黑樹部分)實現的。HashMap最多只允許一條記錄的鍵為null,允許多條記錄的值為null。HashMap非線程安全。ConcurrentHashMap線程安全。解決碰撞:當出現沖突時,運用拉鏈法,將關鍵詞為同義詞的結點鏈接在一個單鏈表中,散列表長m,則定義一個由m個頭指針組成的指針數組T,地址為i的結點插入以T(i)為頭指針的單鏈表中。Java8中,沖突的元素超過限制(8),用紅黑樹替換鏈表。


    3.String和StringBuilder的區別


    1)可變與不可變:String不可變,每一次執行“+”都會新生成一個新對象,所以頻繁改變字符串的情況中不用String,以節省內存。


    2)是否多線程安全:StringBuilder并沒有對方法進行加同步鎖,所以是非線程安全的。StringBuffer和String均線程安全。


    4.Vector與Array的區別


    1)ArrayList在內存不夠時默認是擴展50%+1個,Vector是默認擴展1倍。


    2)Vector屬于線程安全級別的,但是大多數情況下不使用Vector,因為線程安全需要更大的系統開銷。


    5.HashMap與Hashtable的區別


    1)歷史原因:Hashtable繼承Dictonary類,HashMap繼承自abstractMap


    2)HashMap允許空的鍵值對,但最多只有一個空對象,而HashTable不允許。


    3)HashTable同步,而HashMap非同步,效率上比HashTable要高


    6.ConncurrentHashMap和hashtable比較(兩個線程并發訪問map中同一條鏈,一個線程在尾部刪除,一個線程在前面遍歷查找,問為什么前面的線程還能正確的查找到后面被另一個線程刪除的節點)


    ConcurrentHashMap融合了hashtable和hashmap二者的優勢。hashtable是做了同步的,即線程安全,hashmap未考慮同步。所以hashmap在單線程情況下效率較高。hashtable在的多線程情況下,同步操作能保證程序執行的正確性。但是hashtable是阻塞的,每次同步執行的時候都要鎖住整個結構,ConcurrentHashMap正是為了解決這個問題而誕生的,


    ConcurrentHashMap允許多個修改操作并發進行,其關鍵在于使用了鎖分離技術(一個Array保存多個Object,使用這些對象的鎖作為分離鎖,get/put時隨機使用任意一個)。它使用了多個鎖來控制對hash表的不同部分進行的修改。在JDK1.6中,有HashEntry結構存在,每次插入將新添加節點作為鏈的頭節點(同HashMap實現),而且每次刪除一個節點時,會將刪除節點之前的所有節點拷貝一份組成一個新的鏈,而將當前節點的上一個節點的next指向當前節點的下一個節點,從而在刪除以后有兩條鏈存在,因而可以保證即使在同一條鏈中,有一個線程在刪除,而另一個線程在遍歷,它們都能工作良好,因為遍歷的線程能繼續使用原有的鏈。


    Java8中,采用volatileHashEntry保存數據,table元素作為鎖;從table數組+單向鏈表加上了紅黑樹。紅黑樹是一種特別的二叉查找樹,特性為:1.節點為紅或者黑2.根節點為黑3.葉節點為黑4.一節點為紅,則葉節點為黑5.一節點到其子孫節點所有路徑上的黑節點數目相同。


    7.ArrayList與LinkedList的區別?


    最明顯的區別是


    ArrrayList底層的數據結構是數組,支持隨機訪問,而LinkedList的底層數據結構書鏈表,不支持隨機訪問。使用下標訪問一個元素,ArrayList的時間復雜度是O(1),而LinkedList是O(n)。LinkedList是雙向鏈表


    8.Java中,Comparator與Comparable有什么不同?


    Comparable接口用于定義對象的自然順序,是排序接口,而comparator通常用于定義用戶定制的順序,是比較接口。我們如果需要控制某個類的次序,而該類本身不支持排序(即沒有實現Comparable接口),那么我們就可以建立一個“該類的比較器”來進行排序。Comparable總是只有一個,但是可以有多個comparator來定義對象的順序。


    9.抽象類是什么?它與接口有什么區別?你為什么要使用過抽象類


    抽象類是指不允許被實例化的類;一個類只能使用一次繼承關系。但是,一個類卻可以實現多個interface。


    abstractclass和interface所反映出的設計理念不同。其實abstractclass表示的是"is-a"關系,interface表示的是"like-a"關系


    實現抽象類和接口的類必須實現其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實現方法。但在Java8中允許接口中有靜態默認的方法。


    接口中定義的變量默認是publicstaticfinal型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。抽象類中的變量默認是friendly型,其值可以在子類中重新定義,也可以重新賦值。


    子類中實現父類中的抽象方法時,可見性可以大于等于父類中的;而接口實現類中的接口方法的可見性只能與接口中相同(public)。


    用抽象類是為了重用。減少編碼量,降低耦合性。


    10.描述Java中的重載和重寫?


    重載和重寫都允許你用相同的名稱來實現不同的功能,但是重載是編譯時活動,而重寫是運行時活動。你可以在同一個類中重載方法,但是只能在子類中重寫方法。重寫必須要有繼承


    重寫:1、在子類中可以根據需要對從基類中繼承來的方法進行重寫。2、重寫的方法和被重寫的方法必須具有相同方法名稱、參數列表和返回類型。3、重寫方法不能使用比被重寫的方法更嚴格的訪問權限。


    重載的時候,方法名要一樣,但是參數類型和個數不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數的區分標準。


2020年常見Java框架面試題


 以上就是動力節點java培訓機構的小編針對“2020年常見Java框架面試題”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 色偷偷尼玛图亚洲综合 | 欧美激情视频一区 | 婷婷第四色 | 天堂在线精品 | 色老头网站久久网 | www.欧美精品 | 亚洲免费在线播放 | 色婷婷精品大全在线视频 | 99精品国产免费久久国语 | 深夜成人影院 | 国产日韩一区 | 久久影片 | 欧美seav在线 | 欧美国产精品亚洲精品第一区 | 久久精品女人毛片国产 | 四虎影院观看视频在线观看 | 欧美久久综合网 | 日本叼嘿视频 | 日本一区二区网站 | 日本中文一二区有码在线观看 | 精品一区二区三区免费观看 | 国产精品99精品久久免费 | 国产精品原创巨作无遮挡 | 色播播影院 | 香蕉久久国产 | 亚洲精品久久久久影 | 欧美乱子伦一区二区三区 | 美女又黄又免费的视频 | 亚洲毛片免费观看 | 香蕉视频网站免费观视频 | 久久99精品久久久久久久不卡 | 国产精品图片 | www.黄| 免费的拍拍视频在线观看 | 99热热久久这里只有精品8 | 99精品国产自在现线观看 | 国产毛片一级国语版 | 欧美伊香蕉久久综合类网站 | 5151四虎永久在线精品免费 | 亚洲成a人v大片在线观看 | 国产在线视频二区 |