java的8種基本數據類型(簡單數據類型)java
boolean byte short char int long float double
分爲如下四大類型node
1 邏輯類型:boolean 2 整數類型:byte short int long 3 字符類型:char 4 浮點類型:float double
邏輯類型 | 常量 | true、false數組 |
true |
||
變量 | 用boolean聲明app 使用關鍵字boolean來聲明邏輯變量,聲明時也能夠賦給初值ide |
boolean man, male=true; boolean x,ok=true,關閉=false; //T |
有說1位,有說存儲範圍視內存而定 | ||
整數類型 | int型 | 常量 |
123//十進制 077//八進制 零開通 0x3ABC//十六進制 零小xyz的x |
||
變量 | 用int聲明,聲明時也能夠賦給初值 |
int x = 12;
: int x= 12,平均=9898,jiafei; //T
|
-231~231-1 4字節 32位post 231約21億編碼 |
||
byte型 | 常量 | java中不存在該表示法 | 能夠把範圍 -27~27-1 內的int型常量賦給byte變量spa ???要求0b或0B開頭,如:0b01110011設計 |
||
變量 | 用byte聲明 |
byte tom = 28;
|
-27~27-1 1字節 8位3d -128~127 |
||
short型 | 常量 | java中不存在改表示法 |
能夠把範圍 -215~215-1 內的int型常量賦給short變量 | ||
變量 | 用short聲明 |
short x = 12;
|
-215~215-1 2字節 16位 -32768~32767 |
||
long型 | 常量 |
108L//十進制 07123L//八進制 0x3ABCL//十六進制 |
|||
變量 | 用long聲明 |
long width = 12L;
|
-263~263-1 8字節 64位 | ||
字符類型 | char類型常量 | 英文單引號括起Unicode 表中的一個字符 |
‘a’ ‘好’ ‘&’ |
||
轉意字符常量 | 有些字符(如回車符)不能經過鍵盤輸入到字符串或程序中,就須要使用轉意字符常量 |
例如:\n(換行), \b(退格),\t(水平製表),\‘(單引號),
\「(雙引號),\\(反斜線)等
|
|||
char類型變量 | 用char聲明 |
char x = ‘a’;//等價於char x = 97 |
0~65535 216-1 2字節16位 最高位不是符號位,無負char |
||
浮點類型 | float型 | 常量 |
32.1f 32.1F -23.1f//必有f 2e40f//2×10^40 2乘10的40次方 |
又被稱做單精度類型, 能夠精確到8位有效數字 |
|
變量 | 用float聲明 |
float x = 22.76f;
|
-3.403E38~3.403E38 4字節 |
||
double型 | 常量 |
21.3d 21.3 21.3D//D或d可省略 1e-90//1*10^-90 |
數值精度約是float類型的兩倍,16位有效數字 又被稱做雙精度類型 |
||
變量 | 用double聲明 |
double width = 32.56D
|
-1.798E308~1.798E308 8字節 |
||
java中沒有無符號的 byte short int long 錯誤聲明:unsigned int m; |
1.不要使用浮點數進行比較,須要比較使用BigDecimal類
float f = 0.1f; double d = 1.0/10; System.out.println(f==d);//結果爲false float d1 = 423432423f; float d2 = d1+1; if(d1==d2){ System.out.println("d1==d2");//輸出結果爲d1==d2 }else{ System.out.println("d1!=d2"); } /*由於因爲字長有限,浮點數可以精確表示的數是有限的,於是也是離散的。 浮點數通常都存在舍入偏差,不少數字沒法精確表示(例如0.1),其結果只能是接近, 但不等於。 二進制浮點數不能精確的表示0.一、0.0一、0.001這樣10的負次冪。 並非全部的小數都能能夠精確的用二進制浮點數表示。 java.math包下面的兩個有用的類:BigInteger和BigDecimal, 這兩個類能夠處理任意長度的數值。 BigInteger實現了任意精度的整數運算。 BigDecimal實現了任意精度的浮點運算。 */
2.浮點類型float,double的數據不適合在不允許舍入偏差的金融計算領域。
若是須要進行不產生舍入偏差的精確數字計算,須要使用BigDecimal類。
1.char 類型用來表示在Unicode編碼表中的字符。
Unicode編碼被設計用來處理各類語言的文字,它佔2個字節,可容許有65536個字符
’A’是一個字符,它與」A」是不一樣的,」A」表示含有一個字符的字符串。
String類,實際上是字符序列(char sequence)
2.字符型的十六進制值表示方法
Unicode具備從0到65535之間的編碼,
一般用從’\u0000’到’\uFFFF’之間的十六進制值來表示(前綴爲u表示Unicode)
char c = '\u0061';
3. Java 語言中還容許使用轉義字符 ‘\’ 來將其後的字符轉變爲其它的含義
轉義符 | 含義 | Unicode值 |
\b | 退格backspace | \u0008 |
\n | 換行 | \u000a |
\r | 回車 | \u000d |
\t | 製表符tab | \u0009 |
\「 | 雙引號 | \u0022 |
\' | 單引號 | \u0027 |
\\ | 反斜槓 | \u005c |
1.基本類型從低到高
byte short char int long float double
2.低 ——> 高
系統自動完成數據類型轉換 float x = 100;//輸出x爲100.0
3.高 ——> 低
必須用類型轉換運算 格式:(類型名)要轉換的值; int x = (int)34.89;//輸出爲34
4.當將一種類型強制轉換成另外一種類型,而又超出了目標類型的表數範圍,就會被截斷成爲一個徹底不一樣的值
int x = 300; byte bx = (byte)x; //值爲44 取低的範圍內的數
5.不能在布爾類型和任何數值類型之間作強制類型轉換
1.字符串轉換成數值型數據
數字字符串型數據轉換成byte、short、int、float、double、long等數據類型,能夠分別使用表3.7所提供的Byte、Short、Integer、Float、Double、Long類的parseXXX方法。
表 字符串轉換成數值型數據的方法
例如: String MyNumber="1234.567"; //定義字符串型變量MyNumber float MyFloat=Float.parseFloat(MyNumber);
//1234.567
例如: String MyNumber="1234a.567"; //定義字符串型變量MyNumber float MyFloat=Float.parseFloat(MyNumber); //1234
1)常量一般指的是一個固定的值,
例如:一、二、三、’a’、’b’、true、false、」helloWorld」等,
通常將稱爲字面常量;
2)在Java語言中,主要是利用關鍵字final來定義一個常量,
常量一旦被初始化後不能再更改其值,
使用final修飾的PI等稱爲符號常量
常量:大寫字母和下劃線:MAX_VALUE
聲明格式爲: final type varName = value;
常量的聲明及使用: public class TestConstants { public static void main(String[] args) { final double PI = 3.14; // PI = 3.15; //編譯錯誤,不能再被賦值! double r = 4; double area = PI * r * r; double circle = 2 * PI * r; System.out.println("area = " + area); System.out.println("circle = " + circle); } }
爲了使用上的方便Java提供了數值型數據的最大值與最小值的標識符及常量值。如表3.4所示。
表3.4 數值型常量的特殊值代碼
強制轉換前判斷是否在範圍內防止失真,如double到float
Java是一種強類型語言,每一個變量都必須聲明其數據類型,能夠是基本類型,也能夠是引用類型
變量的分類:局部變量、實例變量、靜態變量
變量做爲程序中最基本的存儲單元,其要素包括變量名,變量類型和做用域。
變量在使用前必須對其聲明, 只有在變量聲明之後,才能爲其分配相應長度的存儲空間。
格式爲:type varName [=value][,varName[=value]...]; //[]中的內容爲可選項,便可有可無 數據類型 變量名 [=初始值] [,變量名 [=初始值]…]; double salary; long earthPopulation; int age;