算术运算符
算术运算符的概念和使用
-
表示加法运算符
-
表示减法运算符
-
表示乘法运算符
- / 表示除法运算符
- % 表示求余运算符
算术运算符的注意事项
- 当两个整数相除时结果只保留整数部分,丢弃小数部分。
- 希望相除结果保留小数部分的做法:使用强制类型转换将其中一个操作数转换为double类型再运算或者将其中一个操作数乘以1.0即可(推荐)。
- 0不能作除数,不然会发生算术异常(ArithmeticException)。
字符串连接运算符
- “+”可以实现字符串的连接。同时可以实现字符串和其他数据类型“相连”。
- 只要“+”两边的操作数中有一个是字符串类型,则该“+”就被当做字符串连接符处理,否则当做加法运算符处理。
关系运算符的概念和使用
- >表示是否大于运算符
- <表示是否小于运算符
- ==表示是否等于运算符
- >=表示是否大于等于运算符
- <=表示是否小于等于运算符
- !=表示是否不等于运算符
自增减运算符
- ++表示自增运算符,用于使得当前变量自身的数值加1的效果。
- -- 表示自减运算符,用于使得当前变量自身的数值减1的效果。
- 只能用于变量,不能用于常数。
自增减运算符放在前后的区别
例如++a和a++,首先变量a和表达式a++以及++a都有不同的内存空间,它们可能存储着不同的值。
- 后++表示先让变量a的数值作为整个表达式a++的最终结果,然后再将变量a自身的数值加1.
- 前++表示先让变量a自身的数值加1,然后再将变量a的数值作为整个表达式++a的结果。
逻辑运算符
- &&表示逻辑与运算符,同真为真,一假为假。
- || 表示逻辑或运算符,同假为假,一真为真。
- !表示逻辑非运算符,取反操作。
- 逻辑运算符的操作数均为boolean表达式。
逻辑运算符的短路特性
- 对于逻辑与运算符,若第一个表达式为假则结果为假,此时跳过第二个表达式。
- 对于逻辑或运算符,若第一个表达式为真则结果为真,此时跳过第二个表达式。
条件/三目运算符
- 三目运算符的语法格式:条件表达式?表达式1:表达式2;
- 三目运算符的含义:判断条件表达式是否成立,若成立则执行表达式1,否则执行表达式2。
赋值运算符
- “=”表示赋值运算符,用于将“=”右边的数据赋值给“=”左边的变量,覆盖变量原来的数值。本质是不管“=”右边是基本数据类型还是引用数据类型,统一将变量保存的那个值复制一份,传递过去,不过这个值可能是数据内容,也可能是内存地址。
- 赋值表达式本身也有值,其本身之值即为所赋之值。
注意事项
- byte+int 和 short+int 以及 byte+short 结果会自动转换成int类型。
- byte、short、int类型和long类型运算,结果都会自动转换成long类型。
移位运算符
- << 左移运算符,左移1位相当于当前整数的数值*2,左移2位相当于*4。
- >> 右移运算符,右移1位相当于当前整数的数值/2,右移2位相当于/4。
位运算符
- & 表示按位与运算符,按照二进制位进行与运算,同1为1,有1个0为0。
- | 表示按位或运算符,按照二进制位进行或运算,有1个1为1,同0为0。
- ~ 表示按位取反运算符,按照二进制位进行取反,1为0,0为1。
- ^ 表示按位异或运算符,按照二进制位进行异或运算,同为0,不同为1。