目录
1. 运算符介绍
运算符是一种特殊的符号,用以表示数据的运算,赋值和比较等。
- 算术运算符
- 赋值运算符
- 关系运算符[比较运算符]
- 逻辑运算符
- 位运算符
- 三元运算符
2. 算术运算符
算术运算符是对数值类型的变量进行运算的,Java程序中使用的非常多。
注意细节:
- 对于除号,它的整数和小数除有区别的;整数之间做除法时,只保留整数部分而舍弃小数部分。如:int x = 10/3,结果3。
- 当对一个数取模时,可以等价 a%b = a - a/b*b
- 当自增当作一个独立语言使用时,不管++i;还是i++,都是一样的。
- 当自增当作一个表达式,j = ++i;等价于先i+1,再将结果赋给j
- 当自增当作一个表达式,j = i++; 等价于先i赋给j,再将i值+1
3. 关系运算符(比较运算符)
关系运算符结果都是boolean型,也就是要么是true,要么是false。
关系表达式经常用在if结构条件中或循环结构的条件中。
注意 细节:
- 关系运算符的结果boolean型,也就是要么是true,要么是false。
- 关系运算符组成的表达式,我们称为关系表达式;a > b。
- 比较运算符“==”不能写为“=”。
4. 逻辑运算符
用于连接多个条件(多个关系表达式),最终的结果也是boolean值。
- 短路与 &&,短路或 ||,取反 |
- 逻辑与 &,逻辑或 | ,逻辑异或 ^
4.1 &&与&的区别
- &&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false,效率高。
- & 逻辑与:不管第一个条件是否为false,则第二个条件都要判断,效率低。
4.2 || 和 | 的基本规则
名称 | 语法 | 特点 |
短路或 || | 条件1||条件2 | 两个条件只要有一个成立,结果为true,否则false |
逻辑或 | | 条件1|条件2 | 只要有一个条件成立,结果为true,否则为false |
5. 赋值运算符
赋值运算符就是将某个运算后的值,赋给指定的变量。
基本赋值运算符:”=“ 如:int a = 10;
复合赋值运算符:+=,-=,*=,/=,如a+=b 为:a = a+b;
特点:
- 运算顺序从左到右。 int num = a+b+c;
- 赋值运算符的左边只能是变量,右边可以是变量,表达式,常量值。int m = 45*56+a;
- 复合运算符会类型转换
6. 三元运算符
基本语法
条件表达式 ?表达式1 :表达式2
运算规则:
- 如果条件表达式为true,运算后的结果是表达式1.
- 如果条件表达式结果为false,运算后的结果是表达式2.
7. 运算符优先级
- 运算符有不同的优先级,所谓优先级就是运算顺序。
- 只有单目运算,赋值运算是从右向左运算。
-
. {} () , 右 --> 左 ++ -- ~ !(data type) 左 --> 右 * / % 左 --> 右 + - 左 --> 右 << >> >>> 位移 左 --> 右 < > <= >= instanceof 左 --> 右 == != 左 --> 右 & 左 --> 右 ^ 左 --> 右 | 左 --> 右 && 左 --> 右 || 左 --> 右 ? : 右 --> 左 = *= /= %= += -= <<= >>= >>>= &= ^= |=
8. 标识符的命名规则和规范
-
Java对各种变量,方法和类等命名时使用的字符序列成为标识符。
-
凡是自己可以起名字的地方都叫标识符。 int num = 90;
-
标识符的命名规则:
-
由26个英语字母大小写,0-9,_或$组成。
-
数字不可开头,
-
不可用使用关键字和保留字。
-
Java中严格区分大小写,长度无限制。
-
标识符中不能包含空格。
-
-
标识符命名规范:
-
包名:多单词组成时所有字母小写,com.lp.ccc
-
类名,接口名:单词首字母大写,大驼峰。StudentTaskDeml.
-
变量名,方法名:第一个字母小写,小驼峰。teacherFindById
-
常量名:所有字母大写,多单词用下划线连接。MAX_AGE
-
9. 关键字
用于定义数据类型的关键字:class,interface,enum,byte,short,int,long,float,double,char,boolean,void
用于定义数据类型值的关键字:
true,false,null
用于定义流程控制的关键字:
if,else,switch,case,default,while,do,for,break,continue,return
用于访问权限修饰符的关键字:
private、protected、public
用于定义类,函数,变量修饰符的关键字
abstract、final、static、synchronized
用于定义类与类之间关系的关键字:
new、this、super、instanceof
用于异常处理的关键字:
try、catch、finally、throw、throws
用于包的关键字:
package、import
其他修饰符关键字:
native、strictfp、transient、assert、voatile
10. 保留字
Java保留字:现有版本尚未使用,以后可能会当作关键字使用。
如:byBalue,cast,future,generic,inner,operator,outer,rest,var,goto,const
11. 位运算符
- Java中有七个位运算(&、|、^、~、>>、<<、>>>)
- >> 、<< 、>>>运算规则
- 算术右移>>:低位溢出,符号位不变,用符号位补溢出的高位
- 算术左移<<:符号位不变,低位补0
- >>>:逻辑右移也叫无符号右移:低位溢出,高位补0
-
按位与 & 两位全为1,结果为1,否则为0 按位或 | 两位有一个为1,结果为1,否则0 按位异或 ^ 两位一个为0,一个为1,结果为1,否则为0 按位取反 ~ 0 -->1,1 -> 0