Java语法2(运算符,运算符的优先级)

运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

算数运算符

算数运算符
注意

  • 字符串的加号是字符串的拼接。(+)还能把非字符串转换为字符串
    String str1 = "5+5"+"="+"55"; String str2 = "5+5="+5+5;
    str1和str2都是 5+5=55
  • 对于除号(/),它的整数除和小数除是有区别的:整数之间做除法,只保留整数部分,小数部分舍去。若想得到有小数的值,只需在除数或被除数后面乘以1.0
  • 如果对负数取模,可以把模数负号忽略不计,如: 5 % -2 = 1 。 但被模数是负号则补课忽略,如: -5 % 2 = -1 。取模运算的结果不一定总是整数。
  • i++的值为i+1之后的值,++i为i+1之前的值
  • 以下两者的区别
    System.out.println('A'+'B'+'C');/*charl类型数据是可以做数学运算的,在做数学运算时把字符转化为ASCII码进行计算*/
    System.out.println("A"+"B"+"C");/*字符串与其它数据类型相加时,实际上将其他数据转换为字符串,做字符串的拼接*/
    
    运行结果:
    198
    ABC

赋值运算符

符号:=

  • 当 = 两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。强制类型转换在之前的Java语法1中提到过。
  • 支持连续赋值

扩展赋值运算符
+=,-=,*=,/=,%=

int i = 1;
i += 2;//i = i + 2;
i -= 3;//i = i - 3; 
String str = "he";
str += "llo";//字符串的+=是字符串的拼接

int a = 1;
a *= 0.1;
System.out.println(a);//0  变量在参与运算时,会把结果转换为当前变量的类型

比较运算符(关系运算符)

比较运算符
注意

  • 比较运算符的结果都是boolean型,要么是ture要么是false
  • 比较运算符“==”不能写成“=”

逻辑运算符

&——逻辑与
| ——逻辑或
!——逻辑非
&&——短路与
||——短路或
^——逻辑异或
逻辑运算符
注意

  • & 和 && 的区别

    • 单&时,左边无论真假,右边都进行运算
    • 双&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
  • | 和 || 的区别

    • | 和 || 的区别同理,|| 表示当左边为真,右边不参与运算
  • 异或(^)与或(|)的不同之处

    • 当左右都为true时,结果为false。异或追求的是

位运算符

位运算符是直接对二进制进行运算
位运算符

  • 左移(右移),小数点右(左)移。例(二进制,左右移2位):011. ->左移2位-> 01100. -> 右移2位-> 011.
  • &运算,同位&运算时,都是1结果为1,其他情况都是0
  • |运算,同位|运算时,都是0结果为0,其他情况都为1
  • ^运算,同位异或运算时,都是0或者都是1时结果是0,其他情况都是1
  • ~运算,是把二进制的同位反转,也就是0变1,1变0

三元(目)运算符

格式:
(条件表达式)?表达式1:表达式2;
当条件表达式为true,运算后的结果是表达式1;
当条件表达式为false,运算后的结果是表达式2。

例子

/*获取两个数中的较大数*/
max = m > n ? m : n;
/*获取三个数中的较大数*/
max = m > n ? (m > k ? m : k) : (n > k ? n : k);

运算符的优先级

  • 运算符有不同的优先级,所谓优先级就是表达式中的运算顺序。如下表,上一行的运算符总优先于下一行运算符的优先级
  • 只有单目运算符、三元运算符、赋值运算符是从右向左运算的
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值