java中的运算符

运算符

1、算术运算符
  • 基本的四则运算符:+ - * / %
  1. int/int的结果还是int
int a=1;
int b=2;
Syystem.out.println(a/b);   //0

//注意这里需要用double来计算
  1. 0不能做除数
int a=1;
int b=0;
Syystem.out.println(a/b);  
//会抛出异常,关于异常分析后续补充
  1. %,java中的取余运算可以整数和浮点数运算

    System.out.println(11.5%2.0);//1.5

  • 增量赋值运算符
    =+ -= *= /= %=

  • 自增、自减运算++和 –

int a=1;
int b=a++;
System.out.println(b);  //1
System.out.println(a);  //2
int a=1;
int b=++a;
System.out.println(b); //2
System.out.println(a)   //2
  1. 如果不取自增、自减运算后表达式的值,前置和后置自增自减没有区别。

  2. 如果取表达式的值(返回值),则前置的值是运算后的,后置是运算前的。

  3. 即后置运算必须在一次操作之后才加一或者减一。

2、关系运算符

== != < > <= >=(注意:复合运算符隐含了强制类型准换)

int a=10;
int b=20;
System.out.println(a!=b);   //ture
System.out.println(a>=b);   //false
System.out.println(a<b);    //true

//注意:关系运算符的表达式返回值都是boolean类型
3、逻辑运算符

&& || !
逻辑运算符的操作数(往往是关系运算符的结果)和返回值都是boolean类型

  • 逻辑与&&(两个操作数都为ture则ture)
int a=0;
int b=0;
int c=0;
System.out.println(a>b&&b<c)   //false
  • 逻辑或|| (两个操作数都为false则false)
  • 逻辑非 !(这是一个单目运算符,只有一个操作数)

逻辑与、或支持短路求值
&&和||遵守短路求值的规则
System.out.println(10>20&&10/0==0); //false System.out.println(10<20&&10/0==0); //ture
10/0一旦执行,程序必然抛出异常,但是这个程序正常运行,说明10/0根本没有运行
结论:

  1. 对于&&,一旦遇到false,则表达式整体一定是false,程序不会再继续运算
  2. 对于||,一旦遇到ture,则表达式整体一定是ture,程序也不会再往后计算了。
4、位运算

& | ~ ^

  • 位操作表示按二进制位运算
  • 注意当&和|的操作数位整数的时候表示按位运算,当操作数为boolean的时候,表示逻辑运算,对于浮点数java中有相应的类提供转换,具体后续补充。
5、移位运算

<< >> >>>
左移<<:最左侧丢弃,右侧补零
右移>>:最右侧丢弃,左侧补符号位
无符号右移>>>:最右侧丢弃,左侧补0
注意:

  • 对于二进制数,左移N位,相当于原数字乘以2N,右移N位,相当于除以2N
  • 计算机做位运算是最快的,所以一个数的扩大或缩小可以借鉴这个技巧
  • 移动负数位或者移位位数过大都没有意义。
6、条件运算

三目运算
表达式1?表达式2:表达式3

当表达式1的值为ture,则整个表达式为表达式2的值,当表达式1的值为false,则整个表达式的值为表达式3的值

  • 是java中唯一一个三目运算,是条件判断语句的简写
  • 用于求最值问题
7、优先级问题

这个在学C初级的时候有过大篇幅的总结,不再赘述,一定记得,优先级和计算顺序并无必然的联系,具体如果怕出错就带()吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值