Java运算符详解
目录
- 一、算数运算符
- 一元运算符
- 二元运算符
- 算术赋值运算符
- 二、关系运算符
- 三、逻辑运算符
- 四、位运算符
- 五、其他运算符
- 六、运算符优先级
一、算数运算符
一元运算符
算术一元运算符一共有3个,分别是-、++和–。
示例代码如下:
int a = 12;
//是把a变量取反
System.out.println(-a);
//先把a赋值给b变量再加一,即先 赋值后++
int b = a++;
System.out.println(b);
//先把a加一,再把a赋值给b变量,即先++后赋值
b = ++a;
System.out.println(b);
输出结果:
-12
12
14
二元运算符
二元运算符包括:+、-、*、/和%,这些运算符对数值类型数据都有效
算术赋值运算符
二、关系运算符
关系运算是比较两个表达式大小关系的运算,它的结果是布尔类型数据,即true或false。关系运算符有 6种:==、!=、>、<、>=和<=。
==和!=可以应用于基本数据类型和引用数据类型。当用于引用数据类型比较时,比较的是 两个引用是否指向同一个对象,但在实际开发过程中多数情况下,只是比较对象的内容是否相 当,不需要比较是否为同一个对象。
三、逻辑运算符
逻辑运算符是对布尔型变量进行运算,其结果也是布尔型。
短路与(&&)和短路或(||)能够采用最优化的计算方式,从而提高效率。在实际编程 时,应该优先考虑使用短路与和短路或。
示例代码如下:
int i = 0;
int a = 10;
int b = 9;
if ((a > b) || (i == 1)) {
System.out.println("或运算为 真");
} else {
System.out.println("或运算为 假"); }
if ((a < b) && (i == 1)) {
System.out.println("与运算为 真");
} else {
System.out.println("与运算为 假");
}
if ((a > b) || (a++ == --b)) {
System.out.println("a = " + a);
System.out.println("b = " + b);
}
运行结果:
或运算为 真
与运算为 假
a = 10, b = 9
四、位运算符
位运算是以二进位(bit)为单位进行运算的,操作数和结果都是整型数据。位运算符有如下几个运算 符:&、|、^、~、>>、<<和>>>,以及相应的赋值运算符。
无符号右移>>>运算符仅被允许用在int和long整数类型, 如果用于short或byte数据, 则数据在 位移之前,转换为int类型后再进行位移计算。
位运算示例代码:
//十进制50
byte a = 0B00110010;
//十进制94
byte b = 0B01011110;
// 0B01111110
System.out.println("a | b = " + (a | b));
// 0B00010010
System.out.println("a & b = " + (a & b));
// 0B01101100
System.out.println("a ^ b = " + (a ^ b));
// 0B10100001
System.out.println("~b = " + (~b));
// 0B00001100
System.out.println("a >> 2 = " + (a >> 2));
// 0B00011001
System.out.println("a >> 1 = " + (a >> 1));
// 0B00001100
System.out.println("a >>> 2 = " + (a >>> 2));
// 0B11001000
System.out.println("a << 2 = " + (a << 2));
// 0B01100100
System.out.println("a << 1 = " + (a << 1));
int c = -12;
System.out.println("c >>> 2 = " + (c >>> 2));
System.out.println("c >> 2 = " + (c >> 2));
运行结果:
a | b = 126
a & b = 18
a ^ b = 108
~b = -95
a >> 2 = 12
a >> 1 = 25
a >>> 2 = 12
a << 2 = 200
a << 1 = 100
c >>> 2 = 1073741821
c >> 2 = -3
五、其他运算符
除了前面介绍的主要运算符,Java还有一些其他运算符。
- 三元运算符(? :)。例如x?y:z;,其中x、y和z都为表达式。
- 小括号。起到改变表达式运算顺序的作用,它的优先级最高。
- 中括号。数组下标。
- 引用号(.)。对象调用实例变量或实例方法的操作符,也是类调用静态变量或静态方法的操作 符。
- 赋值号(=)。赋值是用等号运算符(=)进行的。
- instanceof。判断某个对象是否为属于某个类。
- new。对象内存分配运算符。
- 箭头(->)。Java 8新增加的,用来声明Lambda表达式。
- 双冒号(::)。Java 8新增加的,用于Lambda表达式中方法的引用。
示例代码如下:
import java.util.Date;
public class HelloWorld {
public static void main(String[] args) {
int score = 80;
// 三元运算符(? : )
String result = score > 60 ? "及格" : "不及格";
System.out.println(result);
// new运算符可以创建Date对象
Date date = new Date();
//通过.运算符调用方法
System.out.println(date.toString());
}
}
六、运算符优先级
在一个表达式计算过程中,运算符的优先级非常重要。表中从上到小,运算符的优先级从高到低, 同一行具有相同的优先级。二元运算符计算顺序从左向右,但是先级15的赋值运算符的计算顺序从右 向左的。
运算符优先级大体顺序,从高到低是:
算术运算符→位运算符→关系运算符→逻辑运算符 →赋值运算符
以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!
还没有评论,来说两句吧...