最近回頭看了看之前的最基礎的,發現其中有很知識點頗有樂趣樂趣不少,順便問了下問了一下其餘朋友,幾乎全軍覆滅。咱們來看看一下知識點,你瞭解多少?java
long l = 1; //對嗎
有人說對,有人說錯。說錯的人說spa
long l = 1L; //這樣纔對
你的理解呢?3d
double d = 1; //對嗎
有人說對,有人說錯。說錯的人說code
double d = 1d; //這樣纔對,當是整數時後面必須加d或D,小數時無所謂如: //double d = 1.0;這樣是對的
你的理解呢?blog
float f = 1; //對嗎
有人說對,有人說錯。說錯的人說rem
float f = 1f; //這樣纔對,和Duble雷同,當是整數時後面必須加f或F,小數時無所謂如: //float f = 1.0;這樣是對的
你的理解呢?it
Long l = 1; //對嗎
有人說對,有人說錯。說錯的人說class
Long l = 1L; //這樣纔對
你的理解呢?基礎
Double d = 1; //對嗎
有人說對,有人說錯。說錯的人說float
Double d = 1d; //這樣纔對,當是整數時後面必須加d或D,小數時無所謂如: //Double d = 1.0;這樣是對的
你的理解呢?
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);
結果是什麼呢?本身試一下!!!