运算符是一些特殊的符号,主要用于数学函数,一些类型的赋值语句和逻辑比较方面。Java中提供了丰富的运算符,如赋值运算符、算术运算符、比较运算符等。
赋值运算符
赋值运算符用等号"="表示,它是一个二元运算符,其功能是将右方操作数所含的值赋值给左方的操作数。
在项目中创建类Eval,在主方法中定义变量,使用赋值运算符为变量赋值。
public class Eval {
public static void main(String[] args) {
int a, b, c;
a = 15;
c = b = a + 4;
System.out.println("c的值为:" + c);
System.out.println("b的值为:" + b);
}
}
注:在实际开发过程中不建议使用a=b=c=2这样的语句。
算术运算符
通过一个实例来介绍算术运算符
在项目中创建类Arith,在主方法中定义变量,使用算术运算符将变量的计算结果输出。
public class Arith {
public static void main(String[] args) {
float number1 = 45.56f;
int number2 = 152;
System.out.println("和为:" + (number1 + number2));
System.out.println("差为:" + (number1 - number2));
System.out.println("积为:" + (number1 * number2));
System.out.println("商为:" + (number1 / number2));
}
}
自增和自减运算符
++a;
--a;
a++;
a--;
b = a++;
b = ++a;
比较运算符
比较运算符属于二元运算符,由于程序中的变量之间、变量和自变量之间以及其它类型的信息之间的比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算结果为true,否则为false。
在项目中创建类Compare,在主方法中创建整型变量,使用比较运算符对变量进行运算,并将运算后的结果输出。
public class Compare {
public static void main(String[] args) {
int number1 = 4;
int number2 = 5;
System.out.println("number1>number2的返回值为:" + (number1>number2));
System.out.println("number1<number2的返回值为:" + (number1<number2));
System.out.println("number1==number2的返回值为:" + (number1==number2));
System.out.println("number1!=number2的返回值为:" + (number1!=number2));
System.out.println("number1>=number2的返回值为:" + (number1>=number2));
System.out.println("number1<=number2的返回值为:" + (number1<=number2));
}
}
逻辑运算符
返回类型为布尔值的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。除了"!"是一元运算符之外,其他都是二元运算符。
运算符 | 结合方式 |
---|---|
&、&& | 从左到右 |
II | 从左到右 |
! | 从右到左 |
在项目中创建类Calclation,在主方法中创建创建整型变量,使用逻辑运算符对变量进行运算,并将运算结果输出。
public class Calculation {
public static void main(String[] args) {
int a = 2;
int b = 3;
boolean result = ((a > b) && (a != b));
boolean result2 = ((a > b) || (a != b));
System.out.println(result);
System.out.println(result2);
}
}
三元运算符
三元运算符的使用格式为:
条件式?值1:值2
三元运算符的运算规则为:若条件式的值为true,则整个表达式取值1,否则取值2。
instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下:
( Object reference variable ) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
下面是一个例子:
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
如果被比较的对象兼容于右侧类型,该运算符仍然返回true。
看下面的例子:
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}
结果:
true
运算符优先级
Java中的表达式就是使用运算符连接起来的符合Java规则的句子。运算符的优先级决定了表达式中运算执行的先后顺序。通常优先级由高到低的顺序依次是:
- 增量和减量运算
- 算数运算
- 比较运算
- 逻辑运算
- 赋值运算
如果两个运算符有相同的优先级,那么左边的表达式要比右边的表达式先处理。
注:在编写程序时尽量使用括号运算符来限定运算次序,以免产生错误的运算顺序。