Java修饰符
static 修饰符
静态变量:static关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,
他的静态变量只有一份拷贝。静态变量也被称为类变量。局部变量不能被声明为static
变量。
静态方法:static关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静
态变量。
final修饰符
final变量:final表示最后的意思,变量一旦赋值后,不能被重新赋值。被final修饰的实例变量必须指定初始值。
final方法:父类中的final方法可以被子类继承,但是不能被子类重写。
声明final类的主要目的是为了防止该方法的内容被修改。
final类:final类不能被继承,没有类能够继承final类的任何特征。
abstract修饰符
抽象类:抽象类不能用来实例化对象,声明对象的唯一目的是为了将来对该类进行扩充。
抽象方法:抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。抽象方法不能被声明成static和final。
transient修饰符
序列化的对象包含被transient修饰的实例变量时,java虚拟机跳过该特定的变量。
Java运算符
运算符分为:
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
算术运算符:
运算符 | 描述 | 例子 |
---|---|---|
+ | 加法-相加运算符两侧的值 | 1+2=3 |
- | 减法-左操作数减去右操作数 | 3-1=2 |
* | 乘法-相乘操作符两侧的值 | 1*2=2 |
/ | 除法-左操作数除以右操作 | 4/2=2 |
% | 取余-左操作数除以右操作数的余数 | 9%2=1 |
++ | 自增:操作数的值增加1 | 1++或++1等于2 |
– | 自减:操作数的值减少1 | 1–或--1等于0 |
关系运算符:
运算符 | 描述 | 例子 |
---|---|---|
== | 检查两个数是否相同,如果相等则条件为真。 | A = B(为假) |
!= | 检查两个操作数的值是否相等,如果值不等则条件为真 | A = A(为假) |
> | 检查左操作数的值是否大于右操作数的值。 | 1>2(为假) |
< | 检查左操作数的值是否小于右操作数的值。 | 1<2(为真) |
>= | 检查左操作数的值是否大于或等于右操作数的值。 | 1>=2(为假) |
<= | 检查左操作数的值是否小于或等于右操作数的值。 | 2<=2 (为真) |
位运算符
操作符 | 描述 | 例子 |
---|---|---|
& | 如果相对应位都是1,则结果为1,否则为0 | 60&13等于12 |
丨 | 如果相对应位都是0,则结果为0,否则为1 | 60丨13等于61 |
^ | 如果相对应位值相同,则结果为0,否则为1 | 60^13等于49 |
~ | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0 | ~60等于-61 |
<< | 按位左移运算符。左操作数按照位左移右操作数指定的位数。 | 60<<2等于240 |
>> | 按位右移运算符。左操作数按照位右移右操作数指定的位数。 | 60>>2等于15 |
>>> | 按位右移补零。左操作数按右操作数右移,空位零填充。 | 60>>>2等于15 |
逻辑运算符
操作符 | 描述 | 例子 |
---|---|---|
&& | 逻辑与运算。当且仅当两个操作符数都为真,条件才为真。 | T&&F(为假) |
丨丨 | 逻辑或运算。如果任何两个操作数一个为真,结果为真。 | F丨丨T(为真) |
! | 逻辑非运算。结果为真变为假,否则反之。 | !(F丨丨T)(为假) |
短路逻辑运算符
当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
例:
public static void main(String[] args){
int a = 5;
boolean b = (a<4)&&(a++<10);
System.out.println("使用短路逻辑运算符的结果为" + b);
System.out.println("a的结果为" + a);
}
运行结果:
使用短路逻辑运算符的结果为false
a的结果为5
赋值运算符
操作符 | 描述 | 例子(a=10,b=20,c=0) |
---|---|---|
= | 简单的赋值运算 | c=a=10 |
+= | 加和赋值操作符 | c+=a=10 |
-= | 减和赋值操作符 | b-=a=10 |
*= | 乘和赋值操作符 | a*=b=200 |
/= | 除和赋值操作符 | b/=a=2 |
(%)= | 取模和赋值操作符 | b%=a=0 |
<<= | 左位移赋值运算符 | 5<<=2=20 |
>>= | 右位移赋值运算符 | 20>>=2=5 |
&= | 按位于赋值运算符 | 1&=10=0 |
^= | 按位异和赋值操作符 | 0^=10=10 |
丨= | 按位和赋值操作符 | 10丨=10=10 |
条件运算符(?:)
条件运算符也被称为三元运算符。该运算符有三个操作数,并且需要判断布尔表达式的值。
instanceof运算符
Java运算符优先级
类别 | 操作符 | 关联性 |
---|---|---|
后缀 | () [] .(点) | 左到右 |
一元 | + - ! ~ | 右到左 |
乘性 | * / % | 左到右 |
加性 | + - | 左到右 |
移位 | >> >>> << | 左到右 |
关系 | >>= <<= | 左到右 |
相等 | == != | 左到右 |
按位与 | & | 左到右 |
按位异或 | ^ | 左到右 |
按位或 | 丨 | 左到右 |
逻辑与 | && | 左到右 |
逻辑或 | 丨丨 | 左到右 |
条件 | ? : | 右到左 |
赋值 | = += -= *= /= %= >>= <<= &= ^= 丨= | 右到左 |
逗号 | , | 左到右 |