〔002〕Java 基础之语法、数据类型、进制转换、运算符
✨ 目录
- ▷ 语法之注释
- ▷ 语法之字面量
- ▷ 语法之变量
- ▷ 语法之变量注意事项
- ▷ 语法之关键字和标识符
- ▷ 数据存储的原理
- ▷ 特殊数据存储的原理
- ▷ 进制之间的转换
- ▷ 程序中不同进制的写法
- ▷ 基本数据类型
- ▷ 强制类型转换
- ▷ 算术运算符
- ▷ 自增自减
- ▷ 赋值运算符
- ▷ 关系运算符
- ▷ 逻辑运算符
- ▷ 三元运算符
- ▷ 下载官方API文档
- ▷ 使���内置 Scanner 扫描包接收用户输入信息
▷ 语法之注释
- 注释: 是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的
- 注释分为 单行注释 和 多行注释,注释的内容并不会被编译,所以 不会影响 代码的运行
- 单行注释通过 // 进行标注,只能注释一行
- 多行注释通过 /* 注释内容 */ 进行标注,可以注释多行
package tiny.geeker; /** * 文档注释:学习注释的语法 */ public class Test { public static void main(String[] args) { // 单行注释:输出Hello World System.out.println("Hello World"); /* Author: tinygeeker Date: 2023/11/10 Desc: 多行注释:计算 1+2 的值 */ System.out.println(1 + 2); } }
▷ 语法之字面量
- 计算机是用来处理数据的,字面量就是告诉程序员,数据在程序中的书写格式
- 分别有 整数、小数、字符、字符串、布尔值、空值
- 其中 整数 和 小数 与数学中写法一致
- 字符 需要用 单引号 包裹,必须有且仅能有一个字符
- 字符串 需要用 双引号 包裹,内容可有可无
- 布尔值 也就是真(true) 或 假(false),只有两个值
- 空值 是一个特殊的值,为 null,后面再讲
package tiny.geeker; public class Test { public static void main(String[] args) { // 整数 System.out.println(520); // 小数 System.out.println(13.14); // 字符 System.out.println('爱'); // 字符串 System.out.println("飞兔小哥"); // 布尔值 System.out.println(true); System.out.println(false); } }
▷ 语法之变量
- 变量 是用来记住程序要处理的数据的
- 变量的定义格式:数据类型 变量名称 = 数据,例如 int age = 20
- 其中 数据类型 是用来限制数据的形式,比如:int(整数类型)、double(小数类型)
- 变量名称 建议首字母小写
- 数据 是用来给变量赋值用的
package tiny.geeker; public class Test { public static void main(String[] args) { // 定义一个年龄的整数变量 int age = 20; System.out.println(age); // 定义一个分数的小数变量 double score = 59.5; System.out.println(score); } }
▷ 语法之变量注意事项
- 第一: 变量要先声明才能使用
- 第二: 变量是什么类型,就应该用什么类型的数据,否则会报错
- 第三: 变量是从定义开始到 } 截止的范围内有效,且同一个范围内,多个变量名不能重复
- 第四: 变量定义的时候可以不赋值,但是在使用的时候必须有值,否则报错
▷ 语法之关键字和标识符
- 定义变量的时候,例如 int age = 20;其中 age 不能使用一些关键字,也就是 Java 语言自己用过的词,因为有特殊作用
- 因此 关键字 是 Java 用了的,不能用来做 类名 和 变量名,否则会报错
- 常见的关键词有很多,比如 public、abstract、catch、case、int、double、break、byte 等等,虽然关键字很多,但是不用刻意去记住,因为编辑器中会报错的,如果报错要考虑到使用了这些关键词就行
- 标识符就是写程序起的一些名字,比如变量名,需要注意的是,变量名 不能以数字开头,也不能用关键字,且 区分大小写
▷ 数据存储的原理
- 计算机中的数据是以 二进制 进行存储的,不管是字符、图片还是音频,都是以二进制进行存储的
- 而存储的最小单元称为 字节(byte),一个字节是使用8个二进制位组成的,也就是 1B = 8b
- 十进制是逢十进一,因此二进制是逢二进一,因此 十进制的中的2 = 二进制中的10
- 比如在计算器选择程序员专用,输入 2,将类型调整为 byte,可以看到总共占据了 8个二进制位,值为 0000 0010
- 虽然上面说 十进制的中的2 = 二进制中的10,但是一个字节占 8 个位,所以不足的会默认补上 0,因为最终值为 0000 0010
▷ 特殊数据存储的原理
- 其实字符、图片、音频都是存储的二进制数据
- 其中字符存储的是 ASCII 码表的数值
- 图片存储的是三原色的值,因为三原色可以用 0-255 的数值进行标识
- 音频可以存储波形图,也就数值而已
- 例:计算 'a' + 1 = 98,那是因为 a 在 ASCII 码表中的值为 97,就可以很好理解了
▷ 进制之间的转换
- 虽然知道了存储数据用的是二进制,但是二进制非常不便于观察,因此平时用的都是十进制
- 当然程序中,还发明了 八进制 和 十六进制 来更好的观察和表示二进制
- 八进制: 是每3位二进制作为一个单元,00、000、000,其中最小值为0,最大值为8,总共8个数字,成为 八进制
- 十六进制: 是每4位二进制作为一个单元,0000、0000,其中最小值为0,最大值为15,依次用 0-9、A、B、C、D、E、F 来标识这16个数,称为 十六进制
- 当然这些进制之间都是可以进行相互转换的
- 十进制转二进制: 使用的是 除二取余法
▷ 程序中不同进制的写法
- 二进制需要用 0B 或者 0b 打头
- 八进制需要用 0 打头
- 十六进制需要用 0X 打头
▷ 基本数据类型
- 基本数据类型分为 4大类八种
- 每种类型对应的数据范围是不同的,其中类型范围小的,可以直接赋值给类型范围大的
▷ 强制类型转换
- 正常来说,将一个大类型的值赋值给小类型会报错,但是可以通过强制类型转换解决
▷ 算术运算符
- 算术运算符包括 +(加)、-(减)、*(乘)、/(除)、%(取余数)
- 需要注意的是:两个整数相除的结果还是整数、加号也可以用来链接数字和字符串
▷ 自增自减
- 可以通过 ++a 或者 a++ 实现变量自增 1
- 可以通过 --a 或者 a-- 实现变量自减 1
- 符号如果在前,是先运算再赋值,如果符号在后,是先赋值再运算
▷ 赋值运算符
- 赋值运算符包括 +=(加等)、-=(减等)、*=(乘等)、/=(除等)、%=(余等)
- 比如 b += a 就等于 b = b + a,其他的以此类推
▷ 关系运算符
- 关系运算符包括 >(大于)、>=(大于等于)、2 多个条件必须都是 true,结果才是 true;有一个是 false,结果就是 false
- |(逻辑或): 多个条件中只要有一个为 true,结果就是 true
- !(逻辑非): 取反,你真我假,你假我真。!true == false、!false == true
- ^(逻辑异或): 比如 2>1 ^ 3>1 前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回 true
▷ 三元运算符
- 三元运算符的格式:条件表达式 ? 值1 : 值2
- 先执行条件表达式,如果条件成立,则返回值1,否则返回值2
▷ 下载官方API文档
- 由于 java 中内置了很多的 API,可以直接拿来用,所以需要参考一下官方的 API 文档
- 文档的下载地址,一般在下载 JDK 文件的下方,当然也可以直接在搜索引擎中检索 JDK API 即可
▷ 使用内置 Scanner 扫描包接收用户输入信息
- 要使用内置 API,需要先通过 import 导入所需要的包
- 然后通过 new 实例化后,即可使用该包中的功能了
package tiny.geeker; import java.util.Scanner; public class Test { public static void main(String[] args) { // 实例化 Scanner sc = new Scanner(System.in); // 接受用户输入指令 System.out.println("请输入你的名字:"); String name = sc.next(); System.out.println("名字是:" + name); System.out.println("请输入你的年龄:"); int age = sc.nextInt(); System.out.println("年龄是:" + age); } }
- 正常来说,将一个大类型的值赋值给小类型会报错,但是可以通过强制类型转换解决
The End