运算符:所谓运算符就是参与数据运算的符号 Java定义的,无法自行定义运算符
表达式:所谓的表达式其实就是采用运算符和数据连接在一起形成符合Java语法规则的指令代码,称之为表达式
算数运算符:
1.一元运算符 : 一个元素参与运算的运算符 ++,--
int i = 0;
int j = i;
i = i + 1;
int j = i++;
2.二元运算符 : 两个元素参与运算的运算符
算数表达式 = 元素1 算术运算符 元素2
这个表达式是有结果的,就需要有类型,这里的类型是元素种类最大的那一种,最小使用类型为int 类型
System.out.println(1.0 / 2); //0.5 (double ,int) => double
运算符 - 赋值运算符
等号就是赋值运算符,将等号右边表达式的结果赋值给左边 赋值运算符需要考虑类型的关系
String name = "zhangsan" ;
byte b = 10 ;
short s = b ;
复合赋值运算符:+=
如果元素进行运算后重新赋值给自己,那么可以将运算和赋值的符号进行简化 如果使用了复合赋值运算符,那么数据类型不会发生变化
int i = 1;
i *= 2;
System.out.println(i);
byte b1 = 10;
// b1 = b1 + 20; // int => byte
b1 += 20;
System.out.println(b1);
运算符 - 关系运算符
所谓的关系运算符就是用于比较两个数据之间关系的运算符 关系运算符的基本语法结构:
关系表达式 元素1(数据1,表达式1) 关系运算符[ == ,!=,>,<,<=,>=] 元素2(数据2,表达式2)
int i = 10;
int j = 20;
System.out.println(i==j); // 双等号表示两个数据是否相等
System.out.println(i!=j); // 感叹号等号表示两个数据是否不相等
System.out.println(i>j); // false
System.out.println(i>=j); // false
System.out.println(i<=j); // true
System.out.println(i<j); // true
运算符 - 逻辑运算符
所谓的逻辑运算符其实就是用于描述多个条件表达式之间的关系的运算符
基本的语法结构: 变量 = (条件表达式1) 逻辑运算符 (条件表达式2)
结果的变量的类型依然为布尔类型
逻辑运算符: &,称之为与运算
与运算,要求两个条件表达式都必须计算出结果,只有当两个结果都是true时,最终结果为true,其他情况皆为false
int i = 10 ;
boolean result = (i > 5) & (i < 20) ;
System.out.println(result); // true
逻辑运算符:|,称之为或运算
或运算,要求两个条件表达式都必须计算出结果,只要其中一个结果为true,最终结果则为true
int i = 10 ;
boolean result = (i < 5) | (i < 20) ;
System.out.println(result); // true
逻辑运算符:&&,称之为短路与运算
短路与运算会根据第一个条件表达式的结果来判断,是否执行第二个条件表达式。
int i = 10;
int j = 20;
boolean result = (i > 10) && (++j > 30) ; // ++ j 未执行
System.out.println(result); // false
System.out.println(j);
逻辑运算符:||,称之为短路或运算 短路与运算会根据第一个条件表达式的结果来判断,是否执行第二个条件表达式。
int i = 10;
int j = 20;
boolean result = (i == 10) || (++j > 30) ; //后续未执行
System.out.println(result); // true
System.out.println(j);
逻辑运算符:!,称之为非运算 true => false false => true
int i = 10;
boolean result = i == 10;
boolean result1 = i > 10;
System.out.println(!result); //false
System.out.println(!result1); //true