Java运算符
运算符介绍
一种特殊的符号,表示数据的运算、赋值和比较。
算数运算符
对数值类型的变量进行运算。+、-、*、/、%、++、--。
细节说明: 对于/,整数之间做除法,舍弃小数只保留整数部分 取余a%b:a%b=a -a / b * b
关系运算符
运算结果是boolean型,true或false。
==、!=、<、>、<=、>=;instanceof
逻辑运算符
用于连接多个条件,最终结果也是boolean值。
短路与&&、或、取反;逻辑与、或、异或。 短路与a&&b中,如果第一个条件为false,则第二个条件不会判断,效率更高。 短路或a||b中,如果第一个为true,则第二个条件不会判断。 异或a^b中,如果a和b不同,则为true。
赋值运算符
将值赋给变量。
运算特点: 运算顺序是从右向左; 赋值运算的左边只能是变量,右边可以是变量 复合赋值运算符会进行类型转换。
三元运算符
条件表达式?表达式1:表达式2 如果条件表达式为true,运算后的结果为表达式1;如果条件表达式为false,运算后的结果为表达式2
使用细节: 表达式1和表达式2要为可以赋给接收变量的类型 三元运算符可以转为if-else语句
运算符优先级
括号>单目运算符>算数运算符>位移运算符>比较运算符>逻辑运算符>三元运算符>赋值运算符
位运算
按位与、按位或、按位异或、按位取反
算数左移<<符号位不变,低位补0; 算数右移>>符号位不变、低位溢出,用符号位补溢出的高位; 逻辑右移>>>低位溢出,高位补0
原码、反码和补码
- 二进制的最高位是符号为,0表示正数、1表示负数
- 正数的原码、反码、补码都一样
- 负数的反码是原码符号位不变,其他位取反
- 负数的补码=反码+1;负数的反码=补码-1
- 0的反码和补码都是0
- java中的数都是有符号数
- 计算机运算时,都是以补码进行运算,结果看原码