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

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

最新經典java三大框架的面試題

更新時間:2020-03-25 15:54:39 來源:動力節點 瀏覽2392次


  ArrayList和Vector的區別


  這兩個類都實現了List接口(List接口繼承了Collection接口),他們都是有序集合,即存儲在這兩個集合中的元素的位置都是有順序的,相當于一種動態的數組,我們以后可以按位置索引號取出某個元素,并且其中的數據是允許重復的,這是與HashSet之類的集合的最大不同處,HashSet之類的集合不可以按索引號去檢索其中的元素,也不允許有重復的元素。


  ArrayList與Vector的區別主要包括兩個方面:.


 ?。?)同步性:


  Vector是線程安全的,也就是說是它的方法之間是線程同步的,而ArrayList是線程序不安全的,它的方法之間是線程不同步的。如果只有一個線程會訪問到集合,那最好是使用ArrayList,因為它不考慮線程安全,效率會高些;如果有多個線程會訪問到集合,那最好是使用Vector,因為不需要我們自己再去考慮和編寫線程安全的代碼。


  (2)數據增長:


  ArrayList與Vector都有一個初始的容量大小,當存儲進它們里面的元素的個數超過了容量時,就需要增加ArrayList與Vector的存儲空間,每次要增加存儲空間時,不是只增加一個存儲單元,而是增加多個存儲單元,每次增加的存儲單元的個數在內存空間利用與程序效率之間要取得一定的平衡。Vector默認增長為原來兩倍,而ArrayList的增長策略在文檔中沒有明確規定(從源代碼看到的是增長為原來的1.5倍)。ArrayList與Vector都可以設置初始的空間大小,Vector還可以設置增長的空間大小,而ArrayList沒有提供設置增長空間的方法。


  總結:即Vector增長原來的一倍,ArrayList增加原來的0.5倍。


  HashMap和Hashtable的區別


  HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在于HashMap允許空(null)鍵值(key),由于非線程安全,在只有一個線程訪問的情況下,效率要高于Hashtable。


  HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。


  HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。


  Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Mapinterface的一個實現。


  最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap就必須為之提供同步。


  就HashMap與HashTable主要從三方面來說。


  一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java1.2引進的Map接口的一個實現


  二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的


  三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value


  List和Map區別?


  一個是存儲單列數據的集合,另一個是存儲鍵和值這樣的雙列數據的集合,List中存儲的數據是有順序,并且允許重復;Map中存儲的數據是沒有順序的,其鍵是不能重復的,它的值是可以有重復的。


  List,Set,Map是否繼承自Collection接口?


  List,Set是,Map不是


  List、Map、Set三個接口,存取元素時,各有什么特點?


 ?。ㄟ@樣的題比較考水平,兩個方面的水平:一是要真正明白這些內容,二是要有較強的總結和表述能力。)


  首先,List與Set具有相似性,它們都是單列元素的集合,所以,它們有一個共同的父接口,叫Collection。Set里面不允許有重復的元素,即不能有兩個相等(注意,不是僅僅是相同)的對象,即假設Set集合中有了一個A對象,現在我要向Set集合再存入一個B對象,但B對象與A對象equals相等,則B對象存儲不進去,所以,Set集合的add方法有一個boolean的返回值,當集合中沒有某個元素,此時add方法可成功加入該元素時,則返回true,當集合含有與某個元素equals相等的元素時,此時add方法無法加入該元素,返回結果為false。Set取元素時,不能細說要取第幾個,只能以Iterator接口取得所有的元素,再逐一遍歷各個元素。


  List表示有先后順序的集合,注意,不是那種按年齡、按大小、按價格之類的排序。當我們多次調用add(Obje)方法時,每次加入的對象就像火車站買票有排隊順序一樣,按先來后到的順序排序。有時候,也可以插隊,即調用add(intindex,Obje)方法,就可以指定當前對象在集合中的存放位置。一個對象可以被反復存儲進List中,每調用一次add方法,這個對象就被插入進集合中一次,其實,并不是把這個對象本身存儲進了集合中,而是在集合中用一個索引變量指向這個對象,當這個對象被add多次時,即相當于集合中有多個索引指向了這個對象,如圖x所示。List除了可以用Iterator接口取得所有的元素,再逐一遍歷各個元素之外,還可以調用get(indexi)來明確說明取第幾個。


  Map與List和Set不同,它是雙列的集合,其中有put方法,定義如下:put(objkey,objvalue),每次存儲時,要存儲一對key/value,不能存儲重復的key,這個重復的規則也是按equals比較相等。取則可以根據key獲得相應的value,即get(Objectkey)返回值為key所對應的value。另外,也可以獲得所有的key的結合,還可以獲得所有的value的結合,還可以獲得key和value組合成的Map.Entry對象的集合。


  List以特定次序來持有元素,可有重復元素。Set無法擁有重復元素,內部排序。Map保存key-value值,value可多值。


  說出ArrayList,Vector,LinkedList的存儲性能和特性


  ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差。而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,索引就變慢了,但是插入數據時只需要記錄本項的前后項即可,所以插入速度較快。


  LinkedList也是線程不安全的,LinkedList提供了一些方法,使得LinkedList可以被當作堆棧和隊列來使用。


最新經典java三大框架的面試題


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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人精品一区二区www | 国产在线91观看免费观看 | 四虎影视网站 | 思思久久这里只精品99re66 | 亚洲手机中文字幕 | 天堂日韩 | 色婷婷精品综合久久狠狠 | 免费一级毛片不卡在线播放 | 四虎最新永久免费网址 | 欧美国产成人免费观看永久视频 | 亚洲qingse | 草久视频在线观看 | 老司机午夜在线视频免费观 | 久久99精品久久久66 | 国产特黄一级毛片特黄 | 久久婷婷五综合一区二区 | 亚洲女人毛片 | 久久机热一这里只精品 | 色综合精品久久久久久久 | 四虎影视4hu4虎成人 | 久久久亚洲欧洲日产国码二区 | 成人97在线观看免费高清 | 韩国办公室激情 | 亚洲第一在线 | 日本一级片免费观看 | www深夜视频在线观看高清 | 国产精品入口麻豆高清在线 | 天天射综合网站 | 国外成人在线视频 | 欧美激情一区 | 欧美开嫩苞实拍视频在线观看 | 狠狠插网站 | 国产欧美一区二区精品性色99 | 91手机看片国产福利精品 | 精品中文字幕一区在线 | 久久精品中文字幕极品 | 亚洲高清在线播放 | 高清二区 | 久久毛片| 亚洲韩精品欧美一区二区三区 | 中国国语毛片免费观看视频 |