+加
-减
*乘
/除整,取商
%取余数
整数操作只能得到整数, 想得到小数, 必须有浮点数参与运算
在计算机底层对应数值来进行运算
'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); } }