一.算数运算符:+、-、*、/、%、++、--
1.知识点:基本使用
1.++a:先自增1,再使用,a++:先使用,再自增1
2.——,减1,原理与++一致
2.知识点:深入算数运算符
//案例一:byte做运算,会自动向上转型成int类型再做运算
//案例2:short做运算,会自动向上转型成int类型再做运算 //案例3:除了byte和short类型,其余的数值型做运算会向上转型成取值范围大的类型再做运算 //案例4:浮点型做运算有可能会失去精度,在工作用浮点数做运算都用BigDecimal去操作 //案例5:char类型做运算,会获取字符的ASCII //案例6:分号代表一条执行语句的结束,不管先加还是后加都得加,所有i++;和++i;是没有区别的
3.赋值运算符:=、+=、-=、 *=、/= 、 %=
注意: 1.short类型的变量s与int类型的数字字面量(如1)做运用的结果为int类型的数据,赋值给short类型的变量s会报错
4.关系运算符:==、!=、>、>=、<、<=
总结: 1.关系运算符的结果都是boolean类型,true或者 false 2.不要将==用成=
3.boolean不能与其他类型兼容
5.逻辑运算符:
&与, &&短路与,|或, ||短路或,^异或,!非
1.//&与:前后两者都接boolean值 //两个条件都成立(true),结果才为true
-
/&&短路与:前后两者都接boolean值 //两个条件都成立(true),结果才为true
-
//& :判断前者为false后,还会判断后者 //&&:判断前者为false后,不会判断后者,所以效率更高
-
//|或:前后两者都接boolean值 //两个条件有一个成立(true),结果就为true
-
//||短路或:前后两者都接boolean值 //两个条件有一个成立(true),结果就为true
-
//| :判断前者为true后,还会判断后者 //||:判断前者为true后,不会判断后者,所以效率更高
-
//^异或:前后两者都接boolean值 //两个条件相同为false,不同为true
-
//!非:置反,true变成false,false变成true
-
总计: 1.逻辑运算符运行结果都是boolean类型 2.&、&&、|、||、^ 两侧都是boolean类型数据
4.学习Scanner的使用
1.导包:import java.util.Scanner
//1.创建Scanner类的对象 Scanner scan = new Scanner(System.in); //2.输入数据 int i = scan.nextInt();//输入int数据 double d = scan.nextDouble();//输入double数据 String str = scan.next();//输入字符串
5.知识点:字符串拼接 +
+两侧都是数值:此符号为算数运算符 +有一侧是字符串或者两侧都是字符串:此符号为字符串拼接符
6.知识点:三目运算符的基本使用及表达式
1.表达式含义: 5+6:算数表达式 5>6:关系表达式 true&&true:逻辑表达式
2.三目运算符/三元运算符
语法结构: 数据类型 变量 = (表达式)?值1:值2; 理解: 表达式结果必须是boolean类型 true - 将值1赋值给变量 false- 将值2赋值给变量
返回值规则: 1.值1和值2都是常量的情况,返回值的类型为取值范围大类型 2.值1和值2都是变量的情况,返回值的类型为取值范围大类型 3.值1和值2有一个是常量有一个是变量的情况: 常量是否在变量所属类型的取值范围里 在 - 就按照变量所属类型返回数据 不在- 就按照常量所属类型返回数据
7.知识点:位运算符 & | ^ << >> >>>
概念:将十进制的数据转换为二进制再做运算
1.//&与:同位比较,两者为1,结果才为1
2.//|或:同位比较,两者有1,结果就为1
3.//^异或:同位比较,两者相同为0,不同为1
注意:& | ^ : 前后两者都是boolean值,该符号为逻辑运算符 & | ^ : 前后两者都是数值,该符号为位运算符
-
//<<左移:整体向左移动n位,用n个0补位
-
//>>右移:整体向右移动n位,用n个符号位补位
-
//>>>无符号位右移:整体向右移动n位,用n个0补位 //注意:无符号位右移操作是正数跟右移没有区别