java中基本數據類型轉換及運算


在講解基本類型數據運算之前我們首先來了解各種基本數據類型:

Java中一共有8中基本數據類型,並且每種數據類型所占的存儲空間是固定的,這種特性也增加了java的可移植性,這一點和c語言c++是不同的,因為java是在虛擬機上運行的,數據類型和操作系統以及硬件間的適配是通過虛擬機來實現的。

基本介紹

Java中的8中基本數據類型:byte  short  int  long  float   double   boolean  char

byte  short  int  long都表示有符號數,即最高位是用來表示正負的,0表示正,1表示負;

byte占一個字節,表示范圍:-~2^7-1 即-128~127

short 占兩個字節,表示范圍:--~2^15-1

int  占四個字節 ,表示范圍:-~2^31-1

long 占八個字節,表示范圍:-~2^63-1

float 占四個字節, double占八個字節

char 占兩個字節,一個char代表一個unicode碼,范圍:0~2^16

boolean 占一個字節,只有true和false兩個值

使用注意事項:

一、            在程序中使用整數常量,默認該常量為int型

二、            如果一個整數的值大於int類型的范圍,則需要將其賦值給一個long類型的變量,並且必須在該數的后面加上l或者L

三、            程序中小數是默認為double類型的,若要將其賦值給float類型的數據則需要在數據后面加上f或者F,或者直接強制轉換

四、            可以直接將byte、short、int、long類型的數值賦值給float和double;

類型轉換與運算

類型轉換包括強制類型轉換和自動類型轉換;

Java允許整型、字符型、浮點型數據進行混合運算,運算時不同類型的數據線轉換為同一類型后再進行運算,轉換的原則為:

操作數1

操作數2

轉換后的類型

byte 、short、int

byte 、short、int

int

byte 、short、int

long

long

byte 、short、int、long

float

folat

byte 、short、int、long、float

double

double

char

int

int

當發生上述的運算時就會進行自動類型轉換,轉換結果如上;

而強制類型轉換是不管是什么類型都可以將其轉換為其他的類型(可能會出錯),格式如下:

(想轉換為的類型)類型變量;

例如:int a=(int)1.2;

這樣做可能會造成精度的丟失,還有有些類型是不可以相互轉換的,這樣的話就會出錯,可以強制類型轉換的前提是要可以相互轉換。例如boolean是不能進行類型轉換的。

隱式類型轉換

隱式類型是這樣一種現象,前面我們說到整數是默認為int型的,如果沒有做其他優化的話 byte a=3;是有錯誤的,但是實際上這句話是可以正常編譯的,這是因為虛擬機做了隱式類型轉換,當我們將一個整數賦值給byte、short、char類型的變量時,如果該整數不超過對應變量的取值范圍時就會進行隱式類型轉換,隱式類型轉換的前提是賦值的數是整數常量。例如:

byte a=9;//正確

int b=9; byte c=b;//錯誤,因為b是一個int類型的變量

常見錯誤舉例

例如:byte a=1;

         a=a+1;//錯誤,因為等號右邊已經轉換為了int類型,而左邊為byte類型

       a+=1;//正確,這句話等效於a=(byte)(a+1);

 

 

例如:

byte a=3+4;//正確,編譯時先算出3+4等於10,再進行隱式類型轉換

byte b=3; byte c=4;

byte d=b+c;//錯誤,因為在計算是就會發生自動類型轉換將等式右邊轉換為int,見上面表格第一行;

 

 

大家有如有遇到基本類型數據相關問題的歡迎留言

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM