1、课程总体介绍
关于Java语言基础知识同学们需要学会什么? 类型转换知识 运算符的使用 怎么调用Java提供的程序 如何实现程序中 程序中怎么进行数据 程序员需要调用Java 不同类型的变量 的基本算术运算、以及 写好的一些程序,这些程序 或者数据互相传输, 一些逻辑运算、Java 如何去调用 不同类型的数据运算 提供了具体哪些 的结果数据的类型如何确定? 运算方式
2、类型转换_自动类型转换
什么是自动类型转换,为什么要学习自动类型转换? 类型范围小的变量,可以直接赋值给类型范围大的变量。 自动类型转换的底层原理 byte a = 12; a 00001100 (8位) int b = a; b 00000000 00000000 00000000 00001100 (32位) System.out.println(b); 自动类型转换的其他形式 byte --> short --> int --> long --> float --> double char 总结 1、为什么要进行类型转换? 存在不同类型的变量赋值给其他类型的变量 2、自动类型转换是什么样的? 类型范围小的变量,可以直接赋值给类型范围大的变量。
3、类型转换_表达式的自动类型提升
byte、char、short --> int --> long --> float --> double 注意事项: 表达式的最终结果类型由表达式中的最高类型决定。 在表达式中,byte、short、char是直接转换成int类型参与运算的。 总结 1、表达式的自动类型转换是什么样的? 小范围的类型会自动转换成大范围的类型运算。 2、表达式的最终结果类型是由谁决定的? 最终类型由表达式中的最高类型决定。 3、表达式的有哪些类型转换是需要注意的? byte short char是直接转换成int类型参与运算的。
4、类型转换_强制类型转换
场景 int a = 功能1(); int a = 20; 功能2(byte b); byte b = a; 问题 类型范围大的数据或者变量,不能直接赋值给类型范围小的变量。 强制类型转换 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。 数据类型 变量2 = (数据类型)变量1、数据 int a = 20; byte b = (byte) a; 注意事项 强制类型转换可以造成数据(丢失)溢出; 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。 总结 1、什么是强制类型转换? 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。 数据类型 变量 = (数据类型)变量、数据 2、强制类型转换有哪些需要注意的? 可能出现数据丢失。 小数强制转成整数是直接截断小数保留整数。
5、运算符_基本的算术运算符
运算符 运算符:对字面量或者变量进行操作的符号。 算术运算符 符号 作用 说明 + 加 参考小学一年级 - 减 参考小学一年级 * 乘 参考小写二年级,与"×"相同 / 除 与"÷"相同,注意:在java中两个整数相除结果还是整数。 % 取余 获取的是两个数据做除法的余数 总结 1、算数运算符有哪些? +、-、*、/、% 2、/需要注意什么,为什么? 如果两个整数做除法,其结果一定是整数,因为最高类型是整数。
6、运算符_数据拆分案例
案例 数值拆分 需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台
7、运算符_加符号做连接符
”+“做连接符 "+"符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。 能算则算,不能算就在一起。 总结 1、+除了做基本数学运算,好友哪些功能? 与字符串做+运算时会被当成连接符,其结果还是字符串。 能算则算,不能算就在一起。
8、运算符_自增_自减
自增自减运算符 符号 作用 说明 ++ 自增 变量自身的值加1 -- 自减 变量自身的值减1 注意: ++ 和 -- 既可以放在变量的后边,也可以放在变量的前边。 ++ 、 -- 只能操作变量,不能操作字面量的。 自增自减的使用注意事项 ++、--如果不是单独使用(如在表达式中、或者同时有其他操作),放在变量前后会存在明显区别 放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算。 int a = 10; int rs = ++a; 放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1 int b = 10; int rs = b++; 总结 1、自增、自减运算符是什么,有什么作用? ++、--。对当前变量值+1、-1 2、自增、自减运算符在变量前后有区别吗? 如果单独使用放前后是没有区别的。 非单独使用:在变量前,先进行变量自增/自减,再使用变量。 非单独使用:在变量后,先使用变量,再进行变量自增/自减。
9、运算符_自增_自减拓展案例_面试常考
public static void main(String[] args) { //目标:学会使用自增自减运算符 ++ -- System.out.println("--------拓展案例(可以了解和参考)-------"); int k = 3; int p = 5; //k 3 4 5 4 //p 5 4 3 4 // rs 3 + 5 - 4 + 4 - 5 + 4 + 2 int rs = k++ + ++k - --p + p-- - k-- + ++p + 2; System.out.println(k); System.out.println(p); System.out.println(rs); }
10、运算符_赋值运算符
基本赋值运算符 就是"=" int a = 10; // 先看"="右边,把数据10赋值给左边的变量a存储。 扩展赋值运算符 符号 作用 说明 += 加后赋值 a+=b 等价于 a = (a的数据类型)(a+b);将a+b的值给a -= 减后赋值 a-=b 等价于 a = (a的数据类型)(a-b);将a-b的值给a *= 乘后赋值 a*=b 等价于 a = (a的数据类型)(a*b);将a*b的值给a /= 除后赋值 a/=b 等价于 a = (a的数据类型)(a/b);将a/b的值给a %= 取余后赋值 a%=b 等价于 a = (a的数据类型)(a%b);将a%b的值给a 注意:扩展的赋值运算符隐含了强制类型转换 总结 1、赋值运算符有哪些? =、+=、-=、*=、/=、%= 2、作用是什么? 基本作用是赋值。 +=还可以实现数据的累加,把别人的数据加给自己。
11、运算符_关系运算符
关系运算符 是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。 符号 说明 == a==b,判断a和b的值是否相等,成立为true,不成立为false != a!=b,判断a和b的值是否不相等,成立为true,不成立为false > a>b,判断a是否大于b,成立为true,不成立为false >= a>=b,判断a是否大于等于b,成立为true,不成立为false < a<b,判断a是否小于b,成立为true,不成立为false <= a<=b,判断a是否小于等于b,成立为true,不成立为false 注意:在做相等判断时,千万不要把 == 误写成 =
12、运算符_逻辑运算符
逻辑运算符概述 可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。 全部结果 > 屏幕尺寸:6.95英寸及以上 运行内存:8GB "手机" 符号 介绍 说明 & 逻辑与 必须都是true,结果才是true;只要有一个是false,结果一定是false | 逻辑或 只要有一个为true,结果就是true ! 逻辑非 你真我假,你假我真,!true = false、!false = true ^ 逻辑异或 如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true。 短路逻辑运算符 符号 介绍 说明 && 短路与 判断结果与"&"一样。过程是左边为false,右边则不执行。 || 短路或 判断结果与"|"一样。过程是左边为true,右边则不执行。 注意:逻辑与"&"、逻辑或"|":无论左边是false还是true,右边都要执行。 总结 逻辑与"&":有一个为false、结果是false 短路与&&:一个为false、结果是false。前一个为false,后一个条件不执行了 逻辑或"|":有一个为true、结果是true 短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了 逻辑非"!": !false = true、!true = false 逻辑异或"^":相同是false、不同为tru。 注意:实际开发中、常用的逻辑运算符还是:&&、||、!
13、运算符_三元运算符
三元运算符介绍 格式:条件表达式 ? 值1 : 值2; 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值。
14、运算符_三元运算符练习题
案例 求三个整数的最大值 需求:定义单个整数,找出最大值并打印在控制台。 分析: 1.用三元运算符获取前两个整数的最大值,并用临时变量保存起来。 num1 > num2 ? num1 : num2; 2.用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。 temp > num3 ? temp : num3; 3、输出结果
15、运算符_优先级问题
运算符优先级 在表达式中,哪个运算符先执行后执行是要看优先级得,例如"*、/"的优先级高于"+、-"。 优先级 运算符 1 () 2 !、-、++、-- 3 *、/、% 4 +、- 5 <<、>>、>>> 6 <、<=、>、>=、instanceof 7 ==、!= 8 & 9 ^ 10 | 11 && 12 || 13 ?: 14 =、+=、-=、*=、/=、%=、&=、
16、API介绍_案例技术_键盘录入
需求: 请完成Java程序与用户交互,比如录入用户输入的名称、年龄,怎么办?。 JDK JRE javac、java等开发工具 JVM 程序(API) API(Application Programming Interface,应用程序编程接口) Java写好的程序(功能代码),咱们可以直接调用。 Oracle也为Java写好的程序提供了相应的API文档(技术使用说明书)。 下载API文档 http://www.oracle.com/technetwork/java/javase/downloads/index.html 键盘录入功能实现的三个步骤: 1.导入:告诉程序去JDK的哪个包中找扫描器技术 2.写一行代码代表得到键盘扫描器对象 3.等待接收用户输入数据。 注意: System、String在JDK中的java.lang包下 lang包不需要我们导包,是默认的包。 总结 1、API是什么? Application Programming Interface,应用程序编程接口 Java写好的程序(功能代码),咱们可以直接调用。 2、键盘录入的开发步骤 导包:import java.util.Scanner; 抄写代码得到扫描器对象:Scanner sc = new Scanner(System.in) 抄写代码等待接收用户输入的数据:sc.nextInt()、sc.next()