JAVA SE基础《三》---- JAVA语法
目录
一、变量详解
- 变量里的数据在计算机中的存储原理
- 字符、图片、声音的存储说明
- 数据转换
- 数据类型
二、类型转换
- 自动类型转换
- 表达式的自动类型转换
- 强制类型转换
三、运算符
- 基本算数运算符
- +符号做连接符
- 自增自减运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 三元运算符
- 运算符优先级
四、案例技术:获取用户键盘输入的数据
一、变量详解
1、变量里的数据在计算机中的存储原理
二进制
- 只有0、1,按照逢2进1的方式表示数据:
十进制转二进制的算法
- 除二取余法
计算机中表示数据的最小单元
- 计算机中数据最小的组成单元:使用8个二进制位为一组,称之为一个字节(byte,简称B)
-
字节中的每个二进制位就称为 位(bit,简称b), 1B = 8b
总结
1、数据在计算机底层都是怎么存储的?
- 都是采用二进制:使用0、1,按照逢2进1的规则表示数据来存储。
2、如何快速的算出一个数据的二进制形式?
- 除二取余法
3、数据在计算机底层存储的最小单位是什么?
- 字节,一个字节等于8个二进制位:1B=8b
2、字符、图片、声音的存储
其他数据形式是如何存储的
字符在计算机中是如何存储的呢?
-
ASCII编码表:即美国信息交换标准编码,规定了现代英语、数字字符、和其他西欧字符对应的数字编号。
图片数据-彩色图
-
图片就是无数个像素点组成的
-
每个像素点的数据:用0 ~ 255*255*255表示其颜色
声音数据
总结
1、字符数据在计算机中是怎么存的?
- 字符存的是ascii码表中对应的数字的二进制形式。
- 字符’A’对应的数字是 65
- 字符’a’对应的数字是 97
- 字符’0’对应的数字是 48
2、图片和音视频等文件的数据是怎么存储的啊?
- 也是采用二进制进行存储的。
3、数据转换
十进制转二进制的算法
八进制、十六进制介绍
-
为了便于观察和表示二进制,推出了八进制和十六进制。
-
每3位二进制作为一个单元,最小数是0,最大数是7,共8个数字,这就是八进制。
- 每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用: 0~9 A B C D E F 代表就是十六进制。
注意:Java程序中支持书写二进制、八进制、十六进制的数据,分别需要以0B或者0b、0、0X或者0x开头。
计算机的数据单位
-
计算机最小的组成单元是:字节,1B = 8b。
-
在B的基础上,计算机发展出了KB、MB、GB、TB、…. 这些数据单位。
总结
1. 二进制如何计算成十进制?
2. 二进制如何计算成八进制?
- 每3位二进制作为一个单元,最小数是0,最大数是7,0-7有8个数字
3. 二进制如何计算成十六进制?
- 每4位二进制作为一个单元,最小数是0,最大数是15
- 0-15有16个数字,依次用: 0~9 A B C D E F 代表
4. 数据大小的单位换算是怎么样的?
4、数据类型
数据类型的分类
- 基本数据类型:4大类8种。
- 引用数据类型
基本数据类型:4大类8种。
总结
1.数据类型分为几种?
- 引用数据类型:String
- 基本数据类型:4大类8种。
- byte short int(默认) long 整型
- float double(默认) 浮点型
- char 字符型
- boolean 布尔型
2.随便写的整数、小数字面值默认什么类型?
- 23 ,默认是int类型 , 加上L/l就是long类型的数据了。
- 23.8,默认是double类型,加上F/f就是float类型了。
二、类型转换
1、自动类型转换
什么是自动类型转换,为什么要进行自动类型转换?
- 类型范围小的变量,可以直接赋值给类型范围大的变量。
自动类型转换的底层原理
自动类型转换的其他形式
总结
1、为什么要进行类型转换?
- 存在不同类型的变量赋值给其他类型的变量
2、自动类型转换是什么样的?
- 类型范围小的变量,可以直接赋值给类型范围大的变量。
2、表达式的自动类型转换
表达式的自动类型转换
- 在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
注意事项:
- 表达式的最终结果类型由表达式中的最高类型决定。
- 在表达式中,byte、short、char 是直接转换成int类型参与运算的。
总结
1、表达式的自动类型转换是什么样的?
- 小范围的类型会自动转换成大范围的类型运算。
2、表达式的最终结果类型是由谁决定的?
- 最终类型由表达式中的最高类型决定。
3、表达式的有哪些类型转换是需要注意的?
- byte short char是直接转换成int类型参与运算的。
3、强制类型转换
场景
问题
- 类型范围大的数据或者变量,不能直接赋值给类型范围小的变量,会报错。
强制类型转换
- 可以强行将类型范围大的变量、数据赋值给类型范围小的变量
强制类型转换底层原理
注意事项
- 强制类型转换可能造成数据(丢失)溢出;
- 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。
总结
1、什么是强制类型转换?
- 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
2、强制类型转换有哪些需要注意的?
- 可能出现数据丢失。
- 小数强制转换成整数是直接截断小数保留整数。
三、运算符
1、基本算数运算符
运算符
- 运算符:对字面量或者变量进行操作的符号
算数运算符
总结
1、算数运算符有哪些?
- + 、-、 *、 /、 %
2、/ 需要注意什么,为什么?
- 如果两个整数做除法,其结果一定是整数,因为最高类型是整数。
2、+符号做连接符
“+” 做连接符
- “+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。
独门秘籍:
- 能算则算,不能算就在一起。(计算机很聪明)
总结
1、+ 除了做基本数学运算,还有哪些功能?
- 与字符串做+运算时会被当成连接符,其结果还是字符串。
- 能算则算,不能算就在一起。
3、自增自减运算符
自增自减运算符
注意:
- ++ 和 -- 既可以放在变量的后边,也可以放在变量的前边。
- ++ 、-- 只能操作变量,不能操作字面量的。
自增自减的使用注意事项
- ++、--如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别。
- 放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算。
- 放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1
总结
1、自增、自减运算符是什么,有什么作用,需要注意什么?
- ++、--。对当前变量值+1、-1
- 只能操作变量,不能操作字面量
2、自增、自减运算符在变量前后有区别吗?
- 如果单独使用放前后是没有区别的。
- 非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
- 非单独使用:在变量后 ,先使用变量,再进行变量自增/自减。
案例
自增、自减拓展案例(有些面试题的笔试题可能会出现)
答案为:26 11 5
4、赋值运算符
基本赋值运算符
- 就是“=”。
扩展赋值运算符
注意:扩展的赋值运算符隐含了强制类型转换。
总结
1、赋值运算符有哪些?
- =、+=、-=、*=、/=、%=
2、作用是什么?
- 基本作用是赋值,扩展运算符还自带了强制类型转换。
- +=还可以实现数据的累加,把别人的数据加给自己。
5、关系运算符
- 是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。
注意:在做相等判断是,千万不要把 == 误写成 = 。
6、逻辑运算符
逻辑运算符概述
- 可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。
短路逻辑运算符
注意:逻辑与 “&” 、逻辑或“|”: 无论左边是 false还是 true,右边都要执行。
总结
- 逻辑与“&” :有一个为false、结果是false
- 短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了
- 逻辑或“|”:有一个为true、结果是true
- 短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了
- 逻辑非“!”:!false=true、 !true=false
- 逻辑异或“^” :相同是false、不同是true。
- 注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !
7、三元运算符
三元运算符介绍
- 格式:
- 执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
案例
求三个整数的最大值
需求:定义三个整数,找出最大值并打印在控制台。
分析
1.用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
- num1 > num2 ? num1 : num2;
2.用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。
- temp > num3 ? temp : num3;
3.输出结果
8、运算符优先级
运算符优先级
- 在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于”+、-”。
四、案例技术:获取用户键盘输入的数据
案例知识:在程序中接受用户通过键盘输入的数据
需求:
- 请在程序中,提示用户通过键盘输入自己的姓名、年龄,并能在程序中收到这些数据,怎么解决?
API(Application Programming Interface:应用程序编程接口)
- Java写好的程序,咱们程序员可以直接拿来调用。
- Java为自己写好的程序提供了相应的程序使用说明书(API文档)。
使用Scanner接受用户键盘输入的数据,需要三个步骤:
总结
1、API是什么?API文档是什么?
- Application Programming Interface,应用程序编程接口:Java写好的程序,咱们可以直接调用。
- Java提供的程序使用说明书。
2、Java程序中如何实现接受用户键盘输入的数据?
- 使用Java提供的Scanner来完成,步骤如下:
- 1.导包:import java.util.Scanner;
- 2.抄代码得到扫描器对象:Scanner sc = new Scanner(System.in)
- 3.抄代码等待接受用户输入的数据:int age = sc.nextInt() ; String name = sc.next()