2020-04-14-Java-基本類型與轉(zhuǎn)換

變量占用的字節(jié)

我們都知道基本類型,byte跟boolean是1個字節(jié),short跟char是2個字節(jié),int跟float是4個字節(jié),long跟double是8個字節(jié)。

類型轉(zhuǎn)換

小類型是可以直接向大類型轉(zhuǎn)換的,但是反過來,就有可能造成數(shù)據(jù)丟失,必須顯式的進行類型轉(zhuǎn)換。同時浮點類型向整數(shù)類型轉(zhuǎn)換,也有可能造成數(shù)據(jù)丟失,必須顯式轉(zhuǎn)換。

        int a = (int) 101L;
        int b = (int) 1.1f;
                float c = 11;
                long d = 11;

這里浮點數(shù)轉(zhuǎn)換成整數(shù),默認(rèn)進行的是截尾操作,如果要進行取舍,可以使用Math.round()方法。
還有一種特殊情況,就是兩個整數(shù)類型相除的時候,必須要對其中一個進行類型轉(zhuǎn)換,才能得到一個浮點數(shù)。比如下面這段代碼,p1得到的結(jié)果是1.0,只有p2和p3才能得到正確的結(jié)果。

        float p1 = (float)((1 + 4) / 3);
        float p2 = (float)(1 + 4) / 3;
        float p3 = (1 + 4) / (float)3;

一個大類型跟一個小類型數(shù)據(jù)進行運算,比如加減乘除,會自動轉(zhuǎn)換成大類型,如果要賦值給小類型,也必須顯式轉(zhuǎn)換。

int i = (int) (101L + 11);

最后,在java中進行按位運算的時候,會自動轉(zhuǎn)換成int類型。

byte a = 9;
byte b = 6;
byte c = (byte) (a | b);

雖然java中整數(shù)的默認(rèn)類型是int,但是上面直接把9賦值給byte類型是可以的,因為編譯器能夠識別這個常量在byte能夠接受的范圍內(nèi)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容