基本數據類型
邏輯類型 整數類型 ?字符類型 浮點類型 數據轉換 輸入和輸出數據
?
?
1.邏輯類型
?
Java語言一共有8種基本數據類型,分別是:
boolean、byte、short、int、long、float、double、char。
這8種基本數據類型在習慣上可以分為以下四大類型:
邏輯類型:boolean
整數類型:byte、short、int、long
字符類型:char
浮點類型:float、double
?
2.整數類型
?
1.int 型
常量:123,6000(十進制),077(八進制),0x3ABC(十六進制)。
變量:使用關鍵字int來聲明int型變量,聲明時也可以賦給初值,
例如:int x= 12,平均=9898,jiafei;
對于int型變量,內存分配給4個字節(byte),占32位。
2.byte型
常量:Java中不存在byte型常量的表示法,但可以把一定范圍內的int型常量賦值給byte型變量。
變量:使用關鍵字byte來聲明byte 型變量
例如:byte x= -12,tom=28,漂亮9;
對于byte型內存分配給1個字節,占8位。
3 .short 型
常量:和byte型類似,Java中也不存在short型常量的表示法,但可以把一定范圍內的int型常量賦值給short型變量。
變量:使用關鍵字short來聲明short型變量
例如:short x=12,y=1234;
對于short型變量,內存分配給2個字節,占16位。
4. long 型
常量:long型常量用后綴L來表示,例如108L(十進制),07123L(八進制)、0x3ABCL(十六進制) 。
變量:使用關鍵字long來聲明long型變量,
例如:long width=12L,height=2005L,length;
對于long型變量,內存分配給8個字節,占64位。
1.???? 字符類型
1. 常量:‘A’,‘b’,‘?’,‘!’,‘9’,‘好’,‘\t’,‘き’,‘モ’等,即用單引號擴起的Unicode表中的一個字符。
2. 變量:使用關鍵字char來聲明char型變量,
例如:char ch=‘A’,home=‘家’,handsome=‘酷’;
對于char型變量,內存分配給2個字節,占16位。
3. 轉意字符常量:有些字符(如回車符)不能通過鍵盤輸入到字符串或程序中,就需要使用轉意字符常量,
例如:\n(換行),\b(退格),\t(水平制表), \‘(單引號),\“(雙引號),\(反斜線)等。
4. 要觀察一個字符在Unicode表中的順序位置,可以使用int型顯示轉換,如(int)'a'或int p='a'。
5. 如果要得到一個0~65536之間的數所代表的Unicode表中相應位置上的字符必須使用char型顯示轉換。
5.浮點類型
1. float型
常量:453.5439f,21379.987F,231.0f(小數表示法),2e40f(2乘10的40次方,指數表示法)。需要特別注意的是:常量后面必須要有后綴“f”或“F”。?
變量:使用關鍵字float來聲明float型變量,
例如:float x=22.76f,tom=1234.987f,weight=1e-12F;
精度:float變量在存儲float型數據時保留8位有效數字,實際精度取決于具體數值。
對于float型變量,內存分配給4個字節,占32位。
?2. double 型
常量:2389.539d,2318908.987,0.05(小數表示法),1e-90(1乘10的-90次方,指數表示法)。對于double常量,后面可以有后綴“d”或“D”,但允許省略該后綴。
變量:使用關鍵字double來聲明double型變量,
例如:double height=23.345,width=34.56D,length=1e12;
對于double型變量,內存分配給8個字節,占64位。
精度:double變量在存儲double型數據時保留16位有效數字,實際精度取決于具體數值。
數據轉換
Java中數據的基本類型(不包括邏輯類型)按精度從“低”到“高”排列:
byte? short? char int? long? float? double
?
★當把級別低的變量的值賦給級別高的變量時,系統自動完成數據類型的轉換。例如:
??? float x=100;
?
★當把級別高的變量的值賦給級別低的變量時,必須使用顯示類型轉換運算。顯示轉換的格式:(類型名)要轉換的值;
? 例如
??? int x=(int)34.89;
?
★當把一個int型常量賦值給一個byte和short型變量時,不可以超出這些變量的取值范圍,否則必須進行類型轉換運算;例如,常量128的屬于int型常量,超出byte變量的取值范圍,如果賦值給byte型變量,必須進行byte類型轉換運算(將導致精度的損失),如下所示:
???? byte a=(byte)128;
?
★另外一個常見的錯誤就是把一個double型常量賦值給一個float型變量時沒有進行強制轉換,如下所示:
???? float x=12.4;
輸入和輸出數據
1、輸入數據
Scanner是JDK1.5新增的一個類,可以使用Scanner類創建一個對象:
Scanner reader=new Scanner(System.in);
reader對象調用下列方法,讀取用戶在命令行輸入的各種基本類型數據:
nextBoolean()、nextByte()、 nextShort()、 nextInt()、 nextLong()、nextFloat()、nextDouble()。
上述方法執行時都會堵塞,程序等待用戶在命令行輸入數據回車確認。
2、輸出數據
用System.out.println()或System.out.print()可輸出串值、表達式的值,二者的區別是前者輸出數據后換行,后者不換行。
允許使用并置符號:“+”將變量、表達式或一個常數值與一個字符串并置一起輸出,如:
System.out.println(m+"個數的和為"+sum);
System.out.println(“:”+123+“大于”+122)?
JDK1.5新增了和C語言中printf函數類似的數據輸出方法,該方法使用格式如下:
System.out.printf("格式控制部分",表達式1,表達式2,…表達式n)
格式控制部分由格式控制符號:%d、%c、%f、%s和普通的字符組成,普通字符原樣輸出。格式符號用來輸出表達式的值。
%d:輸出int類型數據值.
%c:輸出char型數據.
%f:輸出浮點型數據,小數部分最多保留6位.
%s:輸出字符串數據。
輸出數據時也可以控制數據在命令行的位置,例如:
%md:輸出的int型數據占m列? %m.nf:輸出的浮點型數據占m列,小數點保留n位。
評論