java 数据类型
1. 运算符¶
1.1 二元运算符类型基础¶
运算符 | 运算 | 例子 | 结果 |
---|---|---|---|
+ | 正号 | +3 | 3 |
- + |
负号 | b=4;-b; 5+5 |
-4 10 |
- | 减号 | 8-7 | 1 |
* | 乘 | 5*2 | 10 |
/ | 除 | 10/2 | 5 |
% | 取模 | 10%2 | 0 |
++ | 自加[前] | a=2;b=++a; | a=3;b=3 |
++ | 自加[后] | a=2;b=++a; | a=3;b=2 |
-- | 自减[前] | a=2;b=--a | a=1;b=1 |
-- | 自增[后] | a=2;b=--a | a=1;b=2 |
+ | 字符串相加 | "hello"+"cmz" | "hellocmz" |
Java 语言支持如下运算符:
- 算术运算符:
+,-,*,/,%,++,--
- 赋值运算符
=
- 扩展赋值运算符:
+=,-=,*=,/=
- 关系运算符:
>,<,>=,<=,==,!=
- 逻辑运算符:
&&,||,!
- 位运算符:
&,|,^,~ , >>,<<,>>> (了解!!!)
- 条件运算符
?:
相关概念辨析
1. + 运算符 操作符 Operator 2. 5+6 表达式 expression 3. 5 6 操作数 Operand 4. int m =5+6; 语句 Sentence
注意
1:/ 除 6/4=1 6/4.0=1.5 2: %取模(求余) 6%4=2 3:+ 6+"a"=103 6+"a"=6ª 4:++ a=2;b=++a+9; a=2;b=a+++9; –+:字符串相加,只要有一个 操作数是字符串, 自动变为字 符串相连
1.2 二元运算符类型提升¶
- 整数运算
如果两个操作数有一个为Long, 则结果也为long 没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
- 浮点运算
如果两个操作数有一个为double, 则结果为double. 只有两个操作数都是float, 则结果才为float.
运算先后
int a = 3; int b = a++; //执行完后,b=3。先给b赋值,再自增。 int c = ++a; //执行完后,c=5。先自增,再给b赋值
2. 赋值运算符¶
- 基本赋值运算符 =
- 扩展赋值运算符
运算符 | 运算 | 例子 | 结果 |
---|---|---|---|
= | 赋值 | a=3;b=2 | a=3;b=2 |
+= | 加等于 | a=3;b=2;a+=b; | a=5;b=2 |
-= | 减等于 | a=3;b=2;a-=b; | a=1;b=2 |
*= | 乘等于 | a=3;b=2;a*=b; | a=6;b=2 |
/= | 除等于 | a=3;b=2;a/=b; | a=1;b=2 |
%= | 模等于 | a=3;b=2;a%=b; | a=1;b=2 |
算术运算符和赋值运算符结合
- 关系运算符用来进行比较运算
- 关系运算的结果是布尔值:true/false
运算符 | 含义 | 例子 |
---|---|---|
== | 等于 | a==b |
!= | 不等于 | a!=b |
> | 大于 | a>b |
< | 小于 | a<b |
>= | 大于等于 | a>=b |
<= | 小于等于 | a<=b |
注意
1. 区分==和= 2. 不等于是!=不是<>
3. 逻辑运算符¶
运算符 | 含义 | 例子 |
---|---|---|
& | 逻辑与 | A&B |
| | 逻辑或 | A&B |
^ | 逻辑异或 | A^B |
! | 逻辑反 | !A |
|| | 短路或 | A||B |
&& | 短路与 | A&&B |
- 逻辑运算符与布尔操作数一起使用,组 成逻辑表达式
- 逻辑表达式的结果是布尔值
- &和&&的区别
"&&":无论任何情况,"&&"两边的表达式都会参 与计算。 "&&": 当"&&"的左边为false,则将不会计算 其右边的表达式。即左false则false
- "|"和"||"的区别与"&"和"&&"的区别类似。
4. 位运算符¶
- 位运算符是对操作数以二进制比特位为单位进行操作和运算,操作数和结果都是整型数。
- 如果操作的对象是char、byte、short,位移动作发生前其值会自动晋升为int,运算结 果也为int。
运算符 | 含义 | 例子 |
---|---|---|
~ | 按位非【NOT】/取反 | b=~a |
& | 按位与【AND】 | c=a&b |
| | 按位或【OR】 | c=a|b |
^ | 按位异或(相同为0相异为1) | c = a ^ b |
>> | 右移;左边空位补最高位即符号位 | b = a >> 2 |
>>> | 无符号右移,左边空位补0 | b = a >>> 2 |
<< | 左移;右边空位以补0 | b = a << 1 |
5. 条件运算符¶
- 语法格式
x ? y : z 执行过程:其中 x 为 boolean 类型表达式,先计算 x 的值, 若为true,则整个三目运 算的结果为表达式 y 的值, 否则整个运算结果为表达式 z 的值
6. 运算符优先级¶
7. 基本数据类型之间的转换¶
- 在赋值运算或算术运算时,要求数据类型相同,否则要进行类型转换
- 转换方式: 1. 自动转换 2.强制转换
- 除boolean类型外,所有的基本数据类型因为各自的精度不同,赋值时 都要考虑这个问题
- 除boolean类型外,所有的基本数据类型包括:整型,浮点型,字符型。
- 算术运算时的转换
1. 整型,浮点型,字符型数据可以混合运算。 2. 运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级。 3. 3+'A'+45L 4. 5+3.6+ 'A'+3.14f