[Java]关键字_变量_运算符

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中每个变量必须先声明,后使用。变量的作用域在其定义所在的一对{ }内,变量只有在其作用域内才有效。且在同一个作用域内,不能定义重名的变量。

基本语法

  1. 变量的声明
    语法:<数据类型> <变量名称>
    例如:int var;

  2. 变量的赋值
    语法:<变量名称> = <值>
    例如:var = 10;

  3. 变量的声明与赋值
    语法: <数据类型> <变量名> = <初始化值>
    例如:int var = 10;

变量的分类

  • Java对于每一种数据都定义了明确的具体数据类型(强类型语言),在内存中分配了不同大小的内存空间。
  1. 整数变量
    java的整型常量默认为 int 型,声明long型常量须后加lL`
    Java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long

  2. 浮点变量
    float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
    double:双精度,精度是float的两倍。通常采用此类型。
    Java 的浮点型常量默认为double型,声明float型常量,须后加fF
    浮点型常量有两种表示形式:
    a. 十进制数形式:如:5.12 512.0f .512 (必须有小数点)
    b. 科学计数法形式:如:5.12e2 512E2 100E-2

  3. 字符类型
    char 型数据用来表示通常意义上“字符”(2字节)
    字符型变量的三种表现形式:
    a. 字符常量是用单引号(‘ ’)括起来的单个字符。例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
    b. Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; // '\n'表示换行符
    c. 直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示 \n。

  4. 字符串类型
    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