2023.3.26学习Java打卡
类型转换
不同类型数据先转化为同一类型,再运算:
#低--------------------→高
byte,short,char-→int-→long-→float-→double
例如:
//强制转换 高-→低
int a = 128;
byte b = (byte)i;
输出a=128,b=-128.
#因为存在内存溢出问题,byte范围从-128~127
//强制转换 低-→高
int a = 128;
double b = i;
输出a = 128,b = 128.0.
注意:
- 布尔值不能进行转换
- 不能把对象类型转换为不相干的类型
- 高-→低需要强制转换,注意内存溢出、精度问题
- 操作比较大的数字时,可以使用下划线( _ )分割
变量
- Java变量是程序中最基本的存储单元,要素包括变量名,变量类型和作用域
-
作用域:
类变量:static 变量名
实例变量:在类内,从属于对象;若不初始化值,默认为0或0.0,布尔值默认false,除基本类型外其余默认值为null。
局部变量:在方法中有用,必须声明和初始化值。
常量
注:初始化值后不会再改变;常量一般使用大写字符。
运算符
算数运算符:+ - * / % ++ -- |
---|
赋值运算符:= |
关系运算符:> < >= <= == != instanceof |
逻辑运算符:&& || ! (与、或、非) |
位运算符 :& | ^ ~ >> << >>> |
条件运算符:? : |
*拓展赋值运算符:+= -= = /= |
位运算:
A = 0011 1100
b = 0000 1101
A & B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~ B = 1111 0010
//2*8=16 2*2*2*2 = 2<<3 左移三位
//0000 0010 2
//0001 0000 18
// << 相当于 *2 >> 相当于/2
x ? y : z
//若x==true,则结果为y,否则结果为z
Java流程控制
-
Scanner对象:通过Scanner类获得用户的输入。
Scanner scanner = new Sacnner(System.in);
使用Scanner类的next()与nextLine()方法获取输入的字符串。
使用hasNext()与hasNextLine()判断是否还有输入的数据。
- next()
- 读取到有效字符后才可以结束输入。
- 有效字符前的空白,此方法会自动去掉
- 输入有效字符后,后面的空白作为分隔符或结束符
- next()不能得到带空格的字符串
- nextLine()
- 返回的是enter之前所有字符。
- 可以获得空白。
- next()
顺序结构
自上而下按顺序依次执行。
选择结构
-
if单选择结构
if(布尔表达式){ //布尔表达式为True后将要执行的语句 }
-
if双选择结构
if(布尔表达式){ //布尔表达式为True后将要执行的语句 }else{ //布尔表达式为False后将要执行的语句 }
-
if多选择结构
if(布尔表达式1){ //布尔表达式1为True后将要执行的语句 }else if(布尔表达式2){ //布尔表达式2为True后将要执行的语句 }else if(布尔表达式3){ //布尔表达式3为True后将要执行的语句 }else{ //以上布尔表达式都不为True后将要执行的语句 }
-
if嵌套结构
if(布尔表达式1){ //布尔表达式1为True后将要执行的语句 if(布尔表达式2){ //布尔表达式2为True后将要执行的语句 } }
-
switch多选择结构
switch(表达式){ case xxx: //语句 break; case xxx: //语句 break; default: //语句 } #case标签必须为字符串常量或字面量
循环结构
-
while循环
while(布尔表达式){ //循环内容 }
-
do...while循环
do{ //代码语句 }while(布尔表达式);
注:对于while语句而言,若不满足条件,则根本无法进入循环。
而do...while则会至少循环一次。
-
for循环
for(初始值; 布尔表达式; 更新){ //代码语句 }
注:初始值可以为空语句。布尔表达式也可以为空。更新也可以为空。
-
增强for循环
for(声明语句 : 表达式){ //代码句子 }
注:
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值也与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
-
break、continue
-
break:强行退出循环,不执行剩余语句。
-
continue:终止某次循环,即跳过本次循环体,接着下个循环体的判定。
-