【276天】我愛刷題系列(35)

叨叨兩句

  1. 扭轉自我評價,便可讓行爲發生巨大變化

牛客網——java專項練習015

1

使用靜態屬性必須以類名作前綴。
正確答案: B 你的答案: B (正確)java

A 正確
B 錯誤less

1 若是是本類使用,能夠直接就用靜態變量名。
2 若是是其餘類使用,可使用類名來調用,也能夠建立一個實例對象來調用。
3 若是靜態變量所在的類是靜態類,那麼無論在本類裏或者在其餘外部類,均可以直接使用靜態變量名。

2

以下的Java程序
public class Test {命令行

public static void main(String[] args) { 
 System.out.println(args[0]); 
 }

}
若採用命令行「java Test one two three」調用,則程序輸出的結果爲:線程

正確答案: B 你的答案: A (錯誤)code

A Test
B one
C two
D java對象

Test是類名,one two three纔是main方法的參數。

3

下面有關java的一些細節問題,描述錯誤的是?
正確答案: B 你的答案: A (錯誤)接口

A 構造方法不須要同步化
B 一個子類不能夠覆蓋掉父類的同步方法
C 定義在接口中的方法默認是public的
D 容器保存的是對象的引用three

構造方法每次都是構造出新的對象,不存在多個線程同時讀寫同一對象中的屬性的問題,因此不須要同步 。

若是父類中的某個方法使用了 synchronized關鍵字,而子類中也覆蓋了這個方法,默認狀況下子類中的這個方法並非同步的,必須顯示的在子類的這個方法中加上 synchronized關鍵字纔可。固然,也能夠在子類中調用父類中相應的方法,這樣雖然子類中的方法並非同步的,但子類調用了父類中的同步方法,也就至關子類方法也同步了。

接口裏面的變量爲常量,其實際是 public static final ;接口裏面的方法爲抽象方法,其實際是public abstract

4

What is displayed when the following is executed;同步

正確答案: A   你的答案: 空 (錯誤)

double d1=-0.5;
System.out.println("Ceil d1="+Math.ceil(d1));
System.out.println("floor d1="+Math.floor(d1));

A
Ceil d1=-0.0
floor d1=-1.0it

B
Ceil d1=0.0
floor d1=-1.0

C
Ceil d1=-0.0
floor d1=-0.0

D
Ceil d1=0.0
floor d1=0.0

E
Ceil d1=0
floor d1=-1

ceil:大於等於 x,而且與它最接近的整數。
floor:小於等於 x,且與 x 最接近的整數。
這裏主要是有一點:

Math.ceil(d1) 

ceil 方法上有這麼一段註釋:If the argument value is less than zero but greater than -1.0, then the result is negative zero
若是參數小於0且大於-1.0,結果爲 -0

Math.floor(d1)

ceil 和 floor 方法 上都有一句話:If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as  the argument,意思爲:若是參數是 NaN、無窮、正 0、負 0,那麼結果與參數相同,
若是是 -0.0,那麼其結果是 -0.0

5

變量a是一個64位有符號的整數,初始值用16進製表示爲:0Xf000000000000000; 變量b是一個64位有符號的整數,初始值用16進製表示爲:0x7FFFFFFFFFFFFFFF。 則a-b的結果用10進製表示爲多少?()

正確答案: C 你的答案: 空 (錯誤)

A 1
B -(2^62+2^61+2^60+1)
C 2^62+2^61+2^60+1
D 2^59+(2^55+2^54+…+2^2+2^1+2^0)

0Xf000000000000000補碼爲1111000000000000000000000000000000000000000000000000000000000000
0x7FFFFFFFFFFFFFFF補碼爲0111111111111111111111111111111111111111111111111111111111111111
a-b=a+(-b)=
1111000000000000000000000000000000000000000000000000000000000000+
1000000000000000000000000000000000000000000000000000000000000001=
10111000000000000000000000000000000000000000000000000000000000001(高位溢出捨去)
則結果爲
0111000000000000000000000000000000000000000000000000000000000001=
2^62+2^61+2^60+1
答案爲C
0x7FFFFFFFFFFFFFFF+1=0X8000000000000000,那麼
a-b=0Xf000000000000000-0X8000000000000000+1
=0X7000000000000001
=16^15*7+16^0*1
=2^60*7+1
=2^60*(2^2+2^1+2^0)+1
=2^62+2^61+2^60+1
相關文章
相關標籤/搜索