long l = 1;對or錯、Long l = 1;對or錯,最基礎的你對了嗎?

person-s-hand-3162828.jpg

最近回頭看了看之前的最基礎的,發現其中有很知識點頗有樂趣樂趣不少,順便問了下問了一下其餘朋友,幾乎全軍覆滅。咱們來看看一下知識點,你瞭解多少?java

long l = 1;對or錯

long l = 1;
//對嗎

有人說對,有人說錯。說錯的人說spa

long l = 1L;
//這樣纔對

你的理解呢?3d

double d = 1;對or錯

double d = 1;
//對嗎

有人說對,有人說錯。說錯的人說code

double d = 1d;
//這樣纔對,當是整數時後面必須加d或D,小數時無所謂如:
//double d = 1.0;這樣是對的

你的理解呢?blog

float f = 1;對or錯

float f = 1;
//對嗎

有人說對,有人說錯。說錯的人說rem

float f = 1f;
//這樣纔對,和Duble雷同,當是整數時後面必須加f或F,小數時無所謂如:
//float f = 1.0;這樣是對的

你的理解呢?it

Long l = 1;對or錯

Long l = 1;
//對嗎

有人說對,有人說錯。說錯的人說class

Long l = 1L;
//這樣纔對

你的理解呢?基礎

Double d = 1;對or錯

Double d = 1;
//對嗎

有人說對,有人說錯。說錯的人說float

Double d = 1d;
//這樣纔對,當是整數時後面必須加d或D,小數時無所謂如:
//Double d = 1.0;這樣是對的

你的理解呢?

Float f = 1;對or錯

Float f = 1;
//對嗎

有人說對,有人說錯。說錯的人說

Float f = 1f;
//這樣纔對,和Duble雷同,當是整數時後面必須加f或F,小數時無所謂如:
//Float f = 1.0;這樣是對的

你的理解呢?

6個問題你的答案是什麼,我想你心中已有答案,帶着你的答案,咱們一塊兒去揭祕上面6個問題,看看和你想的是否是同樣。
long l = 1;double d = 1; float f = 1;都是對的,爲何呢?由於java默認整數時int類型,再加上java的向上轉型,也就是說這樣定義是符合java規範的。

那麼long l = 2147483648;這樣對嗎?爲何要寫2147483648呢?由於2147483647是int的最大值,知道答案了嗎?錯的,由於他超過了int的最大值,long l = 2147483648L這樣就對了。

Long l = 1;Double d = 1; Float f = 1;都是錯的。爲何呢?Double裏面的裝箱,只會裝進double類型的,而1默認是int類型因此會報錯。Double d = 1.0; Float f = 1.0對嗎?Double d = 1.0;
這個是對的,由於java默認小數是double類型,因此是正確的。可是Float f = 1.0是錯了。由於double的精度高於float沒法向下轉型。因此float f = 1.0f; Float f = 1.0f;這樣定義纔是對的。

最後留下一個是思考題:

int i = 2147483647;
i = i + 1;
System.out.println(i);

結果是什麼呢?本身試一下!!!

相關文章
相關標籤/搜索