天天看點

自動類型轉換、強制類型轉換、作用域、整型表數範圍

測試代碼:

結果截圖

自動類型轉換、強制類型轉換、作用域、整型表數範圍

整型

通常所說的整型,實際指的是如下四種類型:

byte:一個byte型整數在記憶體裡占8位,表數範圍是:-128到127.

short:一個short型整數在記憶體裡占16位,表數範圍是:-32768到32767.

int:一個int型整數在記憶體裡占32位,表數範圍是:-2147483648到2147483647.

long:一個long型整數在記憶體裡占64位,表數範圍是:-9223372036854775808到9223372036854775807.

int是最常用的資料類型,是以通常情況下,一個java整數常量預設就是int類型。

除此之外,有如下兩種情形必須指出:

1.如果直接将一個較小的整數常量(在byte或short類型的表數範圍内)賦給一個byte或short變量,系統會自動把這個整數常量當成byte或者short類型來處理。 2.如果使用一個巨大的整數常量(超出了int類型的表數範圍)時,Java不會自動把這個整數常量當成long類型來處理。如果希望系統把一個整數常量當成long類型來處理,應在這個整數常量後增加l或者L作為字尾。通常推薦使用L,因為l很容易跟1搞混。
自動類型轉換、強制類型轉換、作用域、整型表數範圍

(注:鄙人認為虛線箭頭方向應該反向吧,覺得不是的請積極反駁哦!)

有兩種類型轉換:自動類型轉換和強制類型轉換 1.自動類型轉換 當把一個表數範圍小的數值或變量直接賦給另一個表數範圍大的變量時,系統将可以進行自動類型轉換,就如有兩瓶水,當把小瓶裡水倒入大瓶中時不會有任何問題。上圖中,實線箭頭左邊的數值型可以自動轉換為實線箭頭右邊的數值型。 不僅如此,當把任何基本類型的值和字元串值進行連接配接運算時,基本類型的值将自動轉換為字元串類型,即使字元串類型不再是基本類型,而是引用類型。是以,如果希望把基本類型的值轉換為對應的字元串,可以把基本類型的值和一個空字元串進行連接配接。 2.強制類型轉換 如果希望把箭頭右邊的類型轉換為左邊的類型,則必須使用強制類型轉換,強制類型轉換的格式是:(target Type)value,強制類型轉換的運算符是圓括号。當強制類型轉換時,類似于把大瓶子裡的水倒進小瓶子裡,如果大瓶子裡的水不多還好,但如果大瓶子裡的水很多,将會引起溢出,進而造成資料丢失。這種轉換也被稱為“縮小轉換(Narrow Conversion)”。 是以說自動類型轉換很安全,強制類型轉換要小心。

有如下代碼:

結果:

自動類型轉換、強制類型轉換、作用域、整型表數範圍

原因:

“x+y=”+x+y 相當于 (“x+y=”+x)+y

先字元串與基本類型連接配接,轉化為對應的字元型後再與基本類型變量連接配接,最後輸出字元串。

x+y+“=x+y” 相當于 (x+y)+“=x+y”

先兩個基本類型做加法運算,之後得出的結果與字元串連接配接都轉換成字元串後輸出。