一,数据类型分类(2种)
1. 基本数据类型(3种)
- 
数值型:
- 
整数类型(4种):
- byte(1字节):范围(-128~127);
 - short(2字节):范围(-32768~32767);
 - int(4字节);
 - long(8字节):若数据定义为long类型超过int范围后面 需加“L”(推荐)或“l”(默认为int,超过int范围编译将会报错,未超过则不会);
 
 - 
浮点类型(2种):
- float(4字节):第1位为符号位,接下来8位表示指数,再接下来23位表示尾数;若指定浮点类型为float需加“F”或“f”(默认为double,否则编译提示可能损失精度);
 - double(8字节):第1位为符号位,接下来11位表示指数,再接下来52位表示尾数;
 - 浮点数的形式: 
- a.十进制数形式:必须包含一个小数点(1.68、168.0和 .168),否则当成int类型;
 - b.科学计数法形式:只有浮点类型数值才可以使用,如1.68e2(168.0)、1.68E2和168e2(16800.0);
 
 - 特殊浮点数: 
- 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 
 | 
| 
 = += -= *= /= %= &= ^= |= <<= >>= 
 | 
本文来源于互联网:Java数据类型和运算符