java 1%3=_Java操作符最全总结

一、算术操作符

Java的算术操作符包括四则运算,加(+)、减(-)、乘(*)、除(/)以及取余(%)。

(1)"+" 除了用于两个数的加法之外,还可以用于拼接字符串。即如果String类型元素与非String类型元素使用"+"连接,则编译器会尝试将后者转换为字符串。

System.out.println("a+b:" + (a+b));   //其中a和b是一个数值类型的变量

(2)取余(%) 用于求解两个数相除的余数。它与除(/)区别是,a%b结果等于余数,a/b的结果等于商。 特别需要注意的是当a和b都是整数的时候,a/b的结果是商的整数部分。例如,

1/3 = 0      1%3 =1;

3/4 = 0      3%4 =3;

7/2 = 3      7%2 =1;

(3)特殊的算术操作符

Java还提供了两个特殊的一元操作符用于变量的自增(++)和自减(--)。其中a++相当a=a+1,a--相当于a=a-1。但是它们的使用也分为前缀式和后缀式两种形式,前缀式(++a、--a)会先计算再赋值,后缀式(a++、a--)会先赋值再进行计算。

代码:

int a = 0;

System.out.println("a:"+a);

System.out.println("++a:"+(++a));

System.out.println("a++:"+(a++));

System.out.println("a:"+a);

System.out.println("--a:"+(--a));

System.out.println("a--:"+(a--));

System.out.println("a:"+a);

结果:

a : 0

++a : 1

a++ : 1

a : 2

--a : 1

a-- : 1

a : 0

二、 赋值操作符

Java除了最基本的赋值操作"=",还提供了一些与算术操作符结合的赋值操作(+=、-=、*=、/=、%=)。它们的作用是对操作符左右变量进行相应的运算后,再赋值给左边的变量。

a+=b 等价于 a=a+b

a-=b 等价于 a=a-b

a*=b 等价于 a=a*b

a/=b 等价于 a=a/b

a%=b 等价于 a=a%b

三、比较操作符

在Java语言中,比较运算符包括小于()、小于或等于(<=)、大于或等于(>=)、等于(==)以及不等于(!=)。它们用于计算操作数之间的关系,并返回一个boolean值作为结果。如果关系成立则返回"true",否则返回"false"。

前四种适用于对数值类型的变量进行大小的比较,而后两种同时还适用于对引用类型的变量进行比较。"=="和"!="在比较两个引用类型的变量时,判断的是这两个变量是否指向同一个对象(是否指向堆中的同一块地址空间),而不是判断两个变量是否内容相同。

需要注意的是,在测试两个对象是否内容相同时,一般不使用"==",而是使用该类重写后的父类方法equals来判断。

Person a = new Person("小明",18);

Person b = new Person("小明",18);

System.out.println(a.equals(b)) // 返回为true

System.out.println(a==b) //返回为false

equals返回为true,是因为Person类可能重写了Object类equals方法。该方法原意是用于比较两个对象是否相等(即是否为同一对象),本质上是通过"=="来实现。但是大多数类都覆盖了该方法,用于判断两个对象的内容是否相同。例如,本例中Person类的equals方法可能通过比较名字(小明)和年龄(18)是否一样,来决定两个对象是否为相同。

四、逻辑操作符

逻辑操作符有"&&","||"和"!"三种,分别对应于逻辑学中的与、或、非三种逻辑连接符。逻辑操作符只能作用于布尔值或布尔表达式,其结果为"true"或"false"。假设a和b分别为布尔变量或布尔表达式,三种操作符的具体含义如下:

(1)a&&b 只有当a和b的结果都为true时,其结果才为"true"。

(2)a||b 只有a和b的结果都为"false"时,结果才为"false",其余情况都为"true"

(3)!a 其结果与a的结果相反。

值得注意的是,逻辑操作符&&和 || 具有"短路"性质,即第一个条件已经能够确定整体的结果时,则后续的判断将会直接跳过不被执行。具体来说,当使用短路与(&&)操作符时,如果第一个条件为false则之后的判断直接跳过,并返回false;而当使用短路或(||)操作符时,如果第一个条件为true则不会检查后面部分的真假而直接返回true。简而言之,短路就是一旦能够明确无误地确定整个表达式的值,就不会再计算表达式剩余的部分。

public static boolean isPrint(){

System.out.println("hello world");

return true;

}

if(true && isPrint()){

System.out.println("111");

}

输出结果:111 Hello world

if(true || isPrint()){

System.out.println("111");

}

输出结果:111

五、位操作符

位操作符用于操作整数类型数据中的单个“比特”,即二进制位。它会对两个操作数中的对应位执行逻辑运算,并产生一个最终结果。位操作符是面向底层硬件的操作,其速度远大于一般的操作。位操作符包括位与(&)、或(|)、异或(^)、非(~)、左移位(<>)和无符号右移(>>>)。在位运算中,1被视为true,而0被视为false。

(1)按位与(&)

如果两个操作数的二进制,对应位都是1,则该位的结果为1,否则为0。

(2)按位或(|)

如果两个操作数的二进制,对应位都是0,则该位的结果为0,否则为1。

(3)按位异或(^)

如果两个操作数的二进制,对应位的结果不同,则该位的结果为1,否则为0。

(4)按位取反(~)

该操作符是一元操作符,将操作数的二进制各位取反(1变成0,0变成1)。

(5)左移(<

5<<2    //5的二进制数左移两位,低位补0,相当于乘4。

(6)右移(>>) 右移一位相当于除以2

5>>2    //5的二进制数右移两位,高位补符号位,相当于除2

(7)无符号右移(>>>) 高位补0

5>>3    //结果为0

-5>>3    //结果为-1

-5>>>3  //结果为536870911

与逻辑操作符的不同之处:

逻辑运算符是针对两个布尔值来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算,且位运算符不具备"短路"的性质。

六、三元操作符

三元操作符也别称为条件操作符,它有三个参数,且会在计算之后返回一个值。其格式为bool_exp ? value0 : value1。当bool_exp(布尔表达式)的结果为true,就返回value0;反之返回value1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值