一个编程小白的Java战役(8)

一个编程小白的Java战役

——太原理工大学机器人团队学习打卡day8

昨天我们学习了运算符,今天就让我们了解一下表达式。这两个学完后,就可以根据实际情况编写一些简单的程序了。

1、表达式

表达式是符合一定语法规则的运算符和操作数的序列。通俗来讲,它其实是运算数和运算符连接起来的式子。
一个编程小白的Java战役(8)
表达式有着自己的类型和值,其决定于它的运算数和运算符。如果有多个运算符,有着运算符的优先级问题。还有一个结合性问题。

运算符的优先级与结合性

Java中运算符的优先级与C语言基本相同(又是基本相同,果然,C语言是计算机高级语言基础)
一个编程小白的Java战役(8)
优先级:算术运算>逻辑运算>赋值运算

注:因为位运算一方面是位运算,一方面又是逻辑运算,所以与逻辑运算关系较乱,建议使用括号。当不确定优先级时,建议适当使用括号。

表达式中的类型转换

当有不同种类的运算数进行混合运算时,会进行转换。
一个编程小白的Java战役(8)
当我们书写时,各种表达式尽量选择可读性较好的,如果可读性较差(例如b=a++ + ++a),可能不能直接看出结果,我们可以使用反汇编来查看编译后的结果。

使用javap-c类名来显示反汇编代码。以b=a++ + ++a为例:
一个编程小白的Java战役(8)
让我们来放大看看:
一个编程小白的Java战役(8)
由此,我们可以看出:b=a++ + ++a实际上是2+4=6。

查看反汇编代码需要了解一些Java虚拟机指令,我们这里就不过多讲解了。

2、今日小结

知道了表达式,大家应该会调节自己的程序了吧。出错了也不要紧,大不了用javap-c看看哪一步没运行对。8说了,我要去尝试下,明天见。