java operator=_java基础–运算符(operator) | 学步园

java运算符分为4类:算术运算符,关系运算符,逻辑运算符,位运算符。

1. 算术运算符

java的算术运算符分为一元运算符和二元运算符。算术运算符的操作数必须是数值类型。

(1) 一元运算符

一元运算符只有1个操作数,一元运算符有:正(+),负(-),加1(++)和减1(--)4个。

变量的自加(++),在变量的后面

int a = 3;

int b = a++;

System.out.println(a); //4

System.out.println(b); //3

以上过程,其实分为2步:int a = 3

int b = a; //3

a = a + 1; //4

变量的自加(++),在变量的前面

int a = 3;

int b = ++a;

System.out.println(a); //4

System.out.println(b); //4

以上过程,其实分为2步:

int a = 3;

a = a + 1; //a = 4

int b = a; // b = 4

自减(--)和自加(++)一样,其实只要看运算符在变量的前后位置,在前面变量先加上1,再使用该变量;如果在变量后面,那么先使用该变量,然后该变量再加上1.

(2) 二元运算符

二元运算符有2个操作数,二元运算符有:加(+),减(-),乘(*),除(/)和取模(%)。

注意点,当有若干个变量进行运算时,结果类型取决于这些变量中范围最大的那个变量的类型。

int a = 3;

int b = 2;

double c = a / b; // c=1.0

取模(%)示例

int a = 4;

int b = 3;

int c = a % b;

System.out.println(c); //c = 1

上面例子a为正数,b为正数,c为正数

int a = -4;

int b = 3;

int c = a % b;

System.out.println(c); // c = -1

上面例子a为负数,b为正数,c为负数

int a = 4;

int b = -3;

int c = a % b;

System.out.println(c); // c = 1

上面例子a为正数,b为正数,c为正数

由此可以得出一个规律:取模的结果符号与被除数相同。

2. 关系运算符

java的关系运算符用于比较两个数值之间的大小,其运算的结果是个boolean值。关系运算符有6种:大于(>),小于(=),小于等于(<=)。这边就不再赘述。

3. 逻辑运算符

java的逻辑运算符要求操作数的数据类型为boolean型,其运算结果也为boolean型的。逻辑运算符有逻辑与(&&和&),逻辑或(||和|),逻辑非(!),逻辑异或(^)。

其中:逻辑与&&和&,逻辑或||和|,运算规则基本上相同,其区别是:&和|运算是把逻辑表达式全部计算完;&&和||运算具有短路功能。

逻辑运算符的短路特性

(1) 逻辑与: 若第一个操作数为false,那么结果肯定就是false,那么将不会执行运算符后面的运算了。

int a = 10;

int b = 11;

int c = 12;

int d = 13;

boolean e = (a > b) && ((b = c) < d);

System.out.println(e); // e = false

System.out.println(b); // b = 11

但是如果第一个为true,那么就是会正常执行到运算符后面的运算了,举例(这个只是验证短路特性的)

int a = 10;

int b = 11;

int c = 12;

int d = 13;

boolean e = (a < b) && ((b = c) > d);

System.out.println(e); // e = false

System.out.println(b); // b = 12

(2) 逻辑或: 若第一个操作数为true,那么结果肯定就是true,那么将不会执行运算符后面的运算了。例子与逻辑与的类似,这边不再赘述。

4. 位运算符

java的位运算符是以二进制为单位进行运算的,其操作数和运算结果都是整型。位运算符共有7个: 位与(&),位或(|),位非(~),位异或(^),右移(>>),左移(<>>)。

位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。

这边就不举例了,对有计算机基础的同学来说完全没有问题的。有个经典笔试题:

/*

* java中用什么办法实现2×8效率最高

*/

System.out.println(2 << 3); // 16

下一回,复习java基础--流程控制语句。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值