1.當賦值的值超出聲明變量的范圍時候,會報錯!
byte a =200 //會報錯,因超出范圍。
byte a =(byte)200;//進行一個強制轉換,就不會報錯,不過會超出范圍,超出部分會從頭開始加,
由於byte的范圍為-128~127,所以是-128+73為所得結果。
2.聲明一個整數類型時候,默認都是int類型(4個8位);如果具體的數值比聲明變量的取值范圍小,則不報錯。
例:short a =222;
3.long l = 88888888888l 很明顯,這一長串數字是好超過int的取值范圍的,所以會報錯,但是因為不超過long的取值范圍,
所以我們可以聲明一個long變量來裝它, 不過需要在后邊加“l”(不區分大小寫)。
4.聲明一個float變量,如 float f = 12.555;因為聲明一個小數默認的類型是double類型(8個八位), 所以;由高精度轉換為低精度的float(4個8位)型時,會丟失精度報錯,在后邊加”f“就將其轉換成float類型,就不會報錯了。
5.char 用來聲明一個字符,char c = 'e'; System.out.println(c);輸出的是這個字符,不過進行運算時候
使用變量的ascll編碼的位置。
char c2 = '\n';表示換行; 進行運算時候運算的也是其位置!
6.類型轉換優先級:double float long int char short byte
7.short s = 133;
char c = 'a';
short s1 = s+c; 輸出結果會報錯,因為兩個數相加,默認為int類型,用short來裝它,會報損失精度的錯誤,
此時需要加上一個強制轉換:short s1 = (short)(s+c);
8.隱式轉換:由低精度自動轉換為高精度;例:long l = 5834;默認數值類型都為int類型,但是,你既然
用long來聲明,你的精度比我還高,那我就不說什么了,默默地轉過去吧。
9.顯示轉換:也叫強制轉換,一般由高精度轉向低精度。比如short s1 = (short)(s+c);我本來比你精度高,我是
int,你卻用低精度的short來裝我,我肯定不同意(報錯),說以,得強制轉換,不同意也得同意。
10.+= 的賦值原理:byte b = 4;char c = 0.4;b += c;由於char優先級比byte要高,所以b = b+c,
是要報錯的,不過b += c,卻不報錯,因為它先把c的值賦給b,賦值之后,b就成char
類型了,然后再加上b的值,char的優先級要高,所以不會報錯。