在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
byte 、short、char ——> int ——> long ——> float ——> double
⚫ 表达式的最终结果类型由表达式中的最高类型决定。
⚫ 在表达式中,byte、short、char 是直接转换成int类型参与运算的。
1. 表达式的自动类型转换是什么样的?
⚫ 小范围的类型会自动转换成大范围的类型运算。
2. 表达式的最终结果类型是由谁决定的?
⚫ 最终类型由表达式中的最高类型决定。
3. 表达式的有哪些类型转换是需要注意的?
⚫ byte short char是直接转换成int类型参与运算的。
1. 什么是强制类型转换?
数据类型 变量2 = (数据类型)变量1、数据
int a = 20;
byte b = (byte)a;
⚫ 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
⚫ 数据类型 变量 = (数据类型)变量、数据
2. 强制类型转换有哪些需要注意的?
⚫ 可能出现数据丢失。
⚫ 小数强制转换成整数是直接截断小数保留整数。
1. 算数运算符有哪些?
⚫ + 、-、 *、 /、 %
2. / 需要注意什么,为什么?
⚫ 如果两个整数做除法,其结果一定是整数,因为最高类型是整数。
“+” 做连接符 能算则算,不能算就在一起。(计算机很聪明)
“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。
int a = 5 ;
System.out.println("abc" + 'a'); //abca
System.out.println("abc" + a); // abc5
System.out.println(5 + a); // 10
System.out.println("abc" + 5 + 'a');//abc5a
System.out.println(15 + "abc" + 15);//15abc15
System.out.println(a + 'a');//5+97=102
System.out.println(a + "" +'a');//5a
System.out.println(a + 'a'+" itheima ");//5+97+ +aiheima+ =102 itheima
System.out.println("itheima"+ a + 'a');//itheima5a
System.out.println("itheima"+ ( a + 'a' ));//itheima102
1. 自增、自减运算符是什么,有什么作用?
⚫ ++、--。对当前变量值+1、-1
2. 自增、自减运算符在变量前后有区别吗?
⚫ 如果单独使用放前后是没有区别的。
⚫ 非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
⚫ 非单独使用:在变量后 ,先使用变量,再进行变量自增/自减。
int c = 10;
int d = 5;
int rs3 = c++ + ++c - --d - ++d + 1 + c--;//10+12-4-5+1+12
System.out.println(rs3);//26
System.out.println(c);//11
System.out.println(d); //5
1. 赋值运算符有哪些?
⚫ =、+=、-=、*=、/=、%=
2. 作用是什么?
⚫ 基本作用是赋值。
⚫ +=还可以实现数据的累加,把别人的数据加给自己。
关系运算符是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。
注意:在做相等判断是,千万不要把 == 误写成 =
1. 逻辑运算符有哪些,有什么特点?
⚫ 逻辑与“&” :有一个为false、结果是false
⚫ 短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了
⚫ 逻辑或“|”:有一个为true、结果是true
⚫ 短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了
⚫ 逻辑非“!”:!false=true、 !true=false
⚫ 逻辑异或“^” :相同是false、不同是true。
⚫ 注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !
三元运算符介绍 条件表达式?值1:值2;
首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2
求三个整数的最大值
需求:定义三个整数,找出最大值并打印在控制台。
分析:
① 用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
⚫ num1 > num2 ? num1 : num2;
② 用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。
⚫ temp > num3 ? temp : num3;
③ 输出结果
在表达式中,哪个运算符先执行后执行是要看优先级的
// 目标:看看Java是否存在优先级,大家以后需要注意优先级问题
System.out.println(10 > 3 || 10 > 3 && 10 < 3); // true
System.out.println( (10 > 3 || 10 > 3 ) && 10 < 3); // false
1. API是什么?
⚫ Application Programming Interface,应用程序编程接口。
⚫ Java写好的程序,咱们可以直接调用。
2. 键盘录入的开发步骤
⚫ 导包:import java.util.Scanner;
⚫ 抄写代码得到扫描器对象: Scanner sc = new Scanner(System.in)
⚫ 抄写代码等待接收用户输入的数据: sc.nextInt() 、sc.next()
Scanner a = new Scanner(System.in);//123
System.out.print(a.next());//123