1 数据类型
1.1 基本数据类型
- 程序处理的都是数据,由于不同数据的内容大小不同, 导致所需的存储单元大小不同,在Java语言中使用数据类型的概念加以描述 。
- 字节是计算机技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。Java中的字节是八位的字节,即它包含八位的二进制数。
![在这里插入图片描述](https://img-blog.csdnimg.cn/95410f3dc951475b9093cd6a6fdbce6c.png)
类型 | 占用内存 | 默认值 |
---|
整数型(int) | 4字节 | 0 |
短整数型(short) | 2字节 | 0 |
长整数型(long) | 8字节 | 0 |
字节型(byte) | 1字节 | 0 |
浮点型(float) | 4字节 | 0.0f |
双精度型(double) | 8字节 | 0.0d |
布尔型(boolean) | 1字节 | false |
字符型(char) | 2字节 | |
1.2 基本数据类型转换
- 自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d434d8aee31f4104b545ab1477e94535.png)
- byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
- boolean类型不能与其它数据类型运算。
- 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为
字符串(String)类型。
1.3 强制类型转换
- 自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换
符:(),但可能造成精度降低或溢出,格外要注意。 - 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成
基本类型。 - 例如:
String a = “43”; int i = Integer.parseInt(a);
2 运算符
2.1 算术运算符
运算符 | 描述 |
---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 求余(取模) |
++ | 自增 |
– | 自减 |
i++ //先执行当前语句的其他操作,再对i+1
++i //先对i+1,在执行当前语句的其他操作
2.2 赋值运算符
运算符 | 描述 |
---|
= | 赋值 |
+= | 加等 |
-= | 减等 |
*= | 乘等 |
/= | 除等 |
%= | 模等 |
2.3 关系运算符
- 关系运算符作用是比较两边的操作数,结果总是boolean型的。
运算符 | 描述 |
---|
== | 相等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
2.4 逻辑运算符
- 逻辑运算符用于对boolean
型结果的表达式进行运算,运算结果总是boolean型。
运算符 | 描述 |
---|
& | 与 |
| | 或 |
^ | 异或 |
! | 非 |
&& | 小于等于 |
|| | 短路或 |
2.5 三目运算符
- X ? Y : Z
- X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。
- 例如:
int score = 75;
String type = score >=60 ? "及格" : "不及格";
3 程序的流程控制
- 任何简单或复杂的算法都可以由顺序结构、分支结构和循环结构这三种基本结构组合而成。它们的共同点是都包含一个入口和一个出口,它们的每个代码都有机会被执行,不会出现死循环。
3.1 顺序结构
- 顺序结构是一种基本的控制结构,它按照语句出现的顺序执行操作。
![在这里插入图片描述](https://img-blog.csdnimg.cn/afb25078d5da494a9dcd7d3cfcabe9b3.png)
3.2 分支结构
- 分支结构又被称为选择结构,根据条件成立与否来执行操作。
3.2.1 基本选择结构 if
if(条件){
条件成立执行的内容
}
3.2.2 if-else选择结构
if(条件){
条件成立执行的内容
}else{
条件不成立执行的内容
}
3.2.3 多重选择结构
if(条件1){
//条件1成立的时候执行的条件
}else if(条件2){
//条件1不成立,条件2成立的时候执行的条件
}else if(条件3){
//条件1、2不成立,条件3成立的时候执行的条件
}......
else if(条件n){
//条件1到n-1不成立,条件n成立的时候执行的条件
}else{
//当以上的所有条件都不成立的时候执行的代码
}
3.2.4 switch选择结构
switch(表达式){
case 值1://相当于if(){}
//满足表达式的结果==值1的时候执行的代码
break;//退出当前的switch选择结构
case 值2://相当于else if(){}
//满足表达式的结果==值2的时候执行的代码
break;
......
case 值n:
//满足表达式的结果==值n的时候执行的代码
break;
default://相当于else
//以上的匹配都失败的时候执行的内容
break;
}
3.3 循环结构
- 循环结构是一种重复结构,如果条件成立,它会重复执行某一循环体,直到出现不满足的条件为止。
3.3.1 while循环
- 先判断后执行,如果初始条件不满足,循环一次都不执行
while(循环条件){
//循环操作
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/3d092fb20ed24840bb39997c5c00a5bd.png)
3.3.2 do-while循环
- 先执行后判断,如果初始条件不满足,循环至少执行一次
do{
//循环操作
}while(循环条件);
//PS:特别注意最后的分号不能丢掉
![在这里插入图片描述](https://img-blog.csdnimg.cn/5246a4e273e143e39c7240732f31d12f.png)
3.3.3 for循环
for(表达式1:定义循环变量;表达式2:循环条件;表达式3:循环变量的变化){
//循环操作
}
1、先执行表达式1:定义循环变量,该表达式只执行一次
2、判断循环条件是否成立:
3、循环条件成立:执行循环操作, 不成立:退出循环
4、执行完循环操作,执行表达式3–循环变量的变化
5、重复2-4步骤
![在这里插入图片描述](https://img-blog.csdnimg.cn/7ec7fd488c2d4f0b94348a33cfa3d49b.png)
3.3.4 循环中的关键字
1.break
- 退出循环
![在这里插入图片描述](https://img-blog.csdnimg.cn/63ac14838c0f40109be54449bde074c3.png)
2.continue
- 结束当次循环,进入下一次循环
![在这里插入图片描述](https://img-blog.csdnimg.cn/68d8d64d60dc44b480c9162da55934cb.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/647569f6506a4214bf43f3431e091b5c.png)