數(shù)據(jù)類型
在Java中,數(shù)據(jù)類型可以分為兩大類
8種基本數(shù)據(jù)類型:boolean,byte,short,int,long,char,folat,double
3種引用數(shù)據(jù)類型:類,接口,數(shù)組
基本數(shù)據(jù)類型:4類8種基本數(shù)據(jù)類型
1、四種整數(shù)類型:byte、short、int、long
整數(shù)類型 | 名稱 | 占用存儲(chǔ)空間(字節(jié)) | 長(zhǎng)度 (位) | 數(shù)的范圍 |
---|---|---|---|---|
byte | 字節(jié)類型 | 1 | 8 | -128~127 |
short | 短整型 | 2 | 16 | -215~215-1 |
int | 整型 | 4 | 32 | -231~231-1 |
long | 長(zhǎng)整型 | 8 | 64 | -263~263-1 |
注:
聲明 long 類型數(shù)據(jù)后面需要加 L 或 l 標(biāo)識(shí)。
2、兩種浮點(diǎn)數(shù)類型:float、double
浮點(diǎn)數(shù)類型 | 名稱 | 占用存儲(chǔ)空間(字節(jié)) | 長(zhǎng)度 (位) | 數(shù)的范圍 |
---|---|---|---|---|
float | 單精度浮點(diǎn)數(shù)據(jù)類型 | 4 | 32 | 3.4E-038 ~3.4E+038 |
double | 雙精度浮點(diǎn)數(shù)據(jù)類型 | 8 | 64 | 1.7E-308~1.7E+308 |
注:
在數(shù)字后面加 F 或 f 表示 float 型數(shù)據(jù)
在數(shù)字后面加 D 或 d 表示 double 型數(shù)據(jù)
通常浮點(diǎn)型數(shù)據(jù)默認(rèn)為 double型
3、字符數(shù)據(jù)類型:char
(1)表示單個(gè)字符,占用內(nèi)存空間為2個(gè)字節(jié),長(zhǎng)度是16位,賦值時(shí)用單引號(hào)(' ')括起來(lái)。
4、布爾數(shù)據(jù)類型:boolean
(1)boolean類型有兩個(gè)數(shù)值:true 和 false ,長(zhǎng)度是1位
變量
1、概念:
變量是指在程序運(yùn)行過程中隨時(shí)可以變化的量。
變量是程序中數(shù)據(jù)的臨時(shí)存放場(chǎng)所。
其作用是保存程序運(yùn)行時(shí)用戶輸入的數(shù)據(jù)和特定的運(yùn)算結(jié)果等。
2、聲明:
變量的名稱也稱為標(biāo)識(shí)符,應(yīng)對(duì)其初始化再使用。
聲明多個(gè)變量,用逗號(hào)分隔
// 變量數(shù)據(jù)類型 變量名 (= 變量初始值)
byte by = 127;
short sh = 32767;
int a = 16,25;
int b ;
long lo = 100000000000 L;
float fl = 3.1415926 F;
double b = 3.141592695478 ;
char ch = 'a';
boolean bool = true (false);
數(shù)據(jù)類型的轉(zhuǎn)換
分為兩種轉(zhuǎn)換形式:自動(dòng)類型轉(zhuǎn)換 和 強(qiáng)制類型轉(zhuǎn)換
規(guī)則:小轉(zhuǎn)大,自動(dòng)轉(zhuǎn);大轉(zhuǎn)小,強(qiáng)制轉(zhuǎn)。
1、自動(dòng)類型轉(zhuǎn)換
(1)兩種數(shù)據(jù)類型彼此兼容
(2)目標(biāo)數(shù)據(jù)類型的取值范圍要大于源類型
(3)boolean數(shù)據(jù)類型不可以轉(zhuǎn)換成其他數(shù)據(jù)類型
(4)byte,short,char——>int——>long——>float——>double。
(5)byte,short,char之間不能互相轉(zhuǎn)換,它們?cè)谶\(yùn)算過程中先轉(zhuǎn)換成 int 類型
(6)小范圍數(shù)據(jù)類型和大范圍數(shù)據(jù)類型的運(yùn)算結(jié)果是大范圍數(shù)據(jù)類型
(7)字符類型和整數(shù)運(yùn)算結(jié)果為整數(shù),字符類型先自動(dòng)轉(zhuǎn)化成二進(jìn)制, 然后二進(jìn)制轉(zhuǎn)化成整數(shù)
int a = 100;
double b = 100;
double c = a+b;
System.out.println(w+z);//輸出結(jié)果為double類型
char ch2 = 'a';
System.out.println(ch2+0);//輸出結(jié)果是97,int型數(shù)據(jù)
2、強(qiáng)制類型轉(zhuǎn)換
(1)當(dāng)兩個(gè)數(shù)據(jù)類型不兼容時(shí)
(2)目標(biāo)數(shù)據(jù)類型的取值范圍要小于源類型
(3)在強(qiáng)制類型轉(zhuǎn)換過程中,源類型的值可能大于目標(biāo)數(shù)據(jù)類型,因此可能會(huì)造成精度降低或者溢出。
(4)格式
源數(shù)據(jù)類型 變量 = (目標(biāo)類型) 值
byte a;
int b = 125;
a = (byte) b
運(yùn)算符
一種特殊符號(hào),用來(lái)表示數(shù)據(jù)的賦值,運(yùn)算和比較。
1、算術(shù)運(yùn)算符:+、-、*、/、%(取余)、++、-- *
2、賦值運(yùn)算符:=、+=、-=、=、/=、%=
3、關(guān)系(比較)運(yùn)算符:>、<、>=、<=、==、!=、instanceof
4、邏輯運(yùn)算符:!(取反)、&&、||、
5、位運(yùn)算符:&、|、^(異或)、<<(左移)、>>(右移)、>>>(右移)、~(非)
6、條件運(yùn)算符:(三元運(yùn)算符) ? :
1、算術(shù)運(yùn)算符
符號(hào) | 含義 | 備注 |
---|---|---|
+ | 加法 | |
- | 減法 | |
* | 乘法 | |
/ | 除法 | 如果是兩個(gè)整數(shù)相除,結(jié)果只取整數(shù)部分 |
% | 取余 | |
++ | 自增 | ++a:前自增,先將變量加一操作,然后再使用; a++:后自增,先使用變量,使用完之后再加一 |
-- | 自減 | 算法同++ |
int a = 5;
int b = 2;
int c = a / b; // c = 2 除號(hào)取整數(shù)部分
int d = a % b; // d = 1 余數(shù)為1
int e = a++; // e = 5,后自增,先使用變量再加一
int f = ++b; // f = 3 ,前自增,先將變量加一操作,然后再使用
2、賦值運(yùn)算符
符號(hào) | 含義 | 備注 |
---|---|---|
= | a = 5 | 把5賦值給a |
+= | x += y | x = x + y |
-+ | x -= y | x = x - y |
*= | x *= y | x = x * y |
/= | x /= y | x = x / y |
%= | x %= y | x = x % y |
3、關(guān)系運(yùn)算符(比較運(yùn)算符)
符號(hào) | 含義 | 備注 |
---|---|---|
> | 大于 | a > b |
< | 小于 | a < b |
>= | 大于等于 | a >= b |
<= | 小于等于 | a <= b |
== | 等于 | a == b |
!= | 不等于 | a != b |
instanceof | 判斷對(duì)象是否是特定類的一個(gè)實(shí)例 | 返回值是布爾類型 |
4、邏輯運(yùn)算符 ! && ||
邏輯運(yùn)算符:&&(與)、||(或)、!(非)
規(guī)則:邏輯運(yùn)算符兩端的操作表達(dá)式的值必須是布爾類型
符號(hào) | 含義 | 備注 |
---|---|---|
&& | 短路與 | 相當(dāng)于“且”,用&&連接表達(dá)式時(shí),如果左邊的表達(dá)式結(jié)果為 false,則不會(huì)計(jì)算其右邊的表達(dá)式。(真真為真 ) |
短路或 | 相當(dāng)于“或”,如果左邊的表達(dá)式結(jié)果為 true,則不會(huì)計(jì)算其右邊的表達(dá)式。(真假為真,假假為假) | |
! | 邏輯非 | 取反 |
int a = 2,b = 1;
boolean c = ( a != 2 && b==1);//a!=2的值為false,不需要再進(jìn)行右側(cè)判斷,d 的值為 false
boolean d = ( a != 2 || b == 1);//a!=2的值為false,b==1值為true,所以d 的值為 true
5、位運(yùn)算符:
位運(yùn)算符:&(與)、|(或)、^(異或)、~(非)、<<(左移)、>>(右移)、>>>(右移)
規(guī)則:只對(duì) byte、short、int、long、char 數(shù)據(jù)類型有效。
符號(hào) | 含義 | 備注 |
---|---|---|
& | 按位“與” | 只有參加運(yùn)算的兩位都是1時(shí),&的運(yùn)算結(jié)果才為1,否則為0 |
按位“或” | 只有參加運(yùn)算的兩位都是0時(shí),運(yùn)算結(jié)果才為0,否則為1 | |
^ | 按位“異或” | 只有參加運(yùn)算的兩位不同時(shí),^的運(yùn)算結(jié)果才為1,否則為0 |
~ | 按位“非” | |
<< | 左移 | a << b,將a的二進(jìn)制數(shù)據(jù)左移b位,右邊移空的部位補(bǔ)0 |
>> | 右移 | a >> b,將a的二進(jìn)制數(shù)據(jù)右移b位,如果最高位是0,則左邊移空的部位補(bǔ)0,如果最高位是1,則左邊移空的部位補(bǔ)1 |
>>> | 無(wú)符號(hào)位右移 | a >>> b ,不管最高位是0或1,左邊移空的部位都補(bǔ)0 |
6、條件運(yùn)算符:(三元運(yùn)算符)
符號(hào) | 含義 | 備注 |
---|---|---|
?: | 三元運(yùn)算符 | 比較表達(dá)式的結(jié)果,若結(jié)果為true,分號(hào)左邊作為結(jié)果返回;若結(jié)果為false 分號(hào)右邊作為結(jié)果返回。可以替代 if-else 結(jié)構(gòu)。 |
int a = 100;
int b = 800;
int c = a < b ? a : b; // 條件表達(dá)式 a < b 結(jié)果為 true,返回分號(hào)左邊 a 值
int d = a > b ? a : b; // 條件表達(dá)式 a > b 結(jié)果為 false,返回分號(hào)右邊 b 值