运算符指在计算机中对常量或者变量进行操作的符号,java运算符有六类:算数运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、三元运算符。
表达式是指:用运算符把常量或变量连接起来符合java语法的式子 。
1.算数运算符
注意事项:/ 运算符取的是商的值,比如int只能取到整数的值,要想取到小数位数要用double或者float, % 运算符取的是结果的余数
字符的“+”操作
char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值:
‘a’ – 97 a-z是连续的,所以’b’对应的数值是98,'c’是99,依次递加
‘A’ – 65 A-Z是连续的,所以’B’对应的数值是66,'C’是67,依次递加
‘0’ – 48 0-9是连续的,所以’1’对应的数值是49,'2’是50,依次递加
算术表达式中包含不同的基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
byte类型,short类型和char类型将被提升到int类型,不管是否有其他类型参与运算。
整个表达式的类型自动提升到与表达式中最高等级的操作数相同的类型
等级顺序:byte,short,char --> int --> long --> float --> double
例如:
public class Text1 {
public static void main(String[] args) {
byte a = 10;
byte b = 20;
//byte d = a + b; // 该行报错,因为byte类型参与算术运算会自动提示为int,int赋值给byte可能损失精度
int c = a + b; // 应该使用int接收
System.out.println(c);
byte e = (byte) (a + b); // 或者将结果强制转换为byte类型
System.out.println(e);
int num1 = 10;
double num2 = 20.0;
double num3 = num1 + num2; // 使用double接收,因为num1会自动提升为double类型
System.out.println(num3);
}
}
提示:正是由于上述原因,所以在程序开发中我们很少使用byte或者short类型定义整数。也很少会使用char类型定义字符,而使用字符串类型,更不会使用char类型做算术运算。
又例如:
System.out.println("zbcdefg" + 666);//输出zbcdefg666
在这个代码里面,“+”号没有起到运算作用,而是起到连接作用。
2.赋值运算符
赋值运算符有如下几种
特别注意: 扩展的赋值运算符隐含了强制类型转换。
例如:
3.关系运算符
int a = 10;
int b = 20;
System.out.println(a == b); // 输出为false
System.out.println(a != b); // 输出为true
System.out.println(a > b); // 输出为false
System.out.println(a >= b); // 输出为false
System.out.println(a < b); // 输出为true
System.out.println(a <= b); // 输出为true
// 关系运算的结果肯定是boolean类型,所以也可以将运算结果赋值给boolean类型的变量
boolean flag = a > b;
System.out.println(flag); // 输出为false
4.逻辑运算符
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断 的结果是 true 或 false。
public class Text1 {
public static void main(String[] args) {
int i = 10;
int j = 20;
int k = 30;//定义变量
//& “与”,并且的关系,只要表达式中有一个值为false,结果即为false
System.out.println((i > j) & (i > k)); //false & false,输出false
System.out.println((i < j) & (i > k)); //true & false,输出false
System.out.println((i > j) & (i < k)); //false & true,输出false
System.out.println((i < j) & (i < k)); //true & true,输出true
}
}
5.位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。位运算符作用在所有的位上,并且按位运算。
6、三元运算符
语法格式:
关系表达式 ? 表达式1 : 表达式2;
解释 :问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行表达式2。
public class Text1 {
public static void main(String[] args) {
int a=50;
int b=20;
int c=a>b?a:b;
System.out.println(c);//结果为50
}
}