运算符
运算中,一个数值类型是高阶的,那么最后结果也是最高阶的数据类型!
回顾(低到高):byte,short,char——int——long——float——double
注意:
int b=a++ 执行完这行代码后,先给b赋值,再自增
int c=++a 执行完这行代码前,先自增,再给c赋值
很多运算,会使用一些工具类来进行运算,比如幂函数用Math.pow(底数,指数)
-
位运算是一种在计算机程序中,直接对二进制位进行操作的运算。它们包括按位取反(~)、按位与(&)、按位或(|)、按位异或(^)等操作。
-
其中,按位取反运算()会将二进制数的每一个位都取反,即0变为1,1变为0。例如,对于二进制数10101010,执行“”操作后,结果为01010101。
-
按位与运算(&)会将两个二进制数的对应位进行“与”操作,并返回一个新的二进制数。例如,对于二进制数10101010和11110000,执行“&”操作后,结果为10100000。
-
按位或运算(|)会将两个二进制数的对应位进行“或”操作,并返回一个新的二进制数。例如,对于二进制数10101010和11110000,执行“|”操作后,结果为11111010。
-
按位异或运算()也叫“异或”操作,会将两个二进制数的对应位进行“异或”操作,并返回一个新的二进制数。如果两个对应位相同,则结果为0;如果不同,则结果为1。例如,对于二进制数10101010和11110000,执行“”操作后,结果为01011010。
-
位运算是直接对二进制数的每一位进行操作,包括按位取反(~)、按位与(&)、按位或(|)、按位异或(^)等操作。通过这些操作,可以快速地实现一些特定的功能,如位移、掩码和比较等。通常情况下,位运算用于处理二进制位的标志和控制信息,以及优化内存使用等方面。
-
逻辑运算则是基于真假值(也就是布尔值)进行的运算,包括与(&&)、或(||)、非(!)等操作。逻辑运算主要用于判断条件、控制流程和实现抽象逻辑判断等方面。在逻辑运算中,操作数通常是布尔值,即真(true)或假(false)。
因此,位运算和逻辑运算虽然都是运算方式,但是它们的处理对象和目的不同。
短路运算:逻辑与运算时,前面就遇到false,那么直接输出false,不会运行完整行代码
逻辑或同理,前面遇到true,那么直接输出true!(位运算没有这种)
>> 右移一位,除于2
<< 左移一位,乘以2
字符串连接符是一种用于将两个或多个字符串连接起来形成一个新字符串的特殊字符。在许多编程语言中,常见的字符串连接符为加号(+)。java也可以使用StringBuilder 类来进行字符串连接。
- 如果加号(+)两侧的操作数都是数值,则加号执行加法运算。
- 如果加号(+)的其中一个操作数是字符串时,整个表达式将会被解释为字符串连接,而不管另一个操作数是什么类型。
三元运算符
x?y:z
如果x==true,则结果为y,否则结果为z
Java中的运算符优先级如下:
- 括号: ()
- 递增/递减: ++, –
- 正负号: +, -
- 算术运算符: *, /, %
- 算术运算符: +, -
- 移位运算符: <<, >>, >>>
- 比较运算符: <, <=, >, >=, instanceof
- 相等运算符: ==, !=
- 位运算符: &, |, ^
- 逻辑运算符: &&, ||
- 条件运算符: ?:
- 赋值运算符: =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=
需要注意的是,Java中运算符的优先级可以用括号来改变,以达到自己想要的运算顺序。