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

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

2020年程序員常見Java面試題含答案

更新時間:2020-06-30 14:53:24 來源:動力節點 瀏覽2246次

1)Java中能創建volatile數組嗎?

能,Java中可以創建volatile類型數組,不過只是一個指向數組的引用,而不是整個數組。我的意思是,如果改變引用指向的數組,將會受到volatile的保護,但是如果多個線程同時改變數組的元素,volatile標示符就不能起到之前的保護作用了。

2)volatile能使得一個非原子操作變成原子操作嗎?

一個典型的例子是在類中有一個long類型的成員變量。如果你知道該成員變量會被多個線程訪問,如計數器、價格等,你最好是將其設置為volatile。為什么?因為Java中讀取long類型變量不是原子的,需要分成兩步,如果一個線程正在修改該long變量的值,另一個線程可能只能看到該值的一半(前32位)。但是對一個volatile型的long或double變量的讀寫是原子。

3)volatile修飾符的有過什么實踐?

一種實踐是用volatile修飾long和double變量,使其能按原子類型來讀寫。double和long都是64位寬,因此對這兩種類型的讀是分為兩部分的,第一次讀取第一個32位,然后再讀剩下的32位,這個過程不是原子的,但Java中volatile型的long或double變量的讀寫是原子的。volatile修復符的另一個作用是提供內存屏障(memory barrier),例如在分布式框架中的應用。簡單的說,就是當你寫一個volatile變量之前,Java內存模型會插入一個寫屏障(write barrier),讀一個volatile變量之前,會插入一個讀屏障(read barrier)。意思就是說,在你寫一個volatile域時,能保證任何線程都能看到你寫的值,同時,在寫之前,也能保證任何數值的更新對所有線程是可見的,因為內存屏障會將其他所有寫的值更新到緩存。

4)volatile類型變量提供什么保證?

volatile變量提供順序和可見性保證,例如,JVM或者JIT為了獲得更好的性能會對語句重排序,但是volatile類型變量即使在沒有同步塊的情況下賦值也不會與其他語句重排序。volatile提供happens-before的保證,確保一個線程的修改能對其他線程是可見的。某些情況下,volatile還能提供原子性,如讀64位數據類型,像long和double都不是原子的,但volatile類型的double和long就是原子的。

5)10個線程和2個線程的同步代碼,哪個更容易寫?

從寫代碼的角度來說,兩者的復雜度是相同的,因為同步代碼與線程數量是相互獨立的。但是同步策略的選擇依賴于線程的數量,因為越多的線程意味著更大的競爭,所以你需要利用同步技術,如鎖分離,這要求更復雜的代碼和專業知識。

6)你是如何調用wait()方法的?使用if塊還是循環?為什么?

wait()方法應該在循環調用,因為當線程獲取到CPU開始執行的時候,其他條件可能還沒有滿足,所以在處理前,循環檢測條件是否滿足會更好。下面是一段標準的使用wait和notify方法的代碼:

//?The?standard?idiom?for?using?the?wait?method
synchronized(obj)?{
while(condition?does?not?hold)
obj.wait();?//?(Releases?lock,?and?reacquires?on?wakeup)
...?//?Perform?action?appropriate?to?condition
}

7)什么是多線程環境下的偽共享(false sharing)?

偽共享是多線程系統(每個處理器有自己的局部緩存)中一個眾所周知的性能問題。偽共享發生在不同處理器的上的線程對變量的修改依賴于相同的緩存行,如下圖所示:

2020年程序員常見Java面試題含答案

有經驗程序員的Java面試題

偽共享問題很難被發現,因為線程可能訪問完全不同的全局變量,內存中卻碰巧在很相近的位置上。如其他諸多的并發問題,避免偽共享的最基本方式是仔細審查代碼,根據緩存行來調整你的數據結構。

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲国产成人久久一区二区三区 | 国产精品自拍一区 | 国产精品自在线拍国产 | 中文字幕第13亚洲另类 | 成人国产免费 | 天天综合日日噜噜噜 | 日日久| 国产成人精品一区二区三在线观看 | 夜色资源网yese321 | 天天操天天操天天操 | 非洲黑人xxxxxbbbbbb | 成人在线不卡视频 | 久久伊人成人网 | 国产成人亚洲精品91专区手机 | 在线观看日本免费视频大片一区 | 免费看欧美一级特黄α大片 | 色综合久久天天综合绕观看 | 亚洲国产经典 | 全黄h全肉边做边吃奶在线观看 | 国内外成人在线视频 | 日韩黄网 | 女人18毛片一级毛片在线 | 四虎精品免费永久在线 | 国产精品每日更新在线观看 | 亚洲网在线 | 日韩欧美亚洲国产 | 狠狠操天天爱 | 欧美一级毛片免费高清的 | 欧美综合亚洲图片综合区 | 四虎4hutv永久在线影院 | 成人免费视频视频在线不卡 | 在线观看精品国产 | 精品久久久久久久高清 | 国产在线精彩视频二区 | 一区二区三区在线免费视频 | 欧美曰韩免费视频一区 | 欧美色网 | 99热最新网址 | 亚洲国产精品yw在线观看 | 久久久精品国产四虎影视 | 日本免费一区二区三区a区 日本免费一区二区三区看片 |