Java數據類型和運算符

一,數據類型分類(2種)

1. 基本數據類型(3種)

  • 數值型:

    • 整數類型(4種):

      1. byte(1字節):範圍(-128~127);
      2. short(2字節):範圍(-32768~32767);
      3. int(4字節);
      4. long(8字節):若數據定義爲long類型超過int範圍後面 需加“L”(推薦)或“l”(默認爲int,超過int範圍編譯將會報錯,未超過則不會);
    • 浮點類型(2種):

      1. float(4字節):第1位爲符號位,接下來8位表示指數,再接下來23位表示尾數;若指定浮點類型爲float需加“F”或“f”(默認爲double,否則編譯提示可能損失精度);
      2. double(8字節):第1位爲符號位,接下來11位表示指數,再接下來52位表示尾數;
      3. 浮點數的形式: 
        • a.十進制數形式:必須包含一個小數點(1.68、168.0和 .168),否則當成int類型;
        • b.科學計數法形式:只有浮點類型數值纔可以使用,如1.68e2(168.0)、1.68E2和168e2(16800.0);
      4. 特殊浮點數: 
        • a.正無窮大:正數除於0.0,用Double或Float的POSITIVE_INFINITY表示,所有的正無窮大都相等;
        • b.負無窮大:負數除於0.0,用Double或Float的NEGATIVE_INFINITY表示,所有的負無窮大都相等;
        • c.非數:0.0/0.0,用Double或Float的NaN表示,所有的非數均不相等;
  • 字符型:char(2字節)

  • 布爾型:boolean(1字節)

  • 注意: switch語句中只能接受byte、short、int和char 類型變量(JDK1.6以前的版本),JDK1.7時,又增加了String

2. 引用數據類型

  • 類(class)
  • 接口(interface)
  • 數組([ ])

Java中的六種運算符:
  • 算術運算符
  • 賦值運算符
  • 關係運算符
  • 邏輯運算符
  • 位運算符
  • 三元運算符

算術運算符:
+:加法運算,求操作數的和
-:減法運算,求操作數的差
*:乘法運算,求操作數的乘積
/:除法運算,求操作數的商
%:求餘運算,求操作數相除的餘數
++:自增,操作數自加1
--:自減,操作數自減1

賦值運算符:
=:將右邊的值賦給左邊,例:int a = 1;
+=:左右兩邊的和相加賦給左邊,例:int a = 1; a+=2;結果a的值爲3
-=:左邊減去右邊的差賦給左邊,例:int a =5;a-=2;結果a的值爲3
*=:兩邊數值相乘的值賦給左邊,例:int a = 2;a*=2;結果a的值爲4
/=:左邊除以右邊的值賦給左邊,例:int a = 6;a/=2;結果a的值爲3
%=:左邊除以右邊的餘數賦給左邊,例:int a =7;a%=2;結果a的值爲1

關係運算符
>:大於,例:int a = 1;int b = 2;System.out.print(a > b);其結果爲false
<:小於,例:int a = 1;int b = 2;System.out.print(a < b);其結果爲true
>=:大於等於,例:int a = 1;int b = 2;System.out.print(a >= b);其結果爲false
<=:小於等於,例:int a = 1;int b = 2;System.out.print(a <= b);其結果爲true
==:等於,例:int a = 1;int b = 2;System.out.print(a == b);其結果爲false
!=:不等於,例:int a = 1;int b = 2;System.out.print(a != b);其結果爲true
  其結果都是boolean類型,即要麼是true要麼是false


邏輯運算符
&&:與、並且(短路),   兩個條件同時爲真時,結果爲真
||:或、或者(短路),   兩個條件有一個爲真時,結果即爲真
!:非,(!+條件)  條件爲真時,結果爲假



Java中的數據類型轉換
1:自動數據類型轉換(放大轉換)
滿足自動數據類型轉換條件:
1)兩種類型要兼容:如數值類型(整型和浮點型)
2)目標類型大於源類型:例如int型數據可以自動轉換爲double類型

2:強制數據類型轉換(縮小轉換)
在變量前加上括號,在括號中指定要強制轉換的類型
例:double a = 40.9;
    int b = (int)a;
注:強制轉換會損失數值精度,例如double類型變量a,經強制轉換爲int類型後值變爲40


運算符的優先級:

1,算數運算符() ++ -- > * / % + -

2,比較運算符(> < >= <=) > (== !=)
3,邏輯運算符! > & > ^ > |
4,賦值運算符=

算數運算符> 比較運算符(關係運算符) > 條件運算符 >賦值運算符

優先級從上到下依次遞減,最上面具有最高的優先級,逗號操作符具有最低的優先級。
相同優先級中,按結合順序計算。大多數運算是從左至右計算,只有三個優先級是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先級需要記住:
指針最優,單目運算優於雙目運算。如正負號。
先乘除(模),後加減。
先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.
邏輯運算最後計算。

優先級
運算符
名稱或含義
使用形式
結合方向
說明
1
後置++
後置自增運算符
變量名++
左到右
 
後置-- 後置自減運算符 變量名--  
[ ]
數組下標
數組名[整型表達式]
 
( )
圓括號
(表達式)/函數名(形參表)
 
.
成員選擇(對象)
對象.成員名
 
->
成員選擇(指針)
對象指針->成員名
 
2
-
負號運算符
-表達式
右到左
單目運算符
(類型)
強制類型轉換
(數據類型)表達式
 
前置++
前置自增運算符
++變量名
單目運算符
前置--
前置自減運算符
--變量名
單目運算符
*
取值運算符
*指針表達式
單目運算符
&
取地址運算符
&左值表達式
單目運算符
!
邏輯非運算符
!表達式
單目運算符
~
按位取反運算符
~表達式
單目運算符
sizeof
長度運算符
sizeof 表達式/sizeof(類型)
 
3
/
表達式/表達式
左到右
雙目運算符
*
表達式*表達式
雙目運算符
%
餘數(取模)
整型表達式%整型表達式
雙目運算符
4
+
表達式+表達式
左到右
雙目運算符
-
表達式-表達式
雙目運算符
5
<<
左移
表達式<<表達式
左到右
雙目運算符
>>
右移
表達式>>表達式
雙目運算符
6
>
大於
表達式>表達式
左到右
雙目運算符
>=
大於等於
表達式>=表達式
雙目運算符
<
小於
表達式<表達式
雙目運算符
<=
小於等於
表達式<=表達式
雙目運算符
7
==
等於
表達式==表達式
左到右
雙目運算符
!=
不等於
表達式!= 表達式
雙目運算符
8
&
按位與
整型表達式&整型表達式
左到右
雙目運算符
9
^
按位異或
整型表達式^整型表達式
左到右
雙目運算符
10
|
按位或
整型表達式|整型表達式
左到右
雙目運算符
11
&&
邏輯與
表達式&&表達式
左到右
雙目運算符
12
||
邏輯或
表達式||表達式
左到右
雙目運算符
13
?:
條件運算符
表達式1? 表達式2: 表達式3
右到左
三目運算符
14
=
賦值運算符
變量=表達式
右到左
 
/=
除後賦值
變量/=表達式
 
*=
乘後賦值
變量*=表達式
 
%=
取模後賦值
變量%=表達式
 
+=
加後賦值
變量+=表達式
 
-=
減後賦值
變量-=表達式
 
<<=
左移後賦值
變量<<=表達式
 
>>=
右移後賦值
變量>>=表達式
 
&=
按位與後賦值
變量&=表達式
 
^=
按位異或後賦值
變量^=表達式
 
|=
按位或後賦值
變量|=表達式
 
15
,
逗號運算符
表達式,表達式,…
左到右
從左向右順序運算



結合性
( ) [ ] -> . ++(後綴自增) --(後綴自減)
left to right
! ~ ++(前綴自增) --(前綴自減) + - * sizeof(type)
right to left
* / %

  

  

  
left
to
right
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
? : (條件運算)
right to left
= += -= *= /= %= &= ^= |= <<= >>=
結合性
( ) [ ] -> . ++(後綴自增) --(後綴自減)
left to right
! ~ ++(前綴自增) --(前綴自減) + - * sizeof(type)
right to left
* / %

  

  

  
left
to
right
+ -
<< >>
< <= > >=
== !=
&
^
|
&&
||
? : (條件運算)
right to left
= += -= *= /= %= &= ^= |= <<= >>=
發佈了21 篇原創文章 · 獲贊 14 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章