1.什么是运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,java也提供了一套丰富的运算符来操纵变量。
2.算数运算符
基本的四则运算符号:加减乘除取模(+、-、*、/、%)
java中小数可以参与取模运算的这与c语言不同,但是没有意义,一般都是对整型取模的。
sout(11.5%2.0);
//运行结果
1.5
两侧操作数类型不一致时,向类型大的提升。
sout(1+0.2);+左侧是int右侧是double,在加之前int被提升为double
//运行结果
1.2
3.增量运算符(+=、-=、*=、%=)
该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。
int a=1;
a+=2;
sout(a);
//运行结果
3
对于增量运算符会自动的进行类型转换
4.自增/自减运算符++、--
++是给变量的值+1,--是给变量的值-1
前置++:++a
后置++:a++
如果单独使用前置++和后置++没有任何区别,如果混合使用,前置++先+然后使用,后置++先用再++
只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改。
5.关系运算符
关系运算符主要有六个:==、!=、<、>、<=、>=,其计算结果是true或者false
6.逻辑运算符(重点)
逻辑运算符主要有三个:&&、||、!,运算结果都是boolean类型
逻辑与&&
语法规则:表达式1&&表达式2,左右表达式必须是boolean类型的结果。
相当于现实生活中的且,比如:如果是学生,并且带有学生证才可以享受半票。
两个表达式都为真结果才为真,只要有一个为假,结果就为假
逻辑或||
语法规则:表达式1||表达式2,左右表达式必须是boolean类型的结果。
相当于现实中的或,比如买房子交钱时,全款或者按揭都可以,如果全款或者按揭,房子都是你的。
左右表达式至少有一个为真,则结果为真。
逻辑非!
语法规则:!表达式
真变假,假变真。
短路求值是根据其运算法则来判断是否还要对后面进行二次判断。
7.位运算符
java中数据存储的最小单位是字节,而数据操作的最小单位是比特位。字节是最下的存储单位,每个字节是由8个二进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。
位运算符主要有四个:&、|、~、^、除~是一元运算符外,其他都是二元运算符。
位操作表示按二进制位运算。计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是按照二进制的每一位依次进行计算。
按位与&:如果两个二进制位都是1,则结果为1,否则结果为0.
00101011&01011010 =>00000010 只要对应位上都是1结果才是1
按位或| :只要对应位上有1,结果就是1
00101011|01011010 =>01111011 只要对应位有1结果就是1
按位异或^:对应位不一样的地方结果为1,对应位一样的地方结果0.
00101011^01101101 =>01000110 对应位不一样的地方
按位取反~:对应位取反,0变为1,1变为0.
8.移位运算符(了解)
移位运算符有三个:<<、>>、>>>,都是二元运算符,且都是按照二进制比特位来运算的。
9.条件运算符
表达式1?表达式2:表达式3
当表达式1的值为true时,整个表达式的值为表达式2的值。
当表达式1的值为false时,整个表达式的值为表达式3的值。
也是Java中唯一的一个三目运算符,是条件判断语句的简化写法。
10.运算符优先级
在一条表达式中,各个运算符可以混合起来进行运算,但是运算符号的优先级不同。
运算符之间是有优先级的,具体的规则我们不必记忆。在可能存在歧义的代码中加上括号即可。