Java关系表达式x y_Java运算符与表达式

运算符指的是针对常量和变量间运算的符号。

常见的运算符包括:算术运算符,逻辑运算符,位运算符,关系运算符,赋值运算符,三目运算符,移位运算符

算术运算符

算术运算符包括:+(加)、-(减)、*(乘)、\(除)、%(求余)、++(自增)、--(自减)。

+运算符除了用作加法外还可以用作字符串连接符。

Tips:分离一个数的每一位,例如:1234

个位:(1234/1)%10

十位:(1234/10)%10

百位:(1234/100)%10

千位:(1234/1000)%10

++、--属于单目运算符,即只有一个操作数,x++表示x+1,x--表示x-1。

单独使用时,放在操作数的左边和右边没有任何区别,参与运算时,若放置在操作数左边,则代表先自增(自减),再参与运算;若放置在操作数右边,则代表先参与运算再自增(自减)。

一个操作数不能左右两边同时放置++或--。

例:若n=5,(1)n = ++n + ++n;(2)n= n++ + n++;

第一个式子中n = 6 + 7 = 13,而第二个 n = 5 + 6 = 11

赋值运算符

=在Java中并不表示相等,而是用于赋值,表示数学意义上相等的应该用==。

扩展赋值运算符:

+=、-=、*=、\=、%=

扩展赋值运算符相当于将算术运算和赋值运算合并,例如n+=2;代表n=n+2。

Tips:但赋值运算符会自动向目标类型转化,

例如:byte n = 2; n = n+1;会报错,无法将int类型自动转为byte类型

而byte n = 2; n += 1;能通过编译。

关系运算符

关系运算符包括 ==、!=、>=、<=、>、

关系运算返回的值是布尔类型,例如3>=2,返回值是true。

关系运算符通常用于分支或循环语句的条件判断。

逻辑运算符

逻辑运算符包括&(按位与)、|(按位或)、^(异或)、&&(短路与)、||(短路或)、!(非)。

与:有一个false结果都为false;

或:有一个true结果都为true。

异或:一个数对另一个数异或两次,数值本身不做任何改变。

Tips:& 和 && 的区别

& 表示按位与,无论什么情况都会同时计算运算符两边的表达式

&& 表示短路与, 如果前面的表达式为false,那么无论后面结果如何,都不会去计算后面表达式的值

&&开发中使用,&基本不用

&常用于位运算,位运算的效率比普通运算要高很多

例:1001 & 0110 = ? 9 & 6

1 0 0 1     9

&  0 1 1 0     6

-----------

0 0 0 0     0

1 0 0 1

|   0 1 1 0

-----------

1 1 1 1   15

^ : 相同为false,不同为true

1001 & 0110 = ?

1 0 0 1

^  1 1 1 0

-----------

0 1 1 1

! : 取反

当!的个数是奇数个的时候,结果相反

当!的个数是偶数个的时候,结果不变

三目运算符

?:

格式: X ? Y : Z

X表达式必须是boolean类型的表达式

执行流程:

首先计算X表达式的结果, 如果X的结果为true, 那么整个表达式的结果就是Y的值

如果X的结果为false,那么整个表达式的结果就是Z的值

Tips:三目运算符会将Y与Z的类型自动向较大的转化

例如:double x = 120.0;

int y = 9;

System.out.println(x

输出的结果不是9而是9.0

移位运算符

移位运算符:<<  >> >>>

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

>> 右移 :

最高位是0,左边补0

最高位是1,左边补1

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

相关面试题:

1.请用计算机执行效率最快方式计算 2 乘以 16

2 << 4

2.交换两个数的位置

方式一:(最常规,最容易想到的)

int temp ;

int a = 10;

int b = 20;

temp = a;

a = b;

b = temp;

方式二(更高效)

利用异或的特点: 一个数值对另外一个数值进行异或两次,那么数值本身不做任何改变

m = m ^ n;//异或运算交换数字的位置

n = m ^ n;

m = m ^ n;

System.out.println("m:" + m +'\n' + "n:" +n);

方式三

m=m+n;

n = m - n;

m = m - n;

System.out.println("m:" + m +'\n' + "n:" +n);

表达式

表达式: 符合一定语法规则的运算符和操作数的式子

运算符: 算数运算符,赋值运算符,关系运算符,逻辑运算符,位运算符, 三目运算符

操作数: 变量或者常量

a + b  a * 6 4 - 3

表达式的分类:

按照复杂程度来分:

简单表达式: 只有一个运算符的表达式 a + b  a * 64 - 3

复杂表达式: 两个或者两个以上的运算符组成的表达式 (a > b) && (a < b)

如果复杂表达式就必须要知道运算符的优先级

按照运算符两边的操作数来分

单目 双目 三目

按照名称来分

a + b 算数表达式

表达式的值: 整个表达式的结果

int a = 30; int b = 40; a * b

表达式的值的类型:

int a = 30; double b = 40.0; a * b

运算符的优先级

1.有括号先计算括号里面的

2.单目运算符 > 双目运算符 > 三目运算符

3.算数运算符(* / % > + -) > 关系运算符(> <...> == !=) > 逻辑运算符(&& > ||) > 条件运算符 > 赋值运算符

4.如果运算符的优先级相同,从左至右即可

5.+ - > ++ -- !

Tips: 如果针对特别复杂的表达式,可以根据运算符的优先级规律,然后使用()改变优先级,提高程序的可读性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值