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

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

2020年Java經典企業筆試題

更新時間:2020-05-21 14:36:54 來源:動力節點 瀏覽2493次

什么是死鎖(deadlock)?

兩個進程都在等待對方執行完畢才能繼續往下執行的時候就發生了死鎖。結果就是兩個進程都陷入了無限的等待中。

代碼表示:

代碼描述:

publicclassDieLockDemo{
publicstaticvoidmain(String[]args){
DieLockdl1=newDieLock(true);
DieLockdl2=newDieLock(false);
?dl1.start();
?dl2.start();
}
}

*...理想狀態下dl1線程為true從if執行先打出"ifobjA"然后再接著打出"ifobjB"之后釋放A、B的鎖對象,之后dl2線程執行else語句打出"elseobjB","elseobjA"。

非理想狀態下dl1先打出"ifobjA",之后線程dl2執行打出"elseobjB",然后1、2線程的鎖對象A和B都處于被鎖的狀態,兩個線程爭奪鎖對象發生死鎖現象。..* 

 publicclassDieLockextendsThread{
? ? privatebooleanflag;
? ? publicDieLock(booleanflag){
? ? this.flag=flag;
? ? }
? ? @Override
? ? publicvoidrun(){
? ? if(flag){
? ? synchronized(MyLock.objA){
? ? System.out.println("ifobjA");
? ? synchronized(MyLock.objB){
? ? System.out.println("ifobjB");
? ? }
? ? }
? ? }else{
? ? synchronized(MyLock.objB){
? ? System.out.println("elseobjB");
? ? synchronized(MyLock.objA){
? ? System.out.println("elseobjA");
? ? }
? ? }
? ? }
? ? }
? ? }

如何確保N個線程可以訪問N個資源同時又不導致死鎖?

使用多線程的時候,一種非常簡單的避免死鎖的方式就是:指定獲取鎖的順序,并強制線程按照指定的順序獲取鎖。因此,如果所有的線程都是以同樣的順序加鎖和釋放鎖,就不會出現死鎖了。

Java集合類框架的基本接口有哪些?

Java集合類提供了一套設計良好的支持對一組對象進行操作的接口和類。Java集合類里面最基本的接口有:

Collection:代表一組對象,每一個對象都是它的子元素。

Set:不包含重復元素的Collection。

List:有順序的collection,并且可以包含重復元素。

Map:可以把鍵(key)映射到值(value)的對象,鍵不能重復。

什么是迭代器(Iterator)?

Iterator接口提供了很多對集合元素進行迭代的方法。每一個集合類都包含了可以返回迭代器實例的迭代方法。迭代器可以在迭代的過程中刪除底層集合的元素。

Iterator和ListIterator的區別是什么?

下面列出了他們的區別:

Iterator可用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。

Iterator對集合只能是前向遍歷,ListIterator既可以前向也可以后向。

ListIterator實現了Iterator接口,并包含其他的功能,比如:增加元素,替換元素,獲取前一個和后一個元素的索引,等等。

Java中的HashMap的工作原理是什么?

Java中的HashMap是以鍵值對(key-value)的形式存儲元素的。HashMap需要一個hash函數,它使用hashCode()和equals()方法來向集合/從集合添加和檢索元素。當調用put()方法的時候,HashMap會計算key的hash值,然后把鍵值對存儲在集合中合適的索引上。如果key已經存在了,value會被更新成新值。HashMap的一些重要的特性是它的容量(capacity),負載因子(loadfactor)和擴容極限(thresholdresizing)。

HashMap和Hashtable有什么區別?

HashMap和Hashtable都實現了Map接口,因此很多特性非常相似。但是,他們有以下不同點:

HashMap允許鍵和值是null,而Hashtable不允許鍵或者值是null。

Hashtable是同步的,而HashMap不是。因此,HashMap更適合于單線程環境,而Hashtable適合于多線程環境。

HashMap提供了可供應用迭代的鍵的集合,因此,HashMap是快速失敗的。另一方面,Hashtable提供了對鍵的列舉(Enumeration)。

o一般認為Hashtable是一個遺留的類。

數組(Array)和列表(ArrayList)有什么區別?什么時候應該使用Array而不是ArrayList?

下面列出了Array和ArrayList的不同點:

Array可以包含基本類型和對象類型,ArrayList只能包含對象類型。

Array大小是固定的,ArrayList的大小是動態變化的。

ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。

對于基本類型數據,集合使用自動裝箱來減少編碼工作量。但是,當處理固定大小的基本數據類型的時候,這種方式相對比較慢。

ArrayList和LinkedList有什么區別?

ArrayList和LinkedList都實現了List接口,他們有以下的不同點:

ArrayList是基于索引的數據接口**,它的底層是數組**。它可以以O(1)時間復雜度對元素進行隨機訪問。與此對應,LinkedList是以元素鏈表的形式存儲它的數據,每一個元素都和它的前一個和后一個元素鏈接在一起,在這種情況下,查找某個元素的時間復雜度是O(n)。

相對于ArrayList,LinkedList的插入,添加,刪除操作速度更快,因為當元素被添加到集合任意位置的時候,不需要像數組那樣重新計算大小或者是更新索引。

LinkedList比ArrayList更占內存,因為LinkedList為每一個節點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。

也可以參考ArrayListvs.LinkedList。

2020年Java經典企業筆試題

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久99精品一区二区三区 | 99久久免费费视频在线观看 | 夜色资源在线观看免费 | 一级特黄高清完整大片 | 国产精品怡红院永久免费 | 色婷婷综合在线视频最新 | 看全色黄大色黄大片爽一下 | 国产精品爱久久久久久久 | 永久免费的啪啪免费的网址 | 国产免费美女视频 | 日本亚洲国产精品久久 | 国外免费一级 | 在线观看日本免费不卡 | 四虎最新网站 | 99久久99热久久精品免费看 | 国产精品99久久久久久小说 | 五月婷婷中文字幕 | 久久国产免费福利永久 | 毛片网站大全 | 日韩毛片最新看 | 国内精品久久久久影 | 曰本毛片va看到爽不卡 | 四虎影永久在线观看网址 | 成人影院一区二区三区 | 天天操天天操天天射 | 亚洲成人一区二区 | 日韩精品久久不卡中文字幕 | 日日日干干干 | 亚洲国产精品久久久久久网站 | 免费一区二区三区免费视频 | 大学生久久香蕉国产线看观看 | 国产午夜亚洲精品不卡福利 | 国产第九页 | 中文字幕亚洲一区二区va在线 | 另类图片色 | 国产高清美女一级a毛片久久w | 99视频在线观看免费 | 女人18毛片a级毛片免费 | 尤物视频在线免费观看 | 欧美啊v在线观看 | 日本不卡免费 |