【Java基础】Java的运算符


一、Java的运算符

1. 算术运算符

算术运算符都是双目运算符,即连接两个操作数的运算符。优先级上,*、/、% 具有相同运算级别,并高于 +、-(+、- 具有相同级别)

  • 加法运算:+
  • 减法运算:-
  • 乘法运算:*
  • 除法运算:/,(另外,整型之间的除法运算是整除,这也就意味着2 / 4的结果为0,如果我们想像数学一样得到一个小数,可以使用浮点类型的操作数。)例如:
public class OperatorDemo1 {
    public static void main(String[] args) {
        // 分组初始化两个整型变量i1、i2,值分别为2、4
        int i1 = 2, i2 = 4;
        // 使i1除以i2,并将返回结果赋值给i3
        int i3 = i1 / i2;
        System.out.println("整型2除以整型4的结果为:" + i3);
        // 分组初始化两个浮点型变量f1、f2,值分别为2、4
        float f1 = 2f, f2 = 4f;
        // 使f1除以f2,并将返回结果赋值给f3
        float f3 = f1 / f2;
        System.out.println("浮点型2除以浮点型4的结果为:" + f3);
    }
}

运行结果是:

整型2除以整型4的结果为:0
浮点型2除以浮点型4的结果为:0.5

  • 取模运算:%(要求两个整型数字相除取余数)
    举个例子:int a = 2; int b = 4;
    在这里插入图片描述

2. 自增(++)、自减(- -)运算符

++ 或 - - 是单目运算符,放在操作数的前面或后面都是允许的。

++运算,变量自增长1;- -运算,变量自减少1。

那么如果有一个变量i,++i和i++有什么区别呢?

独立运算时:i++和++i没有区别,都是实现自动加1的功能

混合运算时:i++和++i就不同了

1.++/- -在先,先运算后取值

int a = 1;
int b = ++a;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是2

前++/- -时,就相当于变量a先自增1,再把值赋给b;

2.++/- -在后,先取值后运算

int a = 1;
int b = a++;//这就等价于 int b=a;a=a+1;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是

后++/- -时,就相当于变量a先把值赋给b,再自增1;

注意:

  • 自增/自减运算可以用于整数类型 byte、short、int、long,浮点类型 float、double,以及字符串类型 char。
  • 在 Java 1.5 以上版本中,自增/自减运算可以用于基本类型对应的包装器类 Byte、Short、Integer、Long、Float、Double 和 Character。

3.赋值运算符

赋值运算符是指为变量或常量指定数值的符号。赋值运算符的符号为“=”,例如 int a=2.
它是双目运算符,左边的操作数必须是变量,不能是常量或表达式。

记住在Java中两个数相等用的符号是==,而=是赋值运算符。
例如 int a=1,int b=1,如果表示a等于b,则是a==b

赋值运算符可以和算数运算符组成复合赋值运算:

  • 等于号:=(用于给变量赋值)
  • 加等于:+=
  • 减等于:-=
  • 乘等于:*=
  • 除等于:/=
  • 取模等于:%=

在这里插入图片描述

举个例子:

1.	int x,y,z;    //定义3个整型的变量
2.	x=y=z=5;    //为变量赋初值为5
3.	x+=10;    //等价于x=x+10,结果x=15
4.	y-=3;    //等价于y=y-3,结果y=2
5.	z*=5;    //等价于z=z*5,结果z=25
6.	x/=4;    //等价于x=x/4,结果x=3
7.	z%=x;    //等价于z=z%x,结果z=1

4.关系运算符

关系运算符用来比较两个值的关系。关系运算符是二元运算符,运算结果是 boolean 型。当运算符对应的关系成立时,运算结果是 true,否则是 false。

  • 相等:==(如果判断正确结果为true)
  • 小于号:<
  • 大于号:>
  • 小于等于:<=
  • 大于等于:>=
  • 不等于:!=

在这里插入图片描述

比较运算符,是两个数据之间进行比较的运算,运算结果都是布尔值true或者false

public static void main(String[] args) {
    System.out.println(1==1);//true
    System.out.println(1<2);//true
    System.out.println(3>4);//false
    System.out.println(3<=4);//true
    System.out.println(3>=4);//false
    System.out.println(3!=4);//true
}

5.逻辑运算符

逻辑运算符分为:

  • 短路逻辑运算符
  • 逻辑运算符

短路逻辑运算符 与 逻辑运算符 的区别是:

  • 逻辑运算符:先走一遍,在判断
  • 短路逻辑运算符:一但符合条件,后面的判断不走

注意:短路与(&&)和短路或(||)能够采用最优化的计算方式,从而提高效率。在实际编程时,应该优先考虑使用短路与和短路或。

1. 逻辑运算符

逻辑运算符:&、|、^、!

在这里插入图片描述
2. 短路逻辑运算符

短路逻辑运算符:&&、||
在这里插入图片描述

  • 双与:&&(全真才是真)
  • 单与:&(全真才是真)
  • 双或:||(全假才是假)
  • 单或:|(全假才是假)
  • 取反:!

其实也就是数学里面学到的逻辑运算:与、或、非

    //逻辑与&&(并且) 一假即假,全真才是真
    System.out.println(true && true);//true
    System.out.println(true && false);//false
    System.out.println(false && true);//false,右边不计算
      //逻辑或||(或者)一真即真,全假才是假
    System.out.println(false || false);//falase
    System.out.println(false || true);//true
    System.out.println(true || false);//true,右边不计算
        //逻辑非!(不是)
    System.out.println(!false);//true

那么&&与&有何区别呢?

做个测试:

在这里插入图片描述

在这里插入图片描述

6.三元运算符

我们都接触过考试,一般都是60分及格。

也就是说分数大于或等于60时,及格;分数小于60时,不及格。

这种在生活中常见的情况在程序里是如何表现的的?

这就需要三元运算符了。

当一个布尔表达式的结果分别对应两种情况时,可以使用三元表达式。

该运算符由三个操作数组成,用于判断布尔表达式。它的目的是确定应将哪个值分配给变量。条件运算符的语法为:

变量 = (布尔表达式) ?1 :2

在这里插入图片描述

7.instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

instanceof运算符使用格式如下:

( Object reference variable ) instanceof  (class/interface type)

如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

下面是一个例子:

String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

如果被比较的对象兼容于右侧类型,该运算符仍然返回 true。

看下面的例子:

class Vehicle {}
 
public class Car extends Vehicle {
   public static void main(String[] args){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

以上实例编译运行结果如下:

true

总结

在这里插入图片描述

各位小主,如果感觉有一点点帮助到你的话,麻烦留下赞赞一枚哦~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值