(1)常用基本類型匯總
八種基本類型匯總

八種基本類型的字節(jié)空間和應(yīng)用場(chǎng)景

(2)byte類型
基本介紹:
byte數(shù)據(jù)類型是8位、有符號(hào)的,以二進(jìn)制補(bǔ)碼表示的整數(shù);
最小值是-128(-2^7);
最大值是127(2^7-1);
默認(rèn)值是0;
例如:byte bt = 120;
(3)short類型
基本介紹:
short數(shù)據(jù)類型是16位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)
最小值是-32768(-2^15);
最大值是32767(2^15 - 1);
默認(rèn)值是0;
例如: short st = 32700;
(4)Int類型
基本介紹:
Int是最常用的整數(shù)類型。一個(gè)int類型的變量占用4個(gè)字節(jié)(32位),最大表示范圍為:-2^31~2^31-1,即-2147483648~2147483647。
默認(rèn)值是0;
整型變量的注意事項(xiàng):
整數(shù)的直接量的類型默認(rèn)為int類型,如果直接寫出的整數(shù)超過(guò)了int的表達(dá)范圍,編譯報(bào)錯(cuò);
int one = 80000000000000000000000;//超出范圍,編譯錯(cuò)誤
除了通常的十進(jìn)制書寫形式,整數(shù)的直接量也經(jīng)常寫16進(jìn)制的相識(shí)(0X或0x開(kāi)頭)或者8進(jìn)制形式(O開(kāi)頭);
int two=529; //10進(jìn)制
int three=0x347a; //16進(jìn)制
int four=030; //8進(jìn)制
兩個(gè)整數(shù)相除,會(huì)舍棄小數(shù)的部分(不是四舍五入),結(jié)果也是整數(shù);
int data1 = 49;
int data2 = 79;
int dataT = data1/data2;//dataT結(jié)果為0,因?yàn)?9除以79的整數(shù)部分為0
整數(shù)運(yùn)算的溢出:兩個(gè)整數(shù)進(jìn)行運(yùn)算時(shí),其結(jié)果可能會(huì)超過(guò)整數(shù)的范圍而溢出。正數(shù)過(guò)大而產(chǎn)生的溢出,結(jié)果為負(fù)值;負(fù)整數(shù)過(guò)大而產(chǎn)生的溢出,結(jié)果為正數(shù)
int number=2147483647;
int score=-2147483648;
number= number+1;//結(jié)果為-2147483648
score = score -1; //結(jié)果為2147483647
(5)Long類型
基本介紹:
一般如果int類型的范圍不夠,可以使用long類型,一個(gè)long類型的變量占用8個(gè)字節(jié)(64位),最大表示范圍為:-2^63~2^63-1,即-9223372036854775808~223372036854775807
默認(rèn)值是0L;
注意:如果用long類型,則需要以L或l結(jié)尾
long gg = 44;//錯(cuò)誤
long gg = 44L;//正確
long類型變量的典型應(yīng)用場(chǎng)景:
超過(guò)int類型范圍的數(shù)據(jù),可以用long類型;
比如:long yy = 3147483647L;
(6)浮點(diǎn)數(shù)類型
基本介紹:
浮點(diǎn)數(shù),就是小數(shù),包括float和double;
float默認(rèn)值是0.0f;
double默認(rèn)值是0.0d;
double類型的精度值是float類型的兩倍,一般場(chǎng)合使用double類型。
例如:double tt = 4.7;
浮點(diǎn)數(shù)的寫法:
通常寫法,如:3.68、.3
科學(xué)計(jì)數(shù)法,如:2.17E2
默認(rèn)的浮點(diǎn)為double類型,如果需要表示float類型的直接量,需要加”f”或”F”后綴。例如:
float ff=6.29; //編譯錯(cuò)誤,應(yīng)該寫成6.29f
(7)char類型
基本介紹:
char類型事實(shí)上是一個(gè)16位無(wú)符號(hào)整數(shù),這個(gè)值是對(duì)應(yīng)字符的編碼;
Java字符串類型采用Unicode字符集編碼。Unicode是世界通用的長(zhǎng)度字符集,所有的字符串都是16位;
Char類型變量賦值,可以采用如下三種形式:
字符:形如’A’,變量中實(shí)際存儲(chǔ)的是該字符的Unicode編碼(無(wú)符號(hào)整數(shù)值),一個(gè)char型變量只能存儲(chǔ)一個(gè)字符。
整型數(shù)據(jù):范圍在0~65535之間的整數(shù),變量中實(shí)際存儲(chǔ)的即該整數(shù)值,但表示的是該整數(shù)值所對(duì)應(yīng)的Unicode字符。
Unicode形式:形如’\u0041’,Unicode字符的16進(jìn)制形式。
例如:char cr1= 705;
char cr2=’N’;
char cr3=’\u0031’;
特殊的字符:轉(zhuǎn)義字符

(8)boolean類型
基本介紹:
boolean類型適用于邏輯運(yùn)算,表示某個(gè)條件是否成立。一般用于程序的流程控制;
boolean類型只允許取值true或false,true表示條件成立而false表示條件不成立。
boolean默認(rèn)值是false;
例如:int a = 9;
int b = 10;
Boolean isBig = b>a;//輸出為true
(9)類型之間的轉(zhuǎn)換
基本介紹:
不同的基本類型直接可以相互轉(zhuǎn)換
自動(dòng)類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換):從小類型到大類型可以自動(dòng)完成。類型的大小關(guān)系如下:

強(qiáng)制轉(zhuǎn)換:從大類型到小類型需要強(qiáng)制轉(zhuǎn)換符,但這樣轉(zhuǎn)換有可能會(huì)造成精度損失或溢出。
int onef=654;
int twof=957;
long threef= onef + twof; //自動(dòng)將int轉(zhuǎn)換為long
long numberf=9967L;
int af=(int) numberf; //需要強(qiáng)制轉(zhuǎn)換符,由于9967在int范圍內(nèi),沒(méi)有產(chǎn)生溢出
long scoref=5147483647L;
int bf=(int) scoref; //會(huì)產(chǎn)生溢出,結(jié)果為0
double ttf=7.55684954444444444;
float rrf=(float) ttf;//會(huì)造成精度的損失,結(jié)果為7.5568495
幾種特殊轉(zhuǎn)換:
多種基本類型參與的表達(dá)式運(yùn)算中,運(yùn)算結(jié)果會(huì)自動(dòng)的向較大的類型進(jìn)行轉(zhuǎn)換;比如:
int a = 4;
int b = 10;
double c = a/b;//結(jié)果為0.4,自動(dòng)轉(zhuǎn)換為double類型
byte、char、short三種類型實(shí)際存儲(chǔ)的數(shù)據(jù)都是整數(shù),在實(shí)際使用中遵循如下規(guī)則:
Int直接量可以直接賦值給byte、char和short,只要不超過(guò)其表示范圍。
byte、char、short三種類型參與運(yùn)算時(shí),先一律轉(zhuǎn)換成int類型再進(jìn)行運(yùn)算。
(10)代碼實(shí)例
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);
int two=529; //10進(jìn)制
int three=0x347a; //16進(jìn)制
int four=030; //8進(jìn)制
System.out.println(two);
System.out.println(three);
System.out.println(four);
int data1 = 49;
int data2 = 79;
int dataT = data1/data2;
System.out.println(dataT);
int number=2147483647;
int score=-2147483648;
number= number+1;//結(jié)果為-2147483648
score = score -1; //結(jié)果為2147483647
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;
int b = 10;
Boolean isBig = b>a;
System.out.println(isBig);
int onef=654;
int twof=957;
long threef= onef + twof; //自動(dòng)將int轉(zhuǎn)換為long
long numberf=9967L;
int af=(int) numberf; //需要強(qiáng)制轉(zhuǎn)換符,由于9967在int范圍內(nèi),沒(méi)有產(chǎn)生溢出
long scoref = 5147483647L;
int bf=(int) scoref; //會(huì)產(chǎn)生溢出,結(jié)果為0
System.out.println(scoref);
double ttf=7.55684954444444444;
float rrf=(float) ttf; //會(huì)造成精度的損失,結(jié)果為7.5568495
System.out.println(rrf);
}
}