Java关键字与保留字,变量,运算符
关键字与保留字
关键字
- 所谓关键字,即被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。关键字中所有字母都为小写。
| 关键字 | 列举 |
|---|---|
| 用于定义数据类型的关键字 | class, interface, enum, byte, short, int, long, float, double, char, boolean, void |
| 用于定义流程控制的关键字 | if, else, switch, case, default, while, do, for, break, continue, return |
| 用于定义访问权限修饰符的关键字 | private, protected, public |
| 用于定义类,函数,变量修饰符的关键字 | abstract, final, static, synchronized |
| 用于定义类与类之间关系的关键字 | extends, implements |
| 用于定义建立实例及引用实例,判断实例的关键字 | new, this, super, instanceof |
| 用于异常处理的关键字 | try, catch, finally, throw, throws |
| 用于包的关键字 | package, import |
| 其他修饰符关键字 | native, strictfp, transient, volatile, assert |
| 用于定义数据类型值的字面值 | true, false, null |
保留字
- 所谓保留字,即现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字。如:
goto, const
变量
- 所谓变量,即内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化。变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值。
- Java中每个变量必须先声明,后使用。变量的作用域在其定义所在的一对{ }内,变量只有在其作用域内才有效。且在同一个作用域内,不能定义重名的变量。
基本语法
-
变量的声明
语法:<数据类型> <变量名称>
例如:int var; -
变量的赋值
语法:<变量名称> = <值>
例如:var = 10; -
变量的声明与赋值
语法: <数据类型> <变量名> = <初始化值>
例如:int var = 10;
变量的分类
- Java对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。

-
整数变量
java的整型常量默认为 int 型,声明long型常量须后加l’或L`
Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long -
浮点变量
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是float的两倍。通常采用此类型。
Java 的浮点型常量默认为double型,声明float型常量,须后加f或F
浮点型常量有两种表示形式:
a. 十进制数形式:如:5.12 512.0f .512 (必须有小数点)
b. 科学计数法形式:如:5.12e2 512E2 100E-2 -
字符类型
char 型数据用来表示通常意义上“字符”(2字节)
字符型变量的三种表现形式:
a. 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
b. Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; // '\n'表示换行符
c. 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示 \n。 -
字符串类型
String不是基本数据类型,属于引用数据类型。使用方式与基本数据类型一致。例如:String str = "abcd";。一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据。
基本数据类型转换
自动类型转换
- 所谓自动类型转换,即容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:

- 当有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
- byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
- boolean类型不能与其它数据类型运算。
- 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类
型的值将自动转化为字符串(String)类型。
强制类型转换
- 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符:
(),但可能造成精度降低或溢出,格外要注意。 - 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
String a = “43”; int i = Integer.parseInt(a);
- 同理自动类型转换,boolean类型不可以转换为其它的数据类型。
运算符
- 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
算数运算符
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| + | 正号 | +3 | 3 |
| - | 负号 | b=4; -b | -4 |
| + | 加 | 5+5 | 10 |
| - | 减 | 6-4 | 2 |
| * | 乘 | 3*4 | 12 |
| / | 除 | 5/5 | 1 |
| % | 取模(取余) | 7%5 | 2 |
| a++ | 先运算再自增 | a=2;b=a++; | a=3;b=2 |
| ++a | 先自增再运算 | a=2;b=++a; | a=3;b=3 |
| a- - | 先运算再自减 | a=2;b=a- -; | a=1;b=2 |
| - -a | 先自减再运算 | a=2;b=- -a; | a=1;b=1 |
| + | 字符串连接 | “He”+”llo” | “Hello” |
赋值运算符
- 使用符号
=。当=两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。 - 还有如下扩展运算符:+=, -=, *=, /=, %=
比较运算符
| 运算符 | 运算 | 范例 | 结果 |
|---|---|---|---|
| == | 相等于 | 4==3 | false |
| != | 不等于 | 4!=3 | true |
| < | 小于 | 4<3 | false |
| > | 大于 | 4>3 | true |
| <= | 小于等于 | 4<=3 | false |
| >= | 大于等于 | 4>=3 | true |
| instanceof | 检查是否是类的对象 | "Hello" instanceof String | true |
逻辑运算符
| 运算符 | 运算 |
|---|---|
| & | 逻辑与 |
| && | 短路与 |
| | | 逻辑或 |
| | | | 短路或 |
| ! | 逻辑非 |
| ^ | 逻辑异或 |
&和&&的区别:单&时,左边无论真假,右边都进行运算;双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。|和||的区别同理。
位运算符
| 运算符 | 功能详解 |
|---|---|
| << | 左移运算。空位补0,被移除的高位丢弃,空缺位补0 |
| >> | 右移运算。被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1 |
| >>> | 无符号右移运算。被移位二进制最高位无论是0或者是1,空缺位都用0补 |
| & | 二进制位与运算。只有1&1时结果是1,否则是0 |
| | | 二进制位或运算。只有0 | 0时结果是0,否则是1 |
| ^ | 二进制异或运算。相同二进制位进行 ^ 运算,结果是0;不相同二进制位 ^ 运算结果是1 |
| ~ | 二进制取反运算。正数取反,各二进制码按补码各位取反;负数取反,各二进制码按补码各位取反 |
三元运算符
- 格式: (条件表达式)?表达式1:表达式2
- 当条件表达式的结果为true时,输出表达式1;当条件表达式的结果为false时,输出表达式2
参考:
《Java核心技术 卷Ⅰ》Cay S.Horstmann, Gary Cornell著,P33-P54