Java中运算符的分类

1.简述

就是对常量和变量操作的符号

2.分类

2.1、算术运算符

+(加),-(减),*(乘),/(除),%(取模:取余数),++(加加),--(减减)

  1. +号在Java中有三种作用,代表正号,做加法运算,字符串的连接符
  2. 整数相除只能得到整数,如果想得到小数,必须把数据变化成浮点数类型
  3. /号获取的是除法操作的商,%号获取的除法操作的余数
  4. %运算符

当左边的绝对值小于右边绝对值时,结果是左边

当左边的绝对值等于右边或者是右边的倍数时,结果是0

当左边的绝对值大于右边的绝对值时,结果是余数

%运算符结果的符号之和左边有关系,与右边无关

任何一个正整数%2结果不是0就是1,可以用来当做切换条件

2.2、赋值运算符

基本的赋值运算符:=

int a = 2;

把右边的数据赋值给左边

扩展的赋值运算符:+=(加等)、-=(减等)、*=(乘等)、/=(除等)

+=:把左边和右边做加法,然后赋值给左边

面试题:看下面的程序是否有问题,如果有问题,请指出说明理由

	public static void main(String[] args) {
		short s = 1;
		s = s + 2;	//报错,当short与int进行混合运算时,会提升为int类型,两个int相加的结果是int,赋值给byte会损失精度
		s += 2;		//底层会默认自动强转:s = (short)(s+2); 
	}

2.3、比较(关系或条件)运算符

==(等等于)、!=(不等于)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)

注意事项:无论操作是简单还是复杂,结果都是boolean类型

2.4、逻辑运算符

&(逻辑与)、|(逻辑或)、^(逻辑异或)、!(逻辑非,开发常用)、&&(短路与,开发常用)、||(短路或,开发常用)

注意事项:

  1. 逻辑运算符一般用于链接boolean类型的表达式或者值

结论:

  1. &逻辑与:有false则false,“并且and”的意思
  2. |逻辑或:有true则true。“或者or”的意思
  3. ^逻辑异或:相同为false,不用为true
  4. !逻辑非:非false则true,非true则false,“取反”的意思

偶数个不改变本身,即非非为真。

2.5、位运算符

&(位与)、|(位或)、^(位异或)、~(取反)、>>(右移)、>>>(无符号右移)、<<(左移)

基本用法:操作的是二进制数

  • &:有0则0;

  • | :有1则1;

  • ^:相同为0,不同为1;

注:一个数对另外一个数位异或两次,结果还是这个数,可用于加密

  • ~:按位取反,0变1,1变0

  • <<:左移,左边最高位丢弃,右边补齐0

向左移动几位就是乘以2的几次幂。例如:12<<1=24;12<<2=48。可通过补码验证

面试题:最有效率的计算出 2 * 8 的结果:2<<3=2*2^3=8

  • >>:右移,最高位是0,左边补齐0,最高位是1,左边补齐1

向右移动几位就是除以2的几次幂。例如:12>>1=6;12>>2=3。可通过补码验证

  • >>>:无符号右移,无论高位是0还是1,左边补齐0

2.6、三元(目)运算符

格式:

(关系表达式)  ? 表达式1 :表达式1;

执行流程:

例:z = (x > y) ? x : y;

  1. 先判断表达式,为true或者false
  2. 为true则 z = x;为false则 z = y;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值