Java基础3

Java中的运算符

1+  -  *  /  %

特别注意:不仅具有数字加法的意思,当遭遇String类型时,表示追加的意思

2+= -= *= /= %=...

[他们能够保证左边的数据类型不发生改变 -》 隐式的强转]

3++ --[自增自减运算符]

4> < >= <= ! = != ==

 !:非     !boolean    

       !true = false       !false = true

5&& || & |[逻辑运算符]

 (1) &&&之间的区别?

相同点:&&&都是逻辑的与 相当于汉文中并且的意思

     需要前后两个条件都成立才可以

不同点:&&叫做逻辑的短路与 有短路特性

     短路特性:如果通过前面的条件可以得出最终结果的话

     后面的条件直接舍弃 不再判断

   (2||之间的区别?

相同点:|||都是逻辑的或 相当于汉文中或者的意思

         左右两边只需要一个条件成立就可以

不同点:||都短路特性:

6& | ^ ~[按位运算符]

   当运算符两边都是boolean类型的判断的时候,此时的运算符表示逻辑运算符

当运算符两边都是数值的时候 此时的运算符作为按位运算符

基本用法:

&:按位的与   上下都为1的时候  才写1

System.out.println(9 & 5);//1

9:8+1=1001

5:4+1=0101

      0001

|:按位的或   上下只要有1就写1

System.out.println(9 | 5);//13

9:1001

5:0101

  1101   8+4+1

^:按位的异或    上下只要不一样就写1

System.out.println(9 ^ 5);//12

9:1001

5:0101

  1100   8 + 4 

~:按位的取反   0-1   1-0

byte x = 9;//00001001 -> 11110110

重点:

&:某些情况下可以取代%的元素

某些情况:当我们拿着一个数%2n次方数的时候

其实相当于我们拿着这个数&2n次方数-1的结果

 x % 64 == x & 63

7, >> << >>>[位移运算符]

<<相当于乘以 >>相当于除以 移动多少位相当于乘以/除以

2的几次方数

>>>>>之间的区别?

   >>叫做有符号右移 移动之后的空缺的高位看原本的符号位

       byte x = 55;x >> 2

       55:32 + 16 + 4 + 2 + 1 = 00110111

       00110111

       00001101

       byte x = -55; x >> 2

       -55 = -1 - 54 = -1 - 32 - 16 - 4 - 2 = 11001001

       11001001 >> 2

       11110010

>>>叫做无符号右移 移动之后空缺的高位直接补0

       byte x = 55;x >>> 2

       00110111

       00001101

       byte x = -55;x >>> 2

       11001001

       00110010

8,? : [三目运算符]

1 ? 2 :3

第一部分永远是boolean类型的判断

当第一部分位true的时候 执行第二部分

当第一部分位false的时候 执行第三部分

 

当二三部分类型不一样的时候 底层会先统一单位

然后做运算

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值