抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > JAVA--算数运算符 位运算符 逻辑运算符 关系运算符 运算符优先级

JAVA--算数运算符 位运算符 逻辑运算符 关系运算符 运算符优先级

时间:2024-05-21 21:55:53

相关推荐

复习到了运算符这块,整理一下笔记,以备后续参考。

运算符:运算符顾名思义是一种符号,它是连接一个以上的操作符,实现某种功能的运算。

目录

一、算数运算符

二、位运算符

三、逻辑运算符

四、关系运算符

五、运算符优先级

根据需要点击目录可直接跳转。

一、算数运算符

算术运算符用在数学表达式中,主要实现的是算术运算,如常见的加减乘除等。

表格中的例子中,变量a的值为 5,变量b的值为 3,变量i的值为 1:

其中,自增 (++) 和自减 (--) 运算符有两种写法:前缀(++i,--i)和后缀(i++,i--)

前缀自增自减法 (++i,--i): 先进行自增或者自减运算,再进行表达式运算。后缀自增自减法 (i++,i--): 先进行表达式运算,再进行自增或者自减运算

新建一个源代码文件ArithmeticOperation.java

public class ArithmeticOperation {public static void main(String args[]) {int a = 5;int b = 3;int c = 3;int d = 3;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("a % b = " + (a % b));System.out.println("a++ = " + (a++));System.out.println("++a = " + (++a));System.out.println("b-- = " + (b--));System.out.println("--b = " + (--b));System.out.println("c++ = " + (c++));System.out.println("++d = " + (++d));}}

编译运行:

$ javac ArithmeticOperation.java$ java ArithmeticOperationa + b = 8a - b = 2a * b = 15a / b = 1a % b = 2a++ = 5++a = 7b-- = 3--b = 1c++ = 3++d = 4

二、位运算符

Java 定义了位运算符,应用于整数类型 (int),长整型 (long),短整型 (short),字符型 (char),和字节型 (byte) 等类型。位运算时先转换为二进制,再按位运算。

表格中的例子中,变量a的值为 60(二进制:00111100),变量b的值为 13(二进制:00001101):

新建一个源代码文件BitOperation.java

public class BitOperation {public static void main(String args[]) {int a = 60;int b = 13;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 = " + (~a));System.out.println("a << 2 = " + (a << 2));System.out.println("a >> 2 = " + (a >> 2));System.out.println("a >>> 2 = " + (a >>> 2));}}

编译运行:

$ javac BitOperation.java$ java BitOperationa & b = 12a | b = 61a ^ b = 49~a = -61a << 2 = 240a >> 2 = 15a >>> 2 = 15

三、逻辑运算符

逻辑运算符是通过运算符将操作数或等式进行逻辑判断的语句。

表格中的例子中,假设布尔变量a为真(true),变量b为假(false):

&&||是具有短路性质,当按优先级顺序计算到当前表达式时,表达式的结果可以确定整个表达式的结果时,便不会继续向后进行判断和计算,而直接返回结果。

例如:当使用&&逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。在计算表达式(a & b) && (a | b)时,首先计算a & b得到了false,因为之后是&&,任何值与false进行与操作都是false,所以可以不用再计算下去,而直接返回a & b的结果false

新建一个LogicOperation.java:

public class LogicOperation {public static void main(String args[]) {boolean a = true;boolean b = false;System.out.println("a && b = " + (a && b));System.out.println("a || b = " + (a || b));System.out.println("!a = " + (!a));System.out.println("a ^ b = " + (a ^ b));}}

编译运行:

$ javac LogicOperation.java$ java LogicOperationa && b = falsea || b = true!a = falsea ^ b = true

四、关系运算符

关系运算符生成的是一个boolean(布尔)结果,它们计算的是操作数的值之间的关系。如果关系是真实的,结果为true(真),否则,结果为false(假)。

表格中的例子中,假设变量a为 3,变量b为 5:

除了上表列出的二元运算符,Java 还有唯一的一个三目运算符?:

语法格式:

布尔表达式 ?表达式 1 : 表达式 2;

运算过程:如果布尔表达式的值为true,则返回表达式 1的值,否则返回表达式 2的值。

新建一个源代码文件RelationalOperation.java

public class RelationalOperation {public static void main(String args[]) {int a = 3;int b = 5;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("a >= b = " + (a >= b));System.out.println("a <= b = " + (a <= b));System.out.println("a > b ? a : b = " + (a > b ? a : b));}}

编译运行:

$ javac RelationalOperation.java$ java RelationalOperationa == b = falsea != b = truea > b = falsea < b = truea >= b = falsea <= b = truea > b ? a : b = 5

强调

==!=适用于所有的基本数据类型,其他关系运算符不适用于boolean,因为boolean值只有truefalse,比较没有任何意义。==!=也适用于所有对象,可以比较对象的引用是否相同。

引用:Java 中一切都是对象,但操作的标识符实际是对象的一个引用。

五、运算符优先级

运算符的优先级是帮助我们在一个表达式中如何对于不同的运算符和相同的运算符,进行正确的运算顺序。

运算符的优先级不需要特别地去记忆它,比较复杂的表达式一般使用圆括号()分开,提高可读性。

参考资料:实验楼学习文档

如果觉得《JAVA--算数运算符 位运算符 逻辑运算符 关系运算符 运算符优先级》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。