22 需要掌握内容

23 类型转换:自动类型转换
1.什么是自动类型转换?类型范围小的变量,可以直接赋值给类型范围大的变量。(char类型赋值给int类型的变量)
byte a = 20;
int b = a;//没报错说明可行,实际是这里发生了自动类型转换
System.out.println(a);
System.out.println(b);
这里的首位蓝色0表示其是正数
2.自动类型转换的其他形式

3.再看个自动类型转换的例子
int age = 23;
double db = age;
System.out.println(db);24 类型转换:表达式的自动类型提升
1.表达式自动类型转换规则

注意:
①表达式的最终结果类型由表达式中的最高类型决定(若用int和double同时进行运算,程序会将其先全部转换为double类型再一起计算,最后输出double类型的x.0带小数的)
②在表达式中,byte、short、char是直接转换成int类型参与运算的

如图 byte k改为int k
2.最终运行结果是31.0
byte a = 10;
int b = 20;
double c = 1.0;
double rs = a + b + c; //用最大范围的类型去接收
System.out.println(rs);25 类型转换:强制类型转换
1.什么是强制类型转换?强行将类型范围大的变量、数据赋值给类型范围小的变量。
一般情况:
int a =20;
byte b = a; //大范围数据类型赋给小范围类型,报错但若按照规则

便可以实现。
int a =20;
byte b = (byte)a; 2. 强制转换底层原理

3.注意事项。强制转换正确的前提是,前者有效位能够容纳在后者位数中,若不能则会导致数据溢出或丢失,影响最终输出结果。
int i = 1500;
byte j = (byte)i;
System.out.println(j);此处理想输出结果应是1500,但由于int位数远大于byte,导致最终结果改变为-36.
4.浮点型float强转成整型int,直接丢掉小数部分,保留整数部分返回。
double score = 99.5;3
int it = (int)score;
System.out.println(it);此处最终结果为99
26 运算符:基本的算数运算符
1.+、-、*、/(java中两个整数相除的结果还是整数)、%(取余)
2.小数除法可能是不准确的,10/3输出为3,如果想要其输出为3.333…,可以*1.0,而且必须放在前方给10乘
System.out.println(10 * 1.0 / 3);3.System.out.println(3 % 2); 结果为1
27运算符:数据拆分案例
需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台
// 拆分三位数
int data = 589;
//个位
int ge = data % 10;
System.out.println(ge);
//十位
int shi = (data % 100) / 10;
System.out.println(shi);
//百位
int bai = data / 100;
System.out.println(bai);28 运算符:加号做连接符
1.“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。


能算就算!不能算就在一起! |
此处是字符串5a,因为“”为其增加了字符串 |
Int a=5,“a”是将a看做字符串,字符串a存储的数字为97 |
29 运算符:自增自减运算符
1.++ 自增:变量自身的制加1
2.-- 自减:变量自身的值减1
3.注意
①++和—单独使用时,既可以放在变量后边,也可以放在变量前边
②++、--只能操作变量,不能操作字面量
③++、--如果不是单独使用(如在表达式中、或者同时有其他操作),放在变量前后有明显区别;

此时输出 b=10 rs=11
|
此时输出 a=11 rs=11
|
应用:抖音点赞数目、系统在线人数
int a = 10;
a++; // a = a + 1
System.out.println(a);30 运算符:自增自减拓展案例(面试常考)

注意搞清楚++、--的先后,决定了先加还是先用!c、d的数字也要在使用过程中随时更新。
31 运算符:赋值运算符
1.就是“=”,先看“=”右边,把数据赋值给左边的变量a储存。
2.扩展赋值运算符

注意:扩展的赋值运算符隐含了强制类型转换。
int a = 10;
int b = 200;
a += b;
System.out.println(a); //含有强制转换32 运算符:关系运算符
1.什么是关系运算符?是对数据进行条件判断的符号,最终返回一个比较的布尔结果(true,false)

注意不要把==写成=
2. 举个例子
int a = 10;
int b = 10;
boolean rs = a == b;
System.out.println(rs);或者直接
System.out.println(a == b);33 运算符:逻辑运算符
1.什么是逻辑运算符?可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。
2.应用:筛选功能

3. 具体内容


4. 举个例子
double size = 9.8;
double storage = 6;
//需求:尺寸大于6.95,内存大于8
System.out.println(size >= 6.95 & storage >= 8); //false
System.out.println(size >= 6.95 | storage >= 8); //true
System.out.println(!true); //false5.“”双与&&”:一个为false,结果是false。但左边若为false,右边不执行。
int a = 10;
int b = 20;
System.out.println(a > 100 && ++b > 10); //false
System.out.println(b); //21此时因为a>100为false,因此右边++b不会执行,输出b的结果仍为20;若将a改为101,则最终输出b为21。
同样的条同样的条件,但单&。虽然前者false,但后者仍会执行。
System.out.println(a > 100 & ++b > 10); //false
System.out.println(b); //21“双或||”:一个为true,结果是true。同理,左边若为true,则右边不执行。
int a = 10;
int b = 20;
System.out.println(a > 5 || ++b > 10); //true
System.out.println(b); //20但单“|”无论如何都会执行++b
int a = 10;
int b = 20;
System.out.println(a > 5 | ++b > 10); //true
System.out.println(b); //2134 运算符:三元运算符
1.格式:条件表达式? 值1:值2;
2.执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2.
3.举个例子

double score = 18;
String rs = score >= 60 ? "考试通过":"挂科";
System.out.println(rs);35 运算符:三元运算符练习题
案例:求三个整数的最大值
需求:定义三个整数,找出最大值并打印在控制台
int num1 = 369;
int num2 = 666;
int num3 = 123;
int max1 = num1 > num2 ? num1:num2;
int max2 = max1 > num3 ? max1:num3;
System.out.println(max2); 或者使用嵌套方法
int max = num1 > num2 ? (num1 > num3 ? num1:num3) : (num2 > num3 ? num2:num3);
System.out.println(max);36 运算符:运算符优先级问题
1.

2.举个例子。&&优先级高于||,因此先看后半蓝色部分。而蓝色部分前一半为false,则后一半不执行。蓝色部分整体为false,再看整体,整体前者为true,故输出true
System.out.println(10 > 3 || 10 > 3 && 10 < 3); //true但若加括号,反而会变成false
System.out.println((10 > 3 || 10 > 3) && 10 < 3); //false37 api介绍、案例技术:键盘录入
需求:完成java程序与用户交互,比如录入用户输入的名称、年龄
核心类库 (java写好的程序) |

2.API(application programming interface,应用程序编程接口)→Java写好的程序,可以直接调用。
键盘录入功能实现的三个步骤:

//1导包操作(其实并不需要自己写)
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//学会使用键盘录入技术
//2得到一个键盘扫描器对象
Scanner sc = new Scanner(System.in);
//3调用sc对象的功能 等待接收用户数输入数据
//这段代码会等待用户输入数据,直到用户输入完成并按下回车键,拿到数据
System.out.println("请输入年龄");
int age = sc.nextInt();
System.out.println("您的年龄是" + age);
System.out.println("请输入姓名");
String name = sc.next();
System.out.println("欢迎" + name);注意数据类型。name不能再用int接收。
38 阶段总结:类型转换、运算符、API、Scanner
本文详细讲解了Java中的类型转换,包括自动类型转换和强制类型转换,以及在表达式中的自动类型提升。此外,还介绍了算术运算符、关系运算符、逻辑运算符、三元运算符的使用规则和优先级,并通过实例展示了如何进行键盘录入。内容涵盖了从基本的数据类型转换到复杂的运算符应用。
1758

被折叠的 条评论
为什么被折叠?



