数算运算符
+加
-减
*乘
/除整,取商
%取余数
整数操作只能得到整数, 想得到小数, 必须有浮点数参与运算
字符"+"操作字符
在计算机底层对应数值来进行运算
'A' = 65 A-Z是连续的
'a' = 97 a-z
'0' = 48 0-9
算术表达式中包含多个基本数据类型的值时,正个算术表达式的类型会自动进行提升
byte -> short -> int -> long -> float -> double 从小到大
字符串"+"操作
当"+"操作出现字符串时,这个"+"是字符串连接符
在"+"操作中,出现了字符串,就是连接符,否则算数运算
当连续进行"+"操作时,从左到右执行
public class Stu_3_1 { public static void main(String[] args) { //1. 数算运算符 int a = 10; int b = 20; System.out.println(a + b); System.out.println(a - b); //2. 字符"+"操作 char c = 'A'; int sum = a + c; //自动类型转换 小->大 System.out.println(sum); byte bsum = (byte) (a + c); // 强制类型转换 大->小 System.out.println(bsum); //3. 字符串"+"操作 String name = "LZF"; //当连续进行"+"操作时,从左到右执行 System.out.println(name + 10 + 20); // LZF1020 System.out.println(10 + 20 + name); // 30LZF } }
赋值运算符
= 等于
-= 减等于 如: a-=1 --> a= a-1;
+= 加等于
*= 乘等于
/= 除等于 取整
%= 余等于 取余
自增自减运算符
++ 自增
-- 自减
++, -- 可放变量后边,也可放在变量前边
单独使用时,++, --无论放在前边还是后边,结果都一样
参与操作时, 如放在变量后边, 先拿变量参与操作, 后拿变量做++, --
如:
int i = 1;
int a = i++; //a=1, i=2 先执行赋值,后做自增
int b = ++i; //b=3, i=3 先自增,后做赋值
关系运算符
== 等等于
!= 不等于
> 大于
>= 大于并等于
< 小于
<= 小于等于
关系运算符的结果都是boolean类型
public class Stu_3_2 { public static void main(String[] args) { //1. 赋值运算符 int a = 10; a += 10; System.out.println(a); //注: 拓展的赋值运算符隐含了强制类型转换 byte b = 1; b += a; //b = (byte)(b + a); System.out.println(b); //2. 自增自减运算符 int i = 1; //int j = i++; // 先赋值给j, 后i自增 int j = ++i; // 先i自增, 后赋值j System.out.println(j); System.out.println(i); } }
逻辑运算符
& 与 a&b a和b都是true, 结果为true, 否则false
| 或 a|b a和b都是false, 结果为false, 否则true
^ 异或 a^b a和b结果不同为true, 相同为false
! 非 !a 结果和a相反
短路逻辑运算符
&& 短路与
|| 短路或
逻辑&, 无论左边真假,右边都会执行
短路与&&, 如果左边真,右边执行, 如果左边假,右边不执行
逻辑|, 无论左边真假,右边都会执行
短路或||, 如果左边假,右边执行, 如果左边真,右边不执行
常用: && || !
三元运算符
格式: 关系表达式 ? 表达式1 : 表达式2;
如: a > b ? 表达式1 : 表达式2;
如果a>b为true,则表达式1的值就是运算结果
如果a>b为false,则表达式2的值就是运算结果
public class Stu_3_4 { public static void main(String[] args) { int a = 10; int b = 20; //三目运算, 获取最大值 int max = a > b ? a : b; System.out.println(max); } }