Java試題筆試題目答案
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
參見 Effective Java 第 69 條,獲取更多關於爲什麼應該在循環中來調用 wait 方法的內容。
-
六年級上冊第一單元填空題練習
1、圓內最長的線段是(),圓規兩腳之間的距離是()。2、圓有()條半徑,圓有()條直徑。3、()確定圓的位置,()確定圓的大小。4、()決定圓的大小,()決定圓的位置。5、()決定圓的位置,()決定圓的大小。6、在同一個圓中,直徑的長度是半徑的(),半徑的長度是直徑的()。7、在同一...
-
一年級上學期語文蘇教版測試題
一、拼音填漢字。péngyǒushuōhuànǐmenwànsuìchūnjiémǔqīnchūntiānláile二、把詞語補充完整。親()好()紅()綠()春()大()柳()花()泉水()()百()齊()()致勃勃()往()來()顏()色()暖()開()歌()語()裏()雲()花盛()()風拂()三、古詩樂園-填空。春曉____...
-
三年級上學期語文課後訓練題
布魯斯躺在木板上,望着屋頂,無意中看到一隻蜘蛛正在結網。忽然,一陣大風吹來,絲斷了,網破了。蜘蛛重新扯起細絲再次結網,又被風吹斷了。就這樣___了斷,____了結,一連結了七次,都沒有結成。可蜘蛛_________,照樣_________,這一次它終於結成了一張網。布魯斯感動極了。他猛...
-
作文試題的評析
作文試題請以“人之常情”爲題寫一篇文章。?要求:①自主確定文體(詩歌、戲劇除外)。②不少於800字。?試題評析高考天津卷作文試題依舊爲命題形式,基本上延續了2007年高考天津卷作文試題“有句話常掛嘴邊”的命題風格,簡潔入題,生活化意味很濃,貼近考生實際,意在考查...