数据类型总结(干货)
Java中的數據類型和C++的數據類型基本是一致的,本來以為不需要怎么看,后來發現還是有些地方需要好好總結一下。
基本的就不說了,直接上干貨。
我總結了下,數據類型的轉換和賦值有以下幾點是比較麻煩的:
1、整數直接量可以直接賦值給byte,short,char,但不能超出范圍。
1 byte a1=127;//編譯正確 2 byte a2=128;//會報錯 Type mismatch: cannot convert from int to byte 3 short a3=32767;//編譯正確 4 short a4=32768;//會報錯 Type mismatch: cannot convert from int to short 5 char a5=65535;//編譯正確 6 char a6=65536;//會報錯 Type mismatch: cannot convert from int to char從上面可以看出,證書直接量只要不超過byte、short、char的范圍,是可以直接對其進行賦值的。值得注意的是,char和short雖然都是16位,但是char是無符號,范圍為0~65535,而short是有符號,范圍為-32768~32767。
2、同種類型的變量互相賦值,即使賦值右側值是超出其數據類型范圍的,編譯器同樣不會報錯,而是會截取低位。
1 byte a1=127; 2 byte a2=(byte)(a1+1); 3 System.out.println(a2);以上代碼運行結果為-128.原因是127+1=128超出了byte的范圍-128~127,作為一個閉環,127后面一個數應該是-128。(實際上就是再加1,位數不夠了,重新截取后為128,不過是補碼)
至于為什么要在a1+1之前用byte,后面會有總結。
3、不同種類的變量互相賦值,小的數據類型會自動轉換為大的數據類型,數據類型從小到大依次為:byte<short(char)<int<long<float<double,其中short和char由于都是兩個字節,因此其數據類型的大小是相同的。還有一點需要提一點的是,第2點同樣適用于第三點,賦值右側的值超出左側數據類型的范圍,編譯器不會報錯,而是會截取低位。
1 byte byteType=100; 2 short shortType=byteType; 3 int intType=shortType; 4 long longType=intType; 5 float floatType=longType; 6 double doubleType=floatType;上述代碼都是正確的,都是從小類型自動轉換為大類型。
但是!!!
1 char charType=byteType;//報錯 Type mismatch: cannot convert from byte to char 2 charType=shortType;//報錯 Type mismatch: cannot convert from short to char 3 shortType=charType;//報錯 Type mismatch: cannot convert from char to short 4 intType=charType;//編譯正確可以看出,char在自動轉換過程是有特殊情況的,byte數據類型雖然沒有char數據類型大,但是它不能自動轉換,char和short一樣大,也不能進行自動轉化,char繼續往上就可以自動轉換了。
4、byte,short,char型數據參與運算時,先一律轉換為int再運算
1 byte a1=100; 2 byte a2; 3 a2=100*1;//編譯正確 4 a2=100*6;//報錯 Type mismatch: cannot convert from int to byte 5 a2=a1+1;//報錯 Type mismatch: cannot convert from int to byte 6 a2=(byte)(a1+1);//編譯正確從第3行和第4行可以看出,當賦值側右側為直接量的運算,那么右側仍然算直接量,那么規則和1一樣,只要不超出賦值左側范圍即可。
當賦值側右側有變量參與運算,那么無論是+-*/,都會先將運算符兩側的數據轉換為int再進行運算,得到的結果也自然是int,當把int轉換為byte、short或者char時,自然需要強制轉換。
轉載于:https://www.cnblogs.com/haojiejiejie/p/8583598.html
總結
以上是生活随笔為你收集整理的数据类型总结(干货)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习笔记(十一)——数据库的索引碎片、计
- 下一篇: python操作excel常用的方法