本章介绍:
- 熟练掌握简单语录 - 分号,块,空白,关键字等的使用
- 实习Java标识符规则
- 掌握变量与常量的定义、初始化
- 熟练掌握Java中的算术运算符、逻辑运算符、关系运算符、位运算符的典型特征及运算过程
- 深入理解位运算包括位移运算和位逻辑运算的运算法则
- 熟悉位运算的各类运用场景
运算符的作用
- 从功能角度分,Java中的运算符可以分为算数、关系、位、逻辑运算符四类
- 运算符既可以对变量进行运算,也可以对常量进行运算,被运算的数据称作操作数
- 多数运算符的操作数只能是基本数据类型,只有 + 、 == 、 != 例外,其中 + 不仅能对基本数据类型进行加运算,还能将字符串进行连接; == 、 != 除了可以比较基本数据类型的二进制外,还能比较基本数据类型的地址;
算数运算符
- 算数运算符用来对操作数进行数字运算; + 比较特殊 ,除了能做加运算外,还可以进行字符串连接
- / 进行整除运算,结果是商的整数部分
- % 进行取模运算,结果是余数部分
int a = 13;
int b = 5;
System.out.println("a/b="+(a/b)); // 输出2
System.out.println("a%b="+(a%b)); // 输出3
- ++ 和 -- 对变量 进行自加和自减操作;
- 位于变量前,则先对变量进行运算 ,再返回表达式的值;位于变量后,则先返回表达式的值,再对变量进行运算 ;
int a = 13;
int b = 5;
System.out.println("a++="+(a++));
System.out.println("++b="+(++b));
System.out.println("a="+a);
System.out.println("b="+b));
关系运算符
- 关系运算符又叫比较运算符,用来运算两个操作数的大小关系,返回值为 true 或者 false
- == 以及 != 也可以对引用类型进行运算,比较是否是同一个对象
位运算符
- 位运算符是针对操作数的二进制进行运算
- 15的二进制为00001111,6的二进制是00000110
逻辑运算符:
- 实例:
- 逻辑运算符有6个,针对布尔值或者返回值为布尔值的表达式进行运算;
- 与 " & " 、 " && ":两个操作数都是true时返回true ,只要有一个false就会返回false
- 或 " | " 、 " || " : 两个操作数只要有一个是true 就返回true,只有两个都是 false 时返回 false
- 非 ! : true 变 false ,false 变 true
- 异或 ^ :两个操作数不同返回false ,两个操作数相同返回 true
- 逻辑运算中的 " 与 " 、 " 或 " 分别有两个 , & 和 && 以及 | 和 ||
- & 和 | 称为非短路逻辑运算; | 和 || 称为短路逻辑运算;
- 如果存在 T1 & T2 ,当 T1 为 false 时,返回值已经确定为false,但是依旧还会进行T2表达式,因此 称之为 “ 非短路 ”
- 如果存在 T1 & T2 ,当 T1 为 false 时,返回值已经确定为false , 就不会运算 T2 表达式 ;因此称之为 “ 短路 ”
- | 与 || 也存在类似逻辑,当第一个表达式为true时,因为已经确定了返回值肯定为 true ,所以 || 就不会在运算第二表达式了,而 | 则会运算第二个表达式
条件运算符:
- 条件运算符是唯一的一个三元运算符,它有三个表达式操作数 (不是典型的两个操作数)
- 格式:
表达式1 ? 表达式 2 :表达式3
- 在这个语句中,表达式1必须产生一个布尔值。如果表达式1的值为true,那么表达式2被计算;如果表达式为false,那么表达式3倍计算,并且整个表达式的值是有条件的。
复合赋值运算符
- Java中的赋值可以使用普通的 = 进行赋值;也可以 = 与其他运算符一起进行复合赋值,即为运算后赋值;
基本运算符的重点使用领域
- 应用1:取模运算限定数值范围
- 取模运算的结果是表达式运算后的余数,且余数永远小于除数
- 利用这个特征,可以使用取模运算限定数值范围
- 列如:
- 判断奇偶性
- 判断数字是否为质数
- ....
语句已经代码段
- 表达式是由操作数和运算符按一定的语法形式组成的符号序列
- 一个常量或一个变量名字是最简单是表达式,其指就是该常量或变量的值;
- 表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。
Java的注释
语句以及代码段
- 一个由分号( ; ) 结尾的单一命令是一条语句 (Statement),一条语句一般是一行代码,但也可以占多行代码
- int a = 1 ; // 变量定义及初始化语句
- 用大括号 " {.....} " 围起来的多条语句构成一个代码段(Code block);同时代码段也包括大括号前的一些修饰性描述:
标识符
- 程序号对程序中的各个元素加以命令时使用的命名记号称为标识符
- Java语言中,标识符是以字母,下划线 " _ " ,美元 " $ " 开始的一个字符序列,后面可以跟字母,下划线,美元符号,数字
- 合法的标识符:
- 非法的标识符:
- 保留字:具有的意义和用途,不能当作一般的标识符使用,这些标识符为保留字(reserved word):
变量和常量:
- 变量:程序中的基本存储单元,其定义包括变量名、变量类型、作用域几个部分
- 定义格式为:
-
-
- Java中变量的缺省初值都是确定的:
- 变量的作用域:指可访问变量的一段代码,在程序中不同的地方声明的变量具有不同的作用域:局域变量、类变量、方法参数、例外处理参数。(在一定的作用域内,变量名必须唯一)
- 作用域: 决定变量可使用的范围
- 全局变量(Global variables):变量可以在整个类中被访问;
- 局部变量(Local variables) : 变量只能在定义其的代码段中被访问
- 作用域规则:在一个代码段中定义的变量只能在该代码段或者该代码段的子代码段中可见
- 使用局部变量比使用全局变量更安全
变量和常量:
- 常量就是特殊的变量,不能修改值的变量
- 定义格式:
-
-
- 常量只能在定义时赋值