java复习
基础语法
计算机中数据的最小单位
- 计算机的最小组成单位是: 使用8个二进制位为一组,来保存数据,称之为一个字节(byte,简称B).
- 其中每个二进制位称之为一位(bit,简称b),1 byte = 8 bit 简写1B = 8b
进制转换
- 十进制转二进制:除二取余
- 二进制转十进制:从右到左用二进制的每个数去乘以2的相应次方
八进制、十六进制介绍
- 为了便于观察和表示二进制,推出了八进制和十六进制
- 八进制:每3位二进制作为一个单元,最小数是0,最大位是7,共8个数字
- 十六进制:每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用0~9 A B C D E F 代表
数据类型
- 引用数据类型 (除基本数据类型之外,如String)
- 基本数据类型: byte short int long float double char boolean
注意:java中支持书写二进制、八进制和十六进制的数据,分别需要以0B或者0b、0、0X或者0x开头
类型转换
自动类型转换
什么是自动类型转换
- 类型范围小的变量,可以直接赋给类型范围大的变量
为什么要进行自动类型转换
- 存在不同类型的变量赋值给其他类型的变量
自动类型转换的底层原理
自动类型转换的其他形式
表达式的自动类型转换
- 在表达式中,小范围类型的变量会自动转换成当前较大范围类型的类型再运算
注意事项:
- 表达式的最终结果类型由表达式中的最搞类型决定
- 在表达式中,byte、short、char是直接转换成int类型参与运算的
表达式的强制类型转换
问题
- 类型范围大的数据或变量,不能直接赋值给类型范围小的变量,会报错
强制类型转换
- 可以强行将类型范围大的变量、数据赋值给类型范围小的变量
强制类型转换的底层原理
注意事项
- 强制类型转换可能会造成数据(丢失)溢出;
- 浮点型强转成整形,直接丢掉小数部分,保留正数部分返回。
运算符
逻辑运算符
- 可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果
短路逻辑运算符
注意:逻辑与“&”、逻辑或“|”:无论左边是false还是true,右边都要执行
基本运算符
案例: 求水仙花数
- 水仙花数是一个三位数
- 水仙花数的个位、十位、百位的数字立方和等于原数运行结果 153 370 371 407
1
2
3
4
5
6
7
8for (int i = 100; i <1000 ; i++) {
int bai = i / 100; //百位
int shi = i / 10 % 10; //十位
int ge = i % 10 ; //个位
if (i == ge*ge*ge+bai*bai*bai+shi*shi*shi){
System.out.println(i);
}
}
案例:珠穆朗玛峰
- 需求:世界最高山峰是珠穆朗玛峰(8848.86米=8848860毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,折叠多少次,可以折成珠穆朗玛峰。
1
2
3
4
5
6
7
8
9double paperHeight=0.1; //纸张厚度
double peakHeight =8848860; // 山峰高度
int count =0;
while (paperHeight<peakHeight){
paperHeight *= 2 ;
count++;
}
System.out.println("折了"+count+"次");
System.out.println("纸张最终厚度:"+paperHeight);
案例:猜数字游戏
- 需求:随机生成一个1-100的数字,让用户猜测,猜大提示过大,猜小提示过小,直到猜中结束游戏
random 1
2
3
4
5
6
7
8
9
10
11
12
13
14int number = random.nextInt(100)+1; //随机生成1-100的数
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字");
while (true){
int numberIn = scanner.nextInt();
if (numberIn == number){
System.out.println("您猜对了");
break;
}else if (numberIn > number){
System.out.println("您输入的数大了,请重新输入");
}else {
System.out.println("您输入的数字小了,请重新输入");
}
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Abulivyet!
评论