1. 程式人生 > >java菜鳥的回爐之旅之五---字元型別、布林型別和型別轉換

java菜鳥的回爐之旅之五---字元型別、布林型別和型別轉換

Char和字串入門:

1、char型別用來表示在Unicode編碼集中的字元,用單引號表示

2、Unicode是通用字符集,一個字元站兩個位元組,表示範圍是0-65535,基本上地球上的所有字元都夠使用了。

3、Char裡面的轉義字元:使用反斜槓\來表示轉義,如要表示一個單引號可以 ‘\’’,先寫一個反斜槓,告訴虛擬機器,接下來的字元需要轉義了。如果不寫反斜槓的話,不會起到效果。因為虛擬機器不知道你要轉義,就按預設的方式來編譯。還有其他的一些字元 如:\t\n等等,具體可以百度,也不需要強行記住,用到自然會懂。

4、Char的表示範圍在065535之間,在這個範圍之間的數字可以當做整數來使用,如:

a對應的整數是97,其他的自行百度。所以,如果寫char a = ‘a’; int i = 2+a;那輸出i的結果就是99。那有人會有疑問99不就是小寫的c嘛,那怎麼樣能得到c而不是99呢?這個就要涉及到轉型了,在以後也會說到答,這裡的話先簡單地說 通過強制轉型就可以得到了,如下:char b = (char) i;這樣再輸出b,就會得到c而不是99了。

5、字串是什麼呢?Char是字元,那很多個字元連在一起不就是字串了嘛。哈哈,這個解釋很牽強 啊,但是字串跟字元還是不一樣的。Java中字串使用String來定義,但是這個String不是基本的資料型別,而是一個引用資料型別。可以這麼定義,如下:

String a = “我愛中國”;。好字串暫時簡單見個面,以後在專門父子String

布林型別

1、布林型別,boolean,只要兩個值 truefalse,布林型別,不是位元組,而是佔一位。

2、通常用於邏輯判斷。

3、定義:boolean a = true;

4、一般和if語句來搭配使用。

基本資料型別的轉型問:

1、自動型別轉換,容量小的資料型別可以自動轉換成容量大的資料型別。注意,這裡說的容量並不是指佔用的位元組數,而是指該型別資料表示的範圍。

2、一下型別可以按方向自動轉:byte--short--int--longchar--intint---double

float--double。注意:int---float也是可以的,但是有可能會損失精度,long也可以自動轉為float但是也存在精度損失的問題。Long轉為double也是一樣,同樣存在精度丟失的問題。

3、強制轉型:容量大的資料型別向容量小的型別轉換的時候,就需要強制轉型。但是需要注意表示範圍的問題,如果超過該型別表示的範圍,那就會出現不知道是什麼東西的東西,是無意義的值。

4、型別提升問題:如:int a = 4;long b = 4;int c = a+b;這時候輸出c就會遇到型別提升的問題,實際上所有的二元運算(加減乘除)都有可能會遇到型別提升的問題。就是容量小的型別會自動向容量大的型別轉換。那這時候就需要通過強制轉型來解決型別提升的問題。

5、同時需要注意的一個問題的運算過程中結果超出型別表示的範圍型別的問題,會產生溢位,如果要解決這個問題就需要在運算過程中,把某一個元素先進行強制轉型,讓整個表示式先進行型別提升。如下:int a = 1000000000;這是10int b = 20;long c = aL*b;就是通過在a後面加個L,強制把a型別轉成long,然後整個表示式才會進行型別自動擡升。那在表示式前面加括號強制轉行不行呢?如:long c = (long)a*b;這樣是不行的,因為a*b在沒有強制轉換型別的情況下,自己本身的結果已經出現了溢位,這個時候再強制轉型,起不到作用。