1.前一天重点内容复习:
Java的隐式转换和显示转换
隐式转换也就是默认类型提升
byte、short、char三者之间不转换,一旦参与运算,优先转换为int、long、float、double
显式转换是强制类型转换
应用于将大的数据类型转换为小的数据类型
格式:目标数据类型 变量名 = (目标数据类型)(结果);
byte类型的取值范围,及强转的流程
byte类型取值范围:-128~127
强转流程:1.原类型原码 2.原类型反码 3.原类型补码 4.对原类型补码进行截取,得到目标类型补码 5.目标类型反码 6.目标类型原码(最终结果)
扩展运算符++,--参与运算,在数据前和后的区别
++、--在数据前面,先自增、自减,然后运算
++、--在数据后面,先运算,然后自增、自减
扩展的赋值运算符的特点
扩展赋值运算符+=、-+、*=、/=、%=
特点:不使用扩展运算符 目标类型 变量名1 = 变量名1 运算符 变量名2;
使用扩展运算符 目标类型 变量名1 运算符= 变量名2;
等价于 目标类型 变量名1 =(目标类型)(变量名1 运算符 变量名2);
通过比较发现,扩展赋值运算符的特点为:隐藏了强制类型转换
Java中的数据类型划分
基本数据类型
整数类型
byte 字节类型 范围:-128~127
short 短整型
int 整形(默认类型)
long 长整型
浮点数类型
float 单精度类型
double 双精度类型
字符类型
char
布尔类型
boolean
引用数据类型
数组
类
接口
2.逻辑运算符
基本逻辑运算符:
逻辑单与 &(并列关系)条件必须同时满足才成立
特点:有false,则false
逻辑单或 | (或的关系)满足一个条件即可成立
特点:有true,则true
逻辑异或 ^(同斥异吸)结果不同即可成立
特点:不同为true
逻辑非 !(结果取反)true为false,false为true
特点:真为假,假为真
逻辑单与&和逻辑双与&&的区别:
共同点:都表示并列关系,有false则false
不同点:具有短路作用,如果左边为false,最终结果肯定为false,右边便会不执行
逻辑单或|和逻辑双或||的区别:
共同点:都表示或的关系,有true则true
不同的:具有短路效果,如果左边为true,最终结果肯定为true,右边便不会执行
3.位运算符(对当前数据的补码进行计算)
基本位运算符:
位与&:有0则0
位或 |:有1则1
位异或^:相同为0,不同为1
特点:一个数据被另一个数据位异或偶数次,其值使他本身。
反码~:将数据的补码全部取反(不分最高符号位)得到结果的补码,之后推出结果原码,即可得到结果
其它位运算符(移位符号):
<<:左移
将这个数据补码向左移动,将高位丢弃掉,右边补0
速算:数值乘2的移位次幂
>>:右移
将这个数据补码向右移动,高位是几,左边补几
速算:数值除2的移位次幂
>>>:无符号右移
将这个数据补码向右移,左边补0
4.三元运算符
格式:(表达式)?(true的结果):(false的结果);
流程:判断表达式结果,true返回第一个结果,false返回第二个结果
5.键盘录入数据
Scanner类:文本扫描器
操作步骤:导包 import(关键字) java.util.Scanner;
创建文本扫描器对象 Scanner 对象名 = new Scanner(System.in);
将扫描器对象的数据赋值给变量 int 变量 = 对象名.nextInt();
6.流程控制语句
顺序结构语句
选择结构语句
if格式
switch格式
循环结构语句
for
while
do-while