Java 运算符注意事项

所有的程序开发都是一种数字的处理游戏,那么对于数字的处理一定会有所谓的操作模式,而这些操作模式就称为运算符。

数学运算符

在数学计算里面最头疼的就是“++”、"--",因为这两种运算符有两种使用方式:

1. ++变量、--变量:先进行变量的自增或者自减,而后再进行数字的计算;

2. 变量++、变量--:先使用变量进行计算,而后再进行自增或自减。

举例:实现自增与自减

    public static void main(String[] args) {

        int x = 10;

        int y = 20;

        //1、++x:首先x的内容要先自增1,为11

        //2、y--:先进行计算,使用的内容是20,计算完成后自减

        int result = ++x - y--;

        System.out.println("计算结果:" + result);//计算结果:-9

        System.out.println("x=" + x);//x=11

        System.out.println("y=" + y);//y=19

    }

这些代码程序都是在当初内存量不大的情况下提供的处理方式,但是现在来看,这种计算就变得非常的繁琐了,尤其是在硬件成本降低的今天,这类操作如果不是必须的情况下不建议这样使用。

举例:优化代码

    public static void main(String[] args) {

        int x = 10;

        int y = 20;

        //1、++x:首先x的内容要先自增1,为11

        //2、y--:先进行计算,使用的内容是20,计算完成后自减

        ++x;

        int result = x - y;

        y--;

        System.out.println("计算结果:" + result);//计算结果:-9

        System.out.println("x=" + x);//x=11

        System.out.println("y=" + y);//y=19

    }

关系运算符

  • 关系运算的主要特征就是进行大小的比较处理,包括:大于(>)、小于(<)、大于等于(>=)、小于等于(<=>)、不等(!=)、相等(==)。所有的关系运算返回的判断结果都是布尔类型的数据。
  • 在关系判断的时候特别需要注意的就是相等的判断问题。在 Java 里面 “=” 表示的赋值运算、而内容相同的比较是"=="。
  • 数据类型之间提供有转型支持,所以在进行判断的时候字符会自动转为 int 而后进行数字的比较。

三目(赋值)运算符

在进行程序开发的时候三目运算符使用的非常多,而且合理的利用三目运算可以避免一些大范围的程序编写。三目是一种所谓的赋值运算处理。它是需要设置一个逻辑关系的判断之后才可以进行的赋值操作,基本语法如下:

关系运算?关系满足时的内容:关系不满足时的内容。

举例:判断两个数字大小,将最大值保存

    public static void main(String[] args) {

        int x = 10;

        int y = 20;

        // 判断x与y的大小关系来决定最终 max 变量的内容

        int max = x > y ? x : y;

        System.out.println(max); //20

    }

位运算符

位运算指的是可以直接进行二进制数据的计算处理,主要有:与(&)、或(|)、异或(^)、反码(~)、移位处理

如果要想理解位操作,则一定要清除十进制与二进制之间的转换处理逻辑:数字除2取余

举例:观察与(&)操作,如果两位都是1结果才是1,有1位是0结果就是0

    public static void main(String[] args) {

        int x = 13;          //13 的二进制:00000000 00000000 00000000 00001101

        int y = 7;            //7 的二进制:00000000 00000000 00000000 00000111

        System.out.println(x & y); //&计算:00000000 00000000 00000000 00000101    ->5

    }

举例:观察或(|)操作,如果两位都是0结果才是0,有1位是1结果就是1

    public static void main(String[] args) {

        int x = 13;          //13 的二进制:00000000 00000000 00000000 00001101

        int y = 7;            //7 的二进制:00000000 00000000 00000000 00000111

        System.out.println(x | y); //&计算:00000000 00000000 00000000 00001111    ->15

    }

举例:观察异或(^)操作,相同为1,不同为0

   public static void main(String[] args) {

        int x = 13;          //13 的二进制:00000000 00000000 00000000 00001101

        int y = 7;            //7 的二进制:00000000 00000000 00000000 00000111

        System.out.println(x ^ y); //&计算:00000000 00000000 00000000 00001010    ->10

    }

举例:观察移位处理

    public static void main(String[] args) {

        int y = 7;               //7 的二进制:00000000 00000000 00000000 00000111

        System.out.println(y <<1);     //&计算:00000000 00000000 00000000 00001110    ->14

        System.out.println(y >>1);     //&计算:00000000 00000000 00000000 000000011    ->3

    }

面试题:请解释 & 和 && 、| 和 || 的区别?

  1. & 和| 两个运算符可以进行位运算与逻辑运算;
  2. & 和| 在进行逻辑运算的时候所有的判断条件都要执行,在进行位运算的时候只是针对于当前的数据进行与和或处理;
  3.  在逻辑运算上还可以使用  && 和 ||。&& 在若干个条件判断的时候,如果前面的条件返回了 false,后续所有的条件都不再判断,最终的结果为 false;|| 在若干个条件判断的时候,如果前面的条件返回了 true,后续所有的条件都不再判断,最终的结果为 true。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协享科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值