JAVA SE基础《三》---- JAVA语法

发布时间 2023-07-08 08:33:35作者: 小王子C

目录

一、变量详解

  • 变量里的数据在计算机中的存储原理
  • 字符、图片、声音的存储说明
  • 数据转换
  • 数据类型

二、类型转换

  • 自动类型转换
  • 表达式的自动类型转换
  • 强制类型转换

三、运算符

  • 基本算数运算符
  • +符号做连接符
  • 自增自减运算符
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符
  • 三元运算符
  • 运算符优先级

四、案例技术:获取用户键盘输入的数据

 

一、变量详解

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、数据类型

数据类型的分类

  1. 基本数据类型:4大类8种
  2. 引用数据类型

基本数据类型:4大类8种

 总结

1.数据类型分为几种?

  • 引用数据类型:String
  • 基本数据类型:4大类8种。
  1. byte short int(默认) long 整型
  2. float double(默认) 浮点型
  3. char 字符型
  4. 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()