承接上文,本节继续介绍 java基础语法的剩余部分,包括 java的运算符、变量和关键字方面的内容。

1、运算符

1.1 常规

1)算术运算符:+,-,*,/,%(取余),++(自增),–(自减)
2)关系运算符:==,!=,>,<,>=,<= (用于布尔运算,结果未 true或 false)

pass:算术和关系运算符是最常见的也是最简单的,没什么好说的。
自增自减运算,a++ 相当于 a = a + 1, a– 相当于a = a - 1

3)位运算符:& (按位与),| (按位或),^ (异或),~ (按位取反),<< (按位左移),>> (按位右移),>>> (按位右移补0)

pass:位运算符和二进制有关,方法与二进制位的运算相同。觉得绕的可以先跳过,不是重点


4)逻辑运算符:&& (短路与),|| (短路或),! (逻辑非),& (逻辑与),| (逻辑或),具体含义如见下表:

pass:由表得知,操作数只能是布尔型,操作结果也是布尔型。

这里重点讲一下短路运算符从左到右的运算中前者满足要求,就不再执行后者。&&:从左到右,遇到一个为假就假。||:遇到一个为真就真。eg:

1
2
3
4
5
6
7
8
9
public class Hello {
public static void main(String[] args) {
int a=5;
boolean b=(a<4)&&(a++<10); //得到b为false。
boolean c=(a>4)||(a++>10); //得到c为true。
System.out.println(b);
System.out.println(c);
}
}


5)赋值运算符:=,+=,-=,*=,/=,(%)=,<<=,>>=,&=,^=,|=

= (将右操作数的值赋给左侧操作数 如 A=B –> 将B赋给A)
+= (C + = A等价于C = C + A)
-= (C - = A等价于C = C - A)
*= (C * = A等价于C = C * A)
/= (C / = A,C 与 A 同类型时等价于 C = C / A)
其他的用的不多,自行了解。

1.2 其他

1)三元(条件)运算符

1
表达式1 ? 表达式2 : 表达式3

若表达式1为true,则返回表达式2的值,如果表达式1为false,则返回表达式3的值。eg:

1
2
3
4
5
6
7
8
9
public class Hello {
public static void main(String[] args) {
int e , f;
e = 10;
// 如果 e 等于 1 成立,f 为 20,否则为 30
f = (e == 1) ? 20 : 30;
System.out.println(f); // f为30
}
}


2)instanceof 运算符
用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。eg:

1
2
3
4
5
6
7
public class Hello {
public static void main(String[] args) {
String name = "James";
boolean result=name instanceof String; //name 是 String 类型,故返回真
System.out.println(result);
}
}

1.3 优先级(简单看看即可)

数字越小,优先级越高。

总结:括号最高,逗号最低,单目 > 算术 > 位移 > 关系 > 逻辑 > 三目 > 赋值。

2、变量

创建变量前必须先声明变量。

1
2
int a=10;   // 创建变量前必须先声明
String name="zhangsan";

2.1 按在类中位置

1)局部变量
类的方法中、代码块中的变量(方法形参)。
2)类变量(静态变量)
static 关键字声明,但必须在方法之外
3)成员变量(非静态变量 / 实例变量 / 全局变量)
类中方法外:实例变量声明在一个类中,但在方法、构造方法和语句块之外。

2.2 final变量(常量)

final声明最终变量,不能被修改。

1
2
final int age = 15;
age = 20; // 将报错:无法为最终变量赋值

2.3 小结

1
2
3
4
5
6
7
public class Demo{
static int a=0; // 类变量
String str="zhangsan"; // 成员变量
public void method(){
int b =0; // 局部变量
}
}

3、关键字

Java关键字(保留字),不能用作变量、方法、类或任何其他标识符。常用的关键字一图以蔽之,如下: