JavaSE运算符
算术运算符
运算符和表达式
- 运算符:对常量或者变量进行操作的符号。
- 表达式:用运算符把常量或者变量连接起来符合Java语法的式子称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。
算术运算符
- 加(+)
- 减(-)
- 乘(×)
- 除(/)
- 取余(%)
int a = 6;
int b = 4;
System.out.println(a / b); //结果输出1
System.out.println(6.0 / 4); //结果输出1.5
注意事项:
- / 和 % 区别:两个数据做除法, / 取结果的商,% 取结果的余数。
- 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。
字符的 " + " 操作
拿字符在计算机底层对应的数值来进行计算的
‘A’ → 65 A~Z 是连续的
‘a’ → 97 a~z 是连续的
‘0’ → 48 0~9 是连续的
当算术表达式中包含多个基本数据类型的值得时候,整个算术表达式的类型会自动进行提升。
提升规则:
- byte,short,char类型将被提升到int类型
- 整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
等级顺序:
byte,short,char → int → long → float → double
int i = 10;
char c = 'A'; //'A'的值是65
System.out.println(i + c); //输出75
char ch = i + c ; //错误,c 是 char 类型,会被自动提升到 int 类型,整个表达式的类型会被自动提升为 int 类型
int j = i + c;
int k = 10 + 13.14; //错误
double d = 10 + 13.14;
字符串的 " + " 操作
- 当 " + " 操作中出现字符串时,这个 " + " 是 字符串连接符,而不是算术运算符。
- 在 " + " 操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行 " + " 操作时,从左到右 逐个执行。
System.out.println("cappuccino" + "FH"); //输出 cappuccinoFH
System.out.println(666 + "HF"); //输出 666FH
System.out.println("HF" + 66 + 6); //输出 HF666
System.out.println(1 + 99 + "bug"); //输出 100bug
赋值运算符
赋值运算符
注意事项:
扩展的赋值运算符底层 隐含 了强制类型转换
short s = 10;
s += 20; //结果为 30 隐含了强制转换
s = s + 20; //错误,short 类型自动提升为 int 类型
s = (short)(s + 20);
自增自减运算符
自增自减运算符
- 单独使用时,++ 和 - - 无论是放在变量前面还是后面,结果都一样。
- 参与操作的时候,如果放在变量的后面,先拿变量参与操作,后拿变量做 ++ 或 - - 。
参与操作的时候,如果放在变量的前面,先拿变量做 ++ 或 - - ,后拿变量参与操作。
int i =10;
int j = i++;
System.out.println("i:" + i); //i:11
System.out.println("j:" + j); //j:10
int i =10;
int j = ++i;
System.out.println("i:" + i); //i:11
System.out.println("j:" + j); //j:11
关系运算符
关系运算符
注意事项:
- 关系运算符的结果都是boolean类型,要么是true,要么是false.
- 千万不要把 " == " 误写成 " = "。
逻辑运算符
逻辑运算符概述
逻辑运算符是用来 连接关系表达式 的运算符,也可以直接连接 布尔类型 的常量或变量。
逻辑运算符
短路逻辑运算符
注意事项:
- 逻辑与 &,无论左边真假,右边都要执行。
短路逻辑与 &&,若左边为真,右边要执行;若 左边为假,右边不执行。 - 逻辑或 |,无论左边真假,右边都要执行。
短路逻辑或 ||,若左边为假,右边要执行;若 左边为真,右边不执行。
最常用的逻辑运算符:
&&,||,!
int i = 10;
int j = 20;
System.out.println( (i++ > 100) && (j++ > 100) );// false && false
System.out.println("i:" + i); // i:11
System.out.println("j:" + j); // j:20
三元运算符
三元运算符
- 格式:关系表达式 ? 表达式1 : 表达式2;
- 范例:a >b ? a : b;
- 计算规则:
首先计算关系表达式的值
如果值为 true , 表达式 1 的值就是运算结果
如果值为 false , 表达式 2 的值就是运算结果