Java基础知识点——运算符

运算符

运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。

算术运算符

% 取模、取余

% 的本质 一个公式:a % b = a - a / b * b

System.out.println(10 % 3);//1;10-10/3*3=1
System.out.println(-10 % 3);//-1; -10-(-10)/3*3 = -1
System.out.println(10 % -3);//1; 10-10/(-3)*(-3) = 1
System.out.println(-10 % -3);//-1; -10-(-10)/(-3)*(-3) = -1

++ 自增
  1. 作为独立语句使用:前++和后++都完全等价于 i = i + 1

  2. 作为表达式使用:前++:++i 先自增后赋值;后++:i++ 先赋值后自增

int i = 10;
i++ ;// i = i + 1; => i = 11
++i ;// i = i + 1; => i = 12

int j = 8;
int k = ++j;//等价于 j=j+1;k=j; 
System.out.println("k=" + k + "j=" + j);//k=9 j=9
int a = 8;
int b = a++;//等价于 b=a;a=a+1;
System.out.println("b=" + b + "a=" + a);//b=8 a=9
if(x++==6 & ++y==6)//x先与6比较再+1;y先+1再比较

面试题

int i = 1;//i->1

i = i++;//规则使用临时变量:(1)temp = i;(2)i = i + 1;(3)i = temp;

System.out.println(i);//1

int i = 1;
i = ++i;//规则使用临时变量:(1)i = i + 1;(2)temp = i;(3)i = temp;
System.out.println(i);//2

关系运算符(比较运算符)

关系运算符细节
  1. 关系运算符的结果都是boolean型,要么是true,要么是false。

  2. 关系运算符组成的表达式,我们称之为关系表达式;如a > b。

  3. 比较运算符“==”不能误写成“=”。

逻辑运算符

用于连接多个条件(多个关系表达式),结果是boolean型  

短路与&&和逻辑与& (有假即假)
  • 对于&&短路与而言,如果第一个条件为false,后面的条件不会再判断,即语句也不会执行(效率高)

  • 对于&逻辑与而言,如果第一个条件为false,后面的条件仍然会判断

短路或||和逻辑或| (有真即真)
  • ||短路或:如果第一个条件为true,则第二个条件不会判断(即语句也不会执行),最终结果为true(效率高)

  • |逻辑或:不管第一个条件是否为true,第二个条件都要判断

赋值运算符

基本赋值运算符:=;复合赋值运算符:+=、-=、*=、/=、%=等

赋值运算符特点
  1. 运算顺序从右往左(指的是符号的左右) int num = a + b + c;

  2. 赋值运算符的左边,只能是变量,右边可以是变量、表达式、常量值 int num = 20; int num2 = 78 * 34 - 10; int num3 = a;

  3. 复合赋值运算符会进行类型转换 byte b = 2; b += 3; (等价于 b = (byte)(b + 2);)b++;(b = (byte)(b + 1);)

位运算符

Java有7个位运算(&、|、^[按位异或]、~[按位取反]、>>[算术右移:低位溢出,符号位不变,并用符号位补溢出的高位]、<<[左移:符号位不变,低位补0]、>>>[无符号右移/逻辑右移:低位溢出,高位补0])

注:a % b 当a是小数时,公式 = a - (int)a / b *b

三元运算符

条件表达式 ?表达式1 :表达式2;

运算规则:条件表达式为true,运算结果返回表达式1;反之返回表达式2

  • 表达式1和表达式2要为可以赋给接收变量的类型(或可以自动转换或强制转换)

  • 三元运算符可以转换成if—else语句

运算符优先级

1)()、,、{}等 2)单目运算 ++、-- 3)算术运算符 4)位移运算符 5)比较运算符 6)逻辑运算符 7)三元运算符 8)赋值运算符

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值