跳转至

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