第二章 Java基础语法

本文详细讲解了Java基础语法,包括类型转换的实践、运算符的应用,如算数、逻辑运算,以及数据在计算机底层的存储原理,如二进制转换、数据单位和字符编码。还涉及了变量、数据类型、运算符优先级等内容,适合初学者理解Java基础核心概念。
摘要由CSDN通过智能技术生成

第二章 Java基础语法

1. 关于Java语言基础知识同学们需要学会什么?

1.1 类型转换知识

如何实现程序中不同类型的变量或者数据互相传输,

不同类型的数据运算的结果数据的类型如何确定?

1.2 运算符的使用

程序中怎么进行数据的基本算术运算、以及一些逻辑运算、Java提供了具体哪些运算方式。

1.3 怎么调用Java提供的程序

程序员需要调用Java写好的一些程序,这些程序如何去调用。

2. 变量里的数据在计算机中的底层原理

2.1 二进制

只有0、1,按照逢2进1的方式表示数据

在这里插入图片描述

2.2 十进制转二进制的算法

除二取余法。

在这里插入图片描述

2.3 计算机中的数据的最小单位

在这里插入图片描述

计算机中数据最小的组成单元:使用8个二进制位为一组,称之为一个字节(byte,简称B)
字节中的每个二进制位就称为 位(bit,简称b), 1B = 8b

2.4 其他数据形式是如何存储的

在这里插入图片描述

2.5 字符在计算机中是如何存储

ASCII编码表:即美国信息交换标准编码,规定了现代英语、数字字符、和其他西欧字符对应的数字编号。

在这里插入图片描述

在这里插入图片描述

2.6 图片数据-彩色图

图片就是无数个像素点组成的
每个像素点的数据:用0 ~ 255255255表示其颜色
在这里插入图片描述

2.7 声音数据

在这里插入图片描述

2.8 十进制转二进制的算法

十进制数转二进制数:除二取余法

在这里插入图片描述

二进制数转十进制数

在这里插入图片描述

2.9 八进制、十六进制介绍

为了便于观察和表示二进制,推出了八进制和十六进制。

每3位二进制作为一个单元,最小数是0,最大数是7,共8个数字,这就是八进制。

在这里插入图片描述

每4位二进制作为一个单元,最小数是0,最大数是15,共16个数字,依次用: 0~9 A B C D E F 代表就是十六进制
在这里插入图片描述

注意:Java程序中支持书写二进制、八进制、十六进制的数据,分别需要以0B或者0b、0、0X或者0x开头。

2.10 计算机的数据单位

计算机最小的组成单元是:字节,1B = 8b。
在B的基础上,计算机发展出了KB、MB、GB、TB、…. 这些数据单位。

在这里插入图片描述

2.11 总结

1、数据在计算机底层都是怎么存储的?
都是采用二进制:使用0、1,按照逢2进1的规则表示数据来存储。

2、如何快速的算出一个数据的二进制形式?
除二取余法

在这里插入图片描述

3、数据在计算机底层存储的最小单位是什么?
字节,一个字节等于8个二进制位:1B=8b

4、字符数据在计算机中是怎么存的?
字符存的是ascii码表中对应的数字的二进制形式。
字符’A’对应的数字是 65
字符’a’对应的数字是 97
字符’0’对应的数字是 48

5、图片和音视频等文件的数据是怎么存储的啊?
也是采用二进制进行存储的

6、二进制如何计算成十进制?

在这里插入图片描述

7、二进制如何计算成八进制?

每3位二进制作为一个单元,最小数是0,最大数是7,0-7有8个数字。

在这里插入图片描述

8、二进制如何计算成十六进制?

每4位二进制作为一个单元,最小数是0,最大数是15
0-15有16个数字,依次用: 0~9 A B C D E F 代表
在这里插入图片描述

9、数据大小单位是怎样换算的?

在这里插入图片描述

3.数据类型

3.1 数据类型的作用

数据类型就是约束变量存储数据的形式。

数据类型 变量名称 = 初始值;

在这里插入图片描述

3.2 数据类型的分类

引用数据类型(除基本数据类型之外的,如String ,其他的后面学习)

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

在这里插入图片描述

3.3 自动类型转换

什么是自动类型转换,为什么要学习自动类型转换?

类型范围小的变量,可以直接赋值给类型范围大的变量。

3.4 自动类型转换的底层原理

在这里插入图片描述

3.5 自动类型转换的其他形式

在这里插入图片描述

3.6 表达式的自动类型转换

表达式的自动类型转换

在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。

在这里插入图片描述

注意事项:
表达式的最终结果类型由表达式中的最高类型决定。
在表达式中,byte、short、char 是直接转换成int类型参与运算的。

3.7 强制类型转换

场景

在这里插入图片描述

问题

类型范围大的数据或者变量,不能直接赋值给类型范围小的变量,会报错。

强制类型转换

可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
在这里插入图片描述

3.8 强制类型转换底层原理

在这里插入图片描述

注意事项
强制类型转换可能造成数据(丢失)溢出;
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。

3.9 总结

1、数据类型分为几种?
引用数据类型:String
基本数据类型:4大类8种。
byte short int(默认) long 整型
float double(默认) 浮点型
char 字符型
boolean 布尔型

2、随便写的整数、小数字面值默认什么类型?
23 ,默认是int类型 , 加上L/l就是long类型的数据了。
23.8,默认是double类型,加上F/f就是float类型了。

3、为什么要进行类型转换?
存在不同类型的变量赋值给其他类型的变量

4、自动类型转换是什么样的?
类型范围小的变量,可以直接赋值给类型范围大的变量。

5、表达式的自动类型转换是什么样的?
小范围的类型会自动转换成大范围的类型运算。

6、表达式的最终结果类型是由谁决定的?
最终类型由表达式中的最高类型决定。

7、表达式的有哪些类型转换是需要注意的?
byte short char是直接转换成int类型参与运算的。

8、什么是强制类型转换?
可以强行将类型范围大的变量、数据赋值给类型范围小的变量。

9、强制类型转换有哪些需要注意的?
可能出现数据丢失。
小数强制转换成整数是直接截断小数保留整数。

4. 运算符

运算符:对字面量或者变量进行操作的符号。

4.1 基本算数运算符

算数运算符

在这里插入图片描述

4.2 案例数值拆分

需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台
分析:
①:使用 Scanner 键盘录入一个三位数
②:个位的计算:数值 % 10

在这里插入图片描述

4.2 +符号做连接符

“+” 做连接符

+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 自增自减运算符

自增自减运算符

在这里插入图片描述

注意:
++ 和 – 既可以放在变量的后边,也可以放在变量的前边。
++ 、-- 只能操作变量,不能操作字面量的。

4.4 自增自减的使用注意事项

++、–如果不是单独使用(如在表达式中、或者同时有其它操作),放在变量前后会存在明显区别
放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算。

int a = 10;
int rs = ++a;    

在这里插入图片描述

放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1

int b = 10;
int rs = b++;    

在这里插入图片描述

4.5 自增、自减拓展案例

在这里插入图片描述

4.6 赋值运算符

基本赋值运算符就是“=”。

int a = 10; // 先看“=”右边,把数据10赋值给左边的变量a存储。

4.7 扩展赋值运算符

在这里插入图片描述

注意:扩展的赋值运算符隐含了强制类型转换。

4.8 关系运算符

关系运算符

是对数据进行条件判断的符号,最终会返回一个比较的布尔结果(false,true)。

在这里插入图片描述

注意:在做相等判断是,千万不要把 == 误写成 =

4.9 逻辑运算符

逻辑运算符概述

可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。

在这里插入图片描述

在这里插入图片描述

4.10 短路逻辑运算符

短路逻辑运算符

在这里插入图片描述

注意:逻辑与 “&” 、逻辑或“|”: 无论左边是 false还是 true,右边都要执行。

4.11 三元运算符

三元运算符介绍

格式:条件表达式 ? 值1 : 值2;

在这里插入图片描述

执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。

在这里插入图片描述

4.12 求三个整数的最大值

需求:定义三个整数,找出最大值并打印在控制台。

分析:

用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
num1 > num2 ? num1 : num2;
用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果。
temp > num3 ? temp : num3;
输出结果

4.13 运算符优先级

运算符优先级

在表达式中,哪个运算符先执行后执行是要看优先级的,例如 “*、/” 的优先级高于”+、-”。

在这里插入图片描述

运算符优先级

在这里插入图片描述

4.14 总结

1、算数运算符有哪些?

、-、 *、 /、 %

2、需要注意什么,为什么?
如果两个整数做除法,其结果一定是整数,因为最高类型是整数。

3、除了做基本数学运算,还有哪些功能?
与字符串做+运算时会被当成连接符,其结果还是字符串。
能算则算,不能算就在一起。

4、自增、自减运算符是什么,有什么作用,需要注意什么?
++、–。对当前变量值+1、-1
只能操作变量,不能操作字面量

5、自增、自减运算符在变量前后有区别吗?
如果单独使用放前后是没有区别的。
非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
非单独使用:在变量后 ,先使用变量,再进行变量自增/自减

6、赋值运算符有哪些?
=、+=、-=、*=、/=、%=

7、赋值运算符作用是什么?
基本作用是赋值,扩展运算符还自带了强制类型转换。
+=还可以实现数据的累加,把别人的数据加给自己。

8、逻辑运算符有哪些,有什么特点?
逻辑与“&” :有一个为false、结果是false
短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了
逻辑或“|”:有一个为true、结果是true
短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了
逻辑非“!”:!false=true、 !true=false
逻辑异或“^” :相同是false、不同是true。
注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

-。对当前变量值+1、-1
只能操作变量,不能操作字面量

5、自增、自减运算符在变量前后有区别吗?
如果单独使用放前后是没有区别的。
非单独使用:在变量前 ,先进行变量自增/自减,再使用变量。
非单独使用:在变量后 ,先使用变量,再进行变量自增/自减

6、赋值运算符有哪些?
=、+=、-=、*=、/=、%=

7、赋值运算符作用是什么?
基本作用是赋值,扩展运算符还自带了强制类型转换。
+=还可以实现数据的累加,把别人的数据加给自己。

8、逻辑运算符有哪些,有什么特点?
逻辑与“&” :有一个为false、结果是false
短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了
逻辑或“|”:有一个为true、结果是true
短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了
逻辑非“!”:!false=true、 !true=false
逻辑异或“^” :相同是false、不同是true。
注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵银吉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值