• 第二章 Java基础语法


    第二章 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。
    注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

  • 相关阅读:
    LQ0209 颠倒的价牌【枚举+进制】
    适合上班族使用的电脑笔记软件使用哪一款
    云主机修复监控插件异常的方法
    【Flink网络通讯(一)】Flink RPC框架的整体设计
    React key究竟有什么作用?深入源码不背概念,五个问题刷新你对于key的认知
    涨1100w播放,150w粉!B站UP主仅入站百天竟成功出圈!
    前端研习录(12)——动画效果讲解及示例说明
    百趣代谢组学资讯: 帕金森和肠道菌群有关系?
    【Codeforces Round #835 (Div. 4)】A——G题解
    全光谱台灯对孩子有伤害吗?儿童用台灯的好处和坏处是什么
  • 原文地址:https://blog.csdn.net/Candy5204/article/details/127103405