java运算符和表达式

  • 一、运算符
  • 1、定义
  • 2、算术运算符
  • 3、赋值运算符:
  • 4、关系(比较)运算符:
  • 5、逻辑运算符:
  • 6、位运算符
  • 7、三目(三元)运算符:
  • 8、运算符的优先级:
  • 二、表达式
  • 1.表达式
  • 2. 语句



一、运算符

1、定义

都是Java内置的可以进行相应运算的符号,
其他包括算术运算符、赋值运算符、关系(比较)运算符、逻辑运算符、位运算、三目运算符。

2、算术运算符

如果两个元素的类型一致,结果类型也保持一致;
两个元素的数据类型不一致,结果的数据类型是大的数据类型

符号

内容

+

求和

-

求差

*

求积

/

求商

如果两个int类型作运算,除数为0;编译不会报错,但是运行会报异常 / by zero ,
如果浮点数,除数为0,编译 运行不会报错 结果为Infinity

符号

内容

%

取余 模余

++

自增运算符

- -

自减运算符

++步长为1,
让变量自增1;
符号可以放在变量左边,也可以放在变量右边;
如果++在变量右边,先使用变量当前的值参与运算,再让变量值增加1
如果++在变量左边,先让变量值增加1,再参与运算
--同理。

3、赋值运算符:

使用赋值运算符可以给变量赋值

符号

内容

=

将右边的值赋值给左边的变量

+=

将左侧变量的值和右侧的值求和 将结果再赋值给左侧变量

i+=2

i = (数据类型)(i+2) 数据类型的强制转换

-=

将左侧变量的值和右侧的值求差 将结果再赋值给左侧变量

*=

将左侧变量的值和右侧的值求积 将结果再赋值给左侧变量

/=

将左侧变量的值和右侧的值求商 将结果再赋值给左侧变量

%=

将左侧变量的值和右侧的值取余 将结果再赋值给左侧变量

4、关系(比较)运算符:

符号

内容

>

大于

>=

大于等于

<

小于

<=

小于等于

==

等于

!=

不等于

最终运算结果必然为boolean类型

5、逻辑运算符:

只针对boolean类型的值作运算 true false;
逻辑运算符运算后的结果也必然为boolean类型

& 与 且 双目运算符:

java 三目运算 执行两个语句 java 三木运算符_java


左右两边都为true 结果为true;只要出现了false,结果就为false


| 或:

java 三目运算 执行两个语句 java 三木运算符_赋值_02


左右两边都为false,结果为false;只要有一边出现了true,结果就为true


! 非 单目运算符

!true=false !false=true

^ 异或
左右两边的值如果不相同,则结果为true
左右两边的值如果相同,则结果为false
&& 双与 短路与
如果&&左边为false,则符号右边不再执行

|| 双或 短路或
如果||左边为true,则结果必然为true;符号右边不再执行
优点:提高程序执行的效率
注意:
不管 & && 最终结果一定是一致的;&& ||不会改变结果,只是决定了符号右边的内容是否执行

6、位运算符

用来针对二进制进行运算符 ;
需要将要运算的数转为二进制的形式

&

根据每个二进制位进行运算

如果同一个二进制位上都为1 结果 1

如果同一个二进制位上都为0 结果0

java 三目运算 执行两个语句 java 三木运算符_java 三目运算 执行两个语句_03


|

根据每个二进制位进行运算

如果同一个二进制位上都为0 结果0

如果同一个二进制位上有一个为1 结果1

^
如果两个相同则为0
如果两个不同则为1

~ 单目运算符

原码 反码 补码(计算机底层真正使用保存和计算数据的)

正数:原码=反码=补码

负数:原码----------->反码----------->补码

除符号位,取反 +1

java 三目运算 执行两个语句 java 三木运算符_java_04


<<:

左移,针对二进制;

将二进制数整体向左移动相应的位数;左侧多出来的位数直接舍掉,后边空出来的位数补0

int a = 1;

a<<1 (a2^1)
a<<2 (a
2^2)

a<<3 (a2^3)
a<<n (a
2^n)>>:右移

-3>>1:

java 三目运算 执行两个语句 java 三木运算符_运算符_05


>>>:无符号右移

案例:2放大222 2<<3

位运算: java底层很多程序都是使用的位运算

真正项目开发中,位运算使用较少。

单目运算符:只针对一个元素进行运算 ++ – ! ~

双目运算符 : 针对两个元素进行运算

三目运算符: 针对三个元素进行运算

7、三目(三元)运算符:

格式:表达式 ? 表达式1 : 表达式2
表达式的结果为boolean true false
如果表达式的结果为true,则执行表达式1;
如果表达式的结果为true,则执行表达式2;

8、运算符的优先级:

java 三目运算 执行两个语句 java 三木运算符_java_06

二、表达式

1.表达式

主要由数值和运算符组成
a>b
a&b
a++
结尾不需要加分号
允许构建复杂的表达式 a++ + --a*2

2. 语句

一条语句代表一个完整的程序执行逻辑
每条语句后都会加一个;表示语句结束
一行可以写多条语句;但是为了增强可读性,尽量避免;
{}代表一个完整执行逻辑,后边可以不加; 也可以加分号
可以不写语句单独写分号 代表空语句