前言
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。作为一门编程语言,Java也提供了一套丰富的运算符来操纵变量
算数运算符
概念
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样
分类
表格中的实例假设整数变量A的值为10,变量B的值为20:
运行结果:
a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++ = 10
a-- = 11
d++ = 25
++d = 27
前缀和后缀自增自减法的区别
前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。
后缀自增自减法(a++,a--): 先进行表达式运算,再进行自增或者自减运算
public class selfAddMinus{
public static void main(String[] args){
int a = 5;//定义一个变量;
int b = 5;
int x = 2*++a;
int y = 2*b++;
System.out.println("自增运算符前缀运算后a="+a+",x="+x);
System.out.println("自增运算符后缀运算后b="+b+",y="+y);
}
}
运行结果:
自增运算符前缀运算后a=6,x=12
自增运算符后缀运算后b=6,y=10
关系运算符
概念
关系运算符是用于比较两个值之间关系
分类
表格中的实例整数变量A的值为10,变量B的值为20:
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("a == b = " + (a == b) );
System.out.println("a != b = " + (a != b) );
System.out.println("a > b = " + (a > b) );
System.out.println("a < b = " + (a < b) );
System.out.println("b >= a = " + (b >= a) );
System.out.println("b <= a = " + (b <= a) );
}
}
运行结果:
a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false
逻辑运算符
概念
逻辑运算符用于对逻辑值(真或假)进行操作
分类
表格中的实例布尔变量A为真,变量B为假
public class LuoJi{
public static void main(String[] args){
int a = 5;//定义一个变量;
boolean b = (a<4)&&(a++<10);
System.out.println("使用短路逻辑运算符的结果为"+b);
System.out.println("a的结果为"+a);
}
}
运算结果:
使用短路逻辑运算符的结果为false
a的结果为5
赋值运算符
概念
赋值运算符用于将一个值赋给一个变量
分类
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 0;
c = a + b;
System.out.println("c = a + b = " + c );
c += a ;
System.out.println("c += a = " + c );
c -= a ;
System.out.println("c -= a = " + c );
c *= a ;
System.out.println("c *= a = " + c );
a = 10;
c = 15;
c /= a ;
System.out.println("c /= a = " + c );
a = 10;
c = 15;
c %= a ;
System.out.println("c %= a = " + c );
c <<= 2 ;
System.out.println("c <<= 2 = " + c );
c >>= 2 ;
System.out.println("c >>= 2 = " + c );
c >>= 2 ;
System.out.println("c >>= 2 = " + c );
c &= a ;
System.out.println("c &= a = " + c );
c ^= a ;
System.out.println("c ^= a = " + c );
c |= a ;
System.out.println("c |= a = " + c );
}
}
运行结果:
c = a + b = 30
c += a = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a = 0
c ^= a = 10
c |= a = 10
条件运算符
概念
条件运算符也叫三元运算符,可以同时操作三个数据或表达式的运算符,决定哪个值应该赋值给变量
格式
variable x = (expression) ? value1 if true : value2 if false
如果expression为true,则将value1赋值给x,如果expression为false,则将value2赋值给x
public class Test {
public static void main(String[] args){
int a , b;
a = 10;
// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
b = (a == 1) ? 20 : 30;
System.out.println( "Value of b is : " + b );
// 如果 a 等于 10 成立,则设置 b 为 20,否则为 30
b = (a == 10) ? 20 : 30;
System.out.println( "Value of b is : " + b );
}
}
运算结果:
Value of b is : 30
Value of b is : 20
instanceof 运算符
概念
instanceof 运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
格式
( Object reference variable ) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
如果被比较的对象兼容于右侧类型,该运算符仍然返回 true。
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instance of Car;
System.out.println( result);
}
}
运行结果:
true
位运算符
概念
位运算符是用于对整数类型(如字节、整数等)的二进制位进行操作的运算符
分类
位逻辑运算符
位逻辑运算符是一种在计算机编程中用于处理二进制数据的运算符,它们直接对整数在内存中的二进制位进行操作。这些运算符将操作数视为32位或64位的比特序列(由0和1组成),而不是十进制、十六进制或八进制数值。
位移运算符
位移运算符是一种二进制运算符,它通过对二进制位进行操作来实现数值的位移。
复合位赋值运算符
所有的二进制位运算符都有一种将赋值与位运算组合在一起的简写形式。
复合位赋值运算符由赋值运算符与位逻辑运算符和位移运算符组合而成。
注意:位运算符的操作数只能是整型或者字符型数据以及它们的变体,不用于 float、double 或者 long 等复杂的数据类型。
示例
&:按位与
|:按位或
^按位异或
~:按位非
<<左位移
>>右位移
>>>无符号右位移
暂无
Java运算符优先级
概念
Java 运算符优先级决定了在表达式中多个运算符进行计算的先后顺序。
一些具有较高优先级的运算符会先被执行,比如乘法、除法的优先级通常高于加法和减法。
当一个表达式中有多个不同优先级的运算符时,会按照优先级顺序依次进行计算;如果优先级相同,则按照从左到右的顺序计算。
评论区