1. 概述
运算符:用于连接 表达式 的 操作数,并对操作数执行运算。
例如,表达式num1+num2,其操作数是num1和num2,运算符是”+”。
在java语言中,运算符可分为5种类型:
算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符。
根据操作数的不同,运算符又分为单目运算符、双目运算符和三目运算符。
单目运算符只有一个操作数,双目运算符有两个操作数,三目运算符则有三个操作数。
位运算符涉及到二进制位的运算,在java 程序中运用不是很多。
2.运算符速查表
3.关于自增自减
a是操作数,++是自增运算符,––是自减运算符,自增和自减运算符即可以放在变量的前面,也可以放在变量的后面,例如:a++、++a、a–、–a等。
自增(++):将变量的值加1
分前缀式(如++a)和后缀式(如a++)。
前缀式是先加1再使用;后缀式是先使用再加1。
自减(–):将变量的值减1
分前缀式(如––a)和后缀式(如a––)。
前缀式是先减1再使用;后缀式是先使用再减1。
int a = 1;
System.out.println(a++);//1
System.out.println(a);//2
int b = 1;
System.out.println(++b);//2
System.out.println(b);//2
int c = 1;
System.out.println(c--);//1
System.out.println(c);//0
int d = 1;
System.out.println(--d);//0
System.out.println(d);//0
4.优先级控制
当一个表达式包含多个运算符时,需要考虑运算符的优先级,优先级高的运算符先参与运算,优先级低的运算符后参与运算。
在实际的开发中,不需要特别去记忆运算符的优先级别,也不用刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号辅助进行优先级管理。
5.关于运算规则的几个知识点
5.1 计算结果的数据类型,与最大数据类型一致
System.out.println(3/2);//1,int/int,得到的结果类型还是int
System.out.println(3/2d);//1.5,int/double。得到的结果是double
5.2 byte,short,char三种比int小的整数,运算时会先自动转换成int
byte a = 1;
byte b = 2;
byte c = (byte)(a+b);
a+b会自动提升成int类型,右面得运算结果就是int大类型
给左面的byte小类型赋值,不可以,需要强转。
5.3 整数运算溢出
整数运算,类似于一个钟表,转到最大时,再转会回到最小。
溢出的现象:
因为做了大的整型数据的运算,会超出int取值范围。
解决方法:把整数提升成long类型。
System.out.println(300000000L606024365);
5.4 浮点数运算不精确
float a =2.0f;
float b =0.8f;
System.out.println(a-b);//1.2
5.5浮点数的特殊值
Infinity 无穷大 3.14/0
NaN not a number 0/0.0 或 0.0/0