- ~
Math.round(11.5) 等於多少 (). Math.round(-11.5) 等於多少 ( )
正確答案: C java
A 11 ,-11
B 11 ,-12
C 12 ,-11
D 12 ,-12算法
floor : 意爲地板,指向下取整,返回不大於它的最大整數 ceil : 意爲天花板,指向上取整,返回不小於它的最小整數 round : 意爲大約,表示「四捨五入」,而四捨五入是往大數方向入。Math.round(11.5)的結果爲12,Math.round(-11.5)的結果爲-11而不是-12
Math類中提供了三個與取整有關的方法:ceil,floor,round,這些方法的做用於它們的英文名稱的含義相對應,例如:ceil的英文意義是天花板,該方法就表示向上取整,Math.ceil(11.3)的結果爲12,Math.ceil(-11.6)的結果爲-11;floor的英文是地板,該方法就表示向下取整,Math.floor(11.6)的結果是11,Math.floor(-11.4)的結果-12;最難掌握的是round方法,他表示「四捨五入」,算法爲Math.floor(x+0.5),即將原來的數字加上0.5後再向下取整,因此,Math.round(11.5)的結果是12,Math.round(-11.5)的結果爲-11.
關於sleep()和wait(),如下描述錯誤的一項是( )
正確答案: D 安全
A sleep是線程類(Thread)的方法,wait是Object類的方法;
B sleep不釋放對象鎖,wait放棄對象鎖
C sleep暫停線程、但監控狀態仍然保持,結束後會自動恢復
D wait後進入等待鎖定池,只有針對此對象發出notify方法後得到對象鎖進入運行狀態多線程
Java中的多線程是一種搶佔式的機制,而不是分時機制。搶佔式的機制是有多個線程處於可運行狀態,可是隻有一個線程在運行。 共同點 : 1. 他們都是在多線程的環境下,均可以在程序的調用處阻塞指定的毫秒數,並返回。 2. wait()和sleep()均可以經過interrupt()方法 打斷線程的暫停狀態 ,從而使線程馬上拋出InterruptedException。 若是線程A但願當即結束線程B,則能夠對線程B對應的Thread實例調用interrupt方法。若是此刻線程B正在wait/sleep/join,則線程B會馬上拋出InterruptedException,在catch() {} 中直接return便可安全地結束線程。 須要注意的是,InterruptedException是線程本身從內部拋出的,並非interrupt()方法拋出的。對某一線程調用 interrupt()時,若是該線程正在執行普通的代碼,那麼該線程根本就不會拋出InterruptedException。可是,一旦該線程進入到 wait()/sleep()/join()後,就會馬上拋出InterruptedException 。 不一樣點 : 1.每一個對象都有一個鎖來控制同步訪問。Synchronized關鍵字能夠和對象的鎖交互,來實現線程的同步。 sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其餘線程可使用同步控制塊或者方法。 2.wait,notify和notifyAll只能在同步控制方法或者同步控制塊裏面使用,而sleep能夠在任何地方使用 3.sleep必須捕獲異常,而wait,notify和notifyAll不須要捕獲異常 4.sleep是線程類(Thread)的方法,致使此線程暫停執行指定時間,給執行機會給其餘線程,可是監控狀態依然保持,到時後會自動恢復。調用sleep不會釋放對象鎖。 5.wait是Object類的方法,對此對象調用wait方法致使本線程放棄對象鎖,進入等待此對象的等待鎖定池,只有針對此對象發出notify方法(或notifyAll)後本線程才進入對象鎖定池準備得到對象鎖進入運行狀態。