Java基础内容之运算符

目录

前言

什么是运算符

算术运算符

注意

增量运算符

自增/自减运算符

关系运算符

逻辑运算符

短路求值

位运算符

移位运算

条件运算符

后语


前言

这里是对Java运算符的基本讲解内容,会尽个人之所能来帮助各位初学者了解并且去运用Java的运算符。

这里是本文所有代码的合集:J-CSDN/src/CSDN.java · hunter/J_S - 码云 - 开源中国 (gitee.com)

对进制之间的相互转化不熟的可以看:http://t.csdn.cn/Ln6gJ

温馨提示:这里为了方便不用每次书写都写  public class CSDN  就把里面每一个main后面加数字

以防报错(只能有一个main方法),各位如果要编译的时候注意去掉后面数字就行。


什么是运算符

计算机的最基本的用途之一就是执行数学运算,对操作数进行操作时的符号,不同运算符操作的含义不同。

作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

算术运算符

算数运算符就是我们学数学的 + 、 - 、 × 、 ÷ 。只不过在Java里面有所细小的区分,在Java当中乘号用 * 来表示,除号分别用户  / 和  %(取模) 来表示。

+          -         *         /         %

public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println(a + b);//30
        System.out.println(a - b);//-10
        System.out.println(a * b);//200
        System.out.println(a / b);//0  要的是整数部分
        System.out.println(a % b);//10 %取模相当于取的是余数部分
    }

注意

  • 做除法和取模时,右操作数不能为0。

  • % 不仅可以对整型取模,也可以对double类型取模。

  • 两侧操作数类型不一致时,向类型大的提升。


增量运算符

+=         -=         *=         %=

 该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

public static void main(String[] args) {
        int a = 10;
        
        a += 1;//可以想象成--> a=a+1
        System.out.println(a);//11
        
        a -= 2;//可以想象成--> a=a-1
        System.out.println(a);//9
        
        a *= 2;//可以想象成--> a=a*1
        System.out.println(a);//18
        
        a /= 2;//可以想象成--> a=a/1
        System.out.println(a);//9
        
        a %= 2;//可以想象成--> a=a%1
        System.out.println(a);//1
    }

自增/自减运算符

++         --

 自增/自减运算符分为前置++和后置++ 、 前置--和后置--。

  • 前置的是:先 ++,后使用。
  • 后置的是:先使用,后 ++。
  • PS:-- 和 ++ 的规则一样不过是一个 +1 ,一个是 -1。

只有变量才能++和--,常量是不行的。

public static void main(String[] args) {
        int a = 10;
        int b = 0;

        b = a++;
        //先把a的值给b-->b=10;然后a本身自己 +1-->11
        System.out.println(b);//10
        System.out.println(a);//11

        //上面的 a自己++ 已经等于11了
        b = ++a;
        //先把 a+1 的值给b-->b=12;a本身这里自己+1-->12
        System.out.println(b);//12
        System.out.println(a);//12
    }

关系运算符

==         !=         <         >        <=        >=

计算结果是 true 或者 false

public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println(a>b);//false
        System.out.println(a<b);//true
        System.out.println(a==b);//false
        System.out.println(a!=b);//true
        System.out.println(a>=b);//false
        System.out.println(a<=b);//true
    }

注意:

  • ==是等于的意思,=是赋值符号,在书写的时候不要搞混了。
  • 当需要多次判断时,不能连着写,比如:10 < a < 20,Java程序与数学中是有区别的。

逻辑运算符

&& (逻辑与)        ||(逻辑或)         !(逻辑取反)

  • 运算结果都是 boolean类型(true或者false)。
  • && 两边都为真才是真的,|| 两边有一边是真的就是真的。
  • !(表达式 )把表达式为真的真变假,把表达式为假变真。
  • && 和 || 在中文的理解中,可以理解分别为并且和或者的关系。
 public static void main(String[] args) {
        int a = 1;
        int b = 2;
        //逻辑与 &&
        System.out.println(a == 1 && b == 2); // 左为真 且 右为真 则结果为真
        System.out.println(a == 1 && b > 100); // 左为真 但 右为假 则结果为假
        System.out.println(a > 100 && b == 2); // 左为假 但 右为真 则结果为假
        System.out.println(a > 100 && b > 100); // 左为假 且 右为假 则结果为假

        //逻辑或 ||
        System.out.println(a == 1 || b == 2); // 左为真 且 右为真 则结果为真
        System.out.println(a == 1 || b > 100); // 左为真 但 右为假 则结果也为真
        System.out.println(a > 100 || b == 2); // 左为假 但 右为真 则结果也为真
        System.out.println(a > 100 || b > 100); // 左为假 且 右为假 则结果为假
        
        System.out.println(!(a == 1)); // a == 1 为true,取个非就是false
        System.out.println(!(a != 1)); // a != 1 为false,取个非就是true
    }

短路求值

  • 对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。
  • 对于 || , 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。

位运算符

&(按位与)        |(按位或)        ^(按位异或)        ~(按位取反)

Java 中数据存储的最小单位是字节,而数据操作的最小单位是比特位。

字节是最小的存储单位,每个字节是由8个二 进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。

位操作表示,按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是在按照二进制位的每一位依次进行计算。

PS:

  • & 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算。但与 && || 相比, 它们不支持短路求值。
  • & 、| 、^口诀:按位与:全一为一,按位或:有一则一,按位异或:有一则一,全一为零。
  • ~ 对每一个二进制位取相反的数,一变零,零变一。
public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println(a & b);//0
        System.out.println(a | b);//30
        System.out.println(a ^ b);//30

        System.out.println(~a);//-11
    }


移位运算

>> (右移操作符)        <<(左移操作符)   >>> (无符号的右移)

  • 左移 <<: 最左侧位不要了, 最右侧补 0。

       注意:向左移位时,丢弃的是符号位,因此正数左移可能会编程负数。

  • 右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)
  • 无符号右移 >>>: 最右侧位不要了, 最左侧补 0.
public static void main(String[] args) {
        int a = 5;

        System.out.println(a<<1);//10
        System.out.println(a>>1);//20
        System.out.println(a>>>1);//2

    }

 提示:

  1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
  2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.

条件运算符

条件运算符: 表达式1 ? 表达式2 : 表达式3

当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值。

public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max = a > b ? a : b;
        //a>b是false 所以执行b-->b=20-->max=20
        System.out.println(max);
    }

注意:

  1. 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换
  2. 表达式不能单独存在,其产生的结果必须要被使用。

后语

希望本篇文章能对各位有所帮助,如果各位有任何问题欢迎各位老铁提出!!!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值