JAVASE学习三——运算符

一.简介

​ java语言支持如下运算符:

  • 算术运算符

    +,-,*,/,%,++(自增),–(自减)

  • 赋值运算符

    =

  • 扩展赋值运算符

    +=,-=,*=,/=

  • 关系运算符

    <,>=,<=,==,!=

  • 逻辑运算符

    &,|, &&,||,!,^

  • 位运算符

    &,|,^,~ , >>,<<,>>> (了解!!!)

  • 条件运算符

    ?:

二.算术运算符

​ +,-,*,/,%的规则和数学中的规则一样 PS:如果只有整数参与运算,结果也为整数

​ 其中/用来表示两个数相除运算,%用来取余。

	System.out.println(12/3);  //输出4
    System.out.println(12%5);	//输出2

​ ++,–,了解一个,另一个含义相同。

​ ++含义:在整型变量的基础上执行+1操作,然后再赋值给此变量

​ ++i(前导自增):先执行自增操作,赋值给自己,再参加其他运算

​ i++(后导自增):先参加其他运算,再执行自增操作,赋值给自己

int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值 

三.赋值运算符

​ =:赋值号,将赋值号右边的数据,赋值给左边的变量(空间)。注意类型必须要一致或兼容。

四.扩展赋值运算符

​ 扩展赋值运算符又称双目运算符,由算术运算符+赋值运算符组成:

运算符用法举例等效的表达式
+=a += ba = a+b
-=a -=ba = a-b
*=a *=ba = a*b
/=a /=ba = a/b
%=a %=ba = a%b

​ 相较于等效的表达式优缺点:

     - 优点:提高执行效率自动做强制类型转换
	 - 缺点:不直观

五.关系运算符

​ 关系运算符和数学中的含义一致,最终结果一定是布尔值。

​ < >= <=只能比较byte,short,int ,long ,float,double,char

​ == != 可以比较任意类型数据

六.逻辑运算符

​ 逻辑运算符:进行逻辑运算的,运算符左右连接的都是 布尔类型的操作数,最终表达式的结果是布尔值:要么 是true,要么false

运算符含义说明
&与|且(全真为真,否则为假)可做位运算符
|或(有真为真,否则为假)可做位运算符
非(真为假,假为真)
^异或(相同为假,相异为真)可做位运算符
&&短路与(全真为真,遇假短路)
||短路或(全假为假,遇真短路)

PS:&& || 和 & | 区别

&&和||采用短路方式。从左到右,如果值确定就不会计算下去了。

七.三目条件运算符

​ 语法格式:

x ? y : z

​ 其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算表达式的结果为y,反之为z。

	int score = 80; int x = -100;
	String type = score < 60 ? "不及格" : "及格";
	int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
	System.out.println("type= " + type);//输出type为及格
	System.out.println("flag= "+ flag); //输出flag为-1

八.位运算符(了解)

​ 位运算符:&,|,^,~ , >>,<<,>>>

​ 如何区分逻辑运算符和位运算符:

  • 逻辑运算符:左右连接的是布尔类型的操作数
  • 位运算符:左右连接的是具体的数值

【1】<< 左移:向左移动第二个操作数个位数,空位补0
3<<2 = 12
在这里插入图片描述
​ 面试题: 4乘以8最快的方式: 4<<3

【2】>> 有符号右移:向左移动第二个操作数个位数,移出位置忽略不计,剩下的就为2进制结果

​ 6>>2 = 1 在这里插入图片描述

​ -6>>2 = -2在这里插入图片描述

【3】>>> 无符号右移:该运算符将第一个操作数向右移动指定的位数。右移的多余位将被丢弃。值为零的比特 将从左侧移入。其符号位变为 0,因此其表示的结果始终为非负数。

​ 6>>>2 = 1在这里插入图片描述

【4】 & 与:对两个操作数统一位置的数据进行运算,一个为0就是0,两个都为1才是1

​ 6&3 = 2在这里插入图片描述

【5】| 或:对两个操作数统一位置的数据进行运算,一个为1就是1,两个都为 0才是 0

​ 6|3=7在这里插入图片描述

【6】^异或:对两个操作数统一位置的数据进行运算,相同为0,不同为1

​ 6^3 = 5在这里插入图片描述

【7】~反:对一个操作数所有位置作取反操作,如果正数取反后记得减1。正数取反为负数,负数取反为正数

​ ~6 = -7在这里插入图片描述

九.运算符总结

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

十.运算符优先级

​ 不需要刻意的去记优先级关系,赋值<三目<逻辑<关系<算术<单目

​ 实际开发中如果记不得可以用()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值