1. 程式人生 > >每日10道JAVA題答案(20180607)

每日10道JAVA題答案(20180607)

1D.2C.3BCD.4ABCD.5ABC.6BD.7A.8BCD.9C.10D

1.行內函數
建構函式可以過載
 

2.公式-n=~n+1可推出~n=-n-1,所以~10=-11再加5結果為-6

3.
從位址列顯示來說

forward是伺服器請求資源,伺服器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器.瀏覽器根本不知道伺服器傳送的內容從哪裡來的,所以它的位址列還是原來的地址.
redirect是服務端根據邏輯,傳送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以位址列顯示的是新的URL.

從資料共享來說
forward:轉發頁面和轉發到的頁面可以共享request裡面的資料.
redirect:不能共享資料.

從運用地方來說
forward:一般用於使用者登陸的時候,根據角色轉發到相應的模組.
redirect:一般用於使用者登出登陸時返回主頁面和跳轉到其它的網站等.

從效率來說
forward:高.
redirect:低.

request的forward和response的redirect
1.redirect位址列變化,forward發生在伺服器端內部從而導致瀏覽器不知道響應資源來自哪裡
2.redirect可以重定向到同一個站點上的其他應用程式中的資源,forward 只能將請求 轉發給同一個WEB應用中的元件
3.redirect預設是302碼,包含兩次請求和兩次響應

4.redirect效率較低

4.

5.

A,Java 併發庫 的Semaphore 可以很輕鬆完成訊號量控制,Semaphore可以控制某個資源可被同時訪問的個數,通過 acquire() 獲取一個許可,如果沒有就等待,而 release() 釋放一個許可。
B,CyclicBarrier 主要的方法就是一個:await()。await() 方法沒被呼叫一次,計數便會減少1,並阻塞住當前執行緒。當計數減至0時,阻塞解除,所有在此 CyclicBarrier 上面阻塞的執行緒開始執行。
C,直譯過來就是倒計數(CountDown)門閂(Latch)。倒計數不用說,門閂的意思顧名思義就是阻止前進。在這裡就是指 CountDownLatch.await() 方法在倒計數為0之前會阻塞當前執行緒。

D,Counter不是併發程式設計的同步器

6.

所謂 volatile的措施,就是
1. 每次從記憶體中取值,不從快取中什麼的拿值。這就保證了用 volatile修飾的共享變數,每次的更新對於其他執行緒都是可見的。
2. volatile保證了其他執行緒的立即可見性,就沒有保證原子性。

3.由於有些時候對 volatile的操作,不會被儲存,說明不會造成阻塞。不可用與多執行緒環境下的計數器。

7.

8.在集合框架中,有些類是執行緒安全的,這些都是jdk1.1中的出現的。在jdk1.2之後,就出現許許多多非執行緒安全的類。 下面是這些執行緒安全的同步的類:

vector:就比arraylist多了個同步化機制(執行緒安全),因為效率較低,現在已經不太建議使用。在web應用中,特別是前臺頁面,往往效率(頁面響應速度)是優先考慮的。
statck:堆疊類,先進後出
hashtable:就比hashmap多了個執行緒安全
enumeration:列舉,相當於迭代器
除了這些之外,其他的都是非執行緒安全的類和介面。

喂(V代表vector),SHE(分別代表stack hashtable Enumeration)

9.虛擬機器

10.java題