运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。常见运算符有:
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
位运算符
三元运算符
运算符:算术运算符
package com.daya.org.basin;
/**
*
* @ClassName: NumberDemo
* @Description: 算术运算符示例
* @author root
* @date 2021年7月26日
* @version V1.0
*
*/
public class NumberDemo {
public static void main(String[] args) {
int number =10;
//正号运算符示例
// number=+number; //结果10
//负号运算符示例
// number=-number; //结果-10
//加号运算符示例
//number=number+3; //结果13
//减号运算符示例
//number=number-3; //结果7
//乘号运算符示例
//number=number*3; //结果30
//除号运算符示例
//number=number/3; //结果3
//取余运算符示例
//number=number % 3; //结果1
//i++运算符示例
//number=number++; //结果10
//++i除号运算符示例
//number=++number; //结果11
//i--运算符示例
//number=number--; //结果10
//--i运算符示例
//number=--number; //结果9
//字符串拼接示例
// String str1="hello";
// String str2=",world";
// str2=str1+str2; //结果 "hello,world"
}
}
算术运算符的注意问题
如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int x=3510;x=x/1000*1000; x的结果是?
“+”除字符串相加功能外,还能把非字符串转换成字符串.例如:
System.out.println("5+5="+5+5); //打印结果是? 5+5=55
赋值运算符
符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
支持连续赋值。
扩展赋值运算符: +=, -=, *=, /=, %=
运算符 | 运算 | 范例 | 结果 |
== | 相等于 | 4==3 | false |
!= | 不等于 | 4!=3 | rue |
< | 小于 | 4<3 | false |
> | 大于 | 4>3 | true |
<= | 小于等于 | 4<=3 | true |
>= | 大于等于 | 4>=3 | true |
instanceof | 检查是否是类的对象 | “Hello”instanceof String | true |
比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“= =”不能误写成“=” 。
逻辑运算符
&—;逻辑与 | —逻辑或 !—逻辑非
&& —;短路与 || —短路或 ^ —逻辑异或
逻辑运算符
逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
“&”;和“&&”;的区别:
单&;时,左边无论真假,右边都进行运算;
双&;时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
理解:异或,追求的是“异”
位运算符
位运算是直接对整数的二进制进行的运算
对于负数来说:
>>右移以后,最高空出来的位拿1去补
>>> 右移以后,高空出来的位拿0去补
三元运算符
格式:
(条件表达式)?表达式1:表达式2;
为true,运算后的结果是表达式1;
为false,运算后的结果是表达式2;
表达式1和表达式2为同种类型
三元运算符与if-else的联系与区别:
1)三元运算符可简化if-else语句
2)三元运算符要求必须返回一个结果。
3)if后的代码块可有多个语句
运算符的优先级
运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
只有单目运算符、三元运算符、赋值运算符是从右向左运算的。