轉載至互聯網IT信息的博客http://dy.163.com/v2/article/detail/CVR84HUC0511N7OA.html
(1)常用基本類型彙總
八種基本類型彙總
八種基本類型的字節空間和應用場景
(2)byte類型
基本介紹:
byte數據類型是8位、有符號的,以二進制補碼錶示的整數;
最小值是-128(-2^7);
最大值是127(2^7-1);
默認值是0;
例如:byte bt = 120;
(3)short類型
基本介紹:
short數據類型是16位、有符號的以二進制補碼錶示的整數
最小值是-32768(-2^15);
最大值是32767(2^15 - 1);
默認值是0;
例如: short st = 32700;
(4)Int類型
基本介紹:
Int是最常用的整數類型。一個int類型的變量佔用4個字節(32位),最大表示範圍爲:-2^31~2^31-1,即-2147483648~2147483647。
默認值是0;
整型變量的注意事項:
整數的直接量的類型默認爲int類型,如果直接寫出的整數超過了int的表達範圍,編譯報錯;
int one = 80000000000000000000000;//超出範圍,編譯錯誤
除了通常的十進制書寫形式,整數的直接量也經常寫16進制的相識(0X或0x開頭)或者8進制形式(O開頭);
int two=529; //10進制
int three=0x347a; //16進制
int four=030; //8進制
兩個整數相除,會捨棄小數的部分(不是四捨五入),結果也是整數;
int data1 = 49;
int data2 = 79;
int dataT = data1/data2;//dataT結果爲0,因爲49除以79的整數部分爲0
整數運算的溢出:兩個整數進行運算時,其結果可能會超過整數的範圍而溢出。正數過大而產生的溢出,結果爲負值;負整數過大而產生的溢出,結果爲正數
int number=2147483647;
int score=-2147483648;
number= number+1;//結果爲-2147483648
score = score -1; //結果爲2147483647
(5)Long類型
基本介紹:
一般如果int類型的範圍不夠,可以使用long類型,一個long類型的變量佔用8個字節(64位),最大表示範圍爲:-2^63~2^63-1,即-9223372036854775808~223372036854775807
默認值是0L;
注意:如果用long類型,則需要以L或l結尾
long gg = 44;//錯誤
long gg = 44L;//正確
long類型變量的典型應用場景:
超過int類型範圍的數據,可以用long類型;
比如:long yy = 3147483647L;
(6)浮點數類型
基本介紹:
浮點數,就是小數,包括float和double;
float默認值是0.0f;
double默認值是0.0d;
double類型的精度值是float類型的兩倍,一般場合使用double類型。
例如:double tt = 4.7;
浮點數的寫法:
通常寫法,如:3.68、.3
科學計數法,如:2.17E2
默認的浮點爲double類型,如果需要表示float類型的直接量,需要加”f”或”F”後綴。例如:
float ff=6.29; //編譯錯誤,應該寫成6.29f
(7)char類型
基本介紹:
char類型事實上是一個16位無符號整數,這個值是對應字符的編碼;
Java字符串類型採用Unicode字符集編碼。Unicode是世界通用的長度字符集,所有的字符串都是16位;
Char類型變量賦值,可以採用如下三種形式:
字符:形如’A’,變量中實際存儲的是該字符的Unicode編碼(無符號整數值),一個char型變量只能存儲一個字符。
整型數據:範圍在0~65535之間的整數,變量中實際存儲的即該整數值,但表示的是該整數值所對應的Unicode字符。
Unicode形式:形如’\u0041’,Unicode字符的16進制形式。
例如:char cr1= 705;
char cr2=’N’;
char cr3=’\u0031’;
特殊的字符:轉義字符
(8)boolean類型
基本介紹:
boolean類型適用於邏輯運算,表示某個條件是否成立。一般用於程序的流程控制;
boolean類型只允許取值true或false,true表示條件成立而false表示條件不成立。
boolean默認值是false;
例如:int a = 9;
int b = 10;
Boolean isBig = b>a;//輸出爲true
(9)類型之間的轉換
基本介紹:
不同的基本類型直接可以相互轉換
自動類型轉換(隱式類型轉換):從小類型到大類型可以自動完成。類型的大小關係如下:
強制轉換:從大類型到小類型需要強制轉換符,但這樣轉換有可能會造成精度損失或溢出。
int onef=654;
int twof=957;
long threef= onef + twof; //自動將int轉換爲long
long numberf=9967L;
int af=(int) numberf; //需要強制轉換符,由於9967在int範圍內,沒有產生溢出
long scoref=5147483647L;
int bf=(int) scoref; //會產生溢出,結果爲0
double ttf=7.55684954444444444;
float rrf=(float) ttf;//會造成精度的損失,結果爲7.5568495
幾種特殊轉換:
多種基本類型參與的表達式運算中,運算結果會自動的向較大的類型進行轉換;比如:
int a = 4;
double c = a/b;//結果爲0.4,自動轉換爲double類型
byte、char、short三種類型實際存儲的數據都是整數,在實際使用中遵循如下規則:
Int直接量可以直接賦值給byte、char和short,只要不超過其表示範圍。
byte、char、short三種類型參與運算時,先一律轉換成int類型再進行運算。
(10)代碼實例
package com.example.var;
public class DataType {
public static void main(String[] args) {
byte bt = 120;
System.out.println(bt);
short st = 32700;
System.out.println(st);
System.out.println(two);
System.out.println(three);
System.out.println(four);
int dataT = data1/data2;
System.out.println(dataT);
System.out.println(number);
System.out.println(score);
long gg= 44L;//正確
long yy = 3147483647L;
System.out.println(yy);
double tt = 4.7;
System.out.println(tt);
char cr1= 705;
char cr2='N';
char cr3='\u0031';
System.out.println(cr3);
int a = 9;
Boolean isBig = b>a;
System.out.println(isBig);
long scoref = 5147483647L;
System.out.println(scoref);
float rrf=(float) ttf; //會造成精度的損失,結果爲7.5568495
System.out.println(rrf);
}
}