学习编程知识
编程中的关键字是指什么意思?
定义:被编程语言赋予了特殊含义,用做专门用途的字符串(或单词)。
比如 Java 的关键字有 class、public、static、void 等,JavaScript 有 const、let 等。
关键字的特点:都是小写。其中 Java 关键字可以在这个地址里查看。
关于 Java 的关键字
Java 的关键字一共 50 个,其中 const 和 goto 是保留字(reserved word)。
true,false,null 不属于关键字,它们看起来像关键字,其实是字面量,表示特殊的布尔值和空值。
编程中的标识符(identifier)
编程中变量、方法、类等要素命名时使用的字符序列,称为标识符。
比较容易理解的说法:凡是自己可以起名字的地方都叫标识符。
标识符的命名规则(必须遵守的硬性规定):
- 由 26 个英文字母大小写,0-9,_或 $ 组成
- 不可以以数字开头
- 不可以使用关键字和保留字,但能包含关键字和保留字
- 严格区分大小写,长度无限制
- 标识符不能包含空格
Java 中的变量
- 表示内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化
- 变量的构成包含三个要素:数据类型、变量名、存储的值
- 变量声明的格式:
数据类型 变量名 = 变量值 - 变量的作用:用于在内存中保存数据。
使用 Java 变量需要注意:
- Java 中每个变量必须先声明,后使用。
- 变量的作用域定义在的一对花括号
{ }内。 - 变量只有在其作用域内才有效。出了作用域,变量不可以再被调用。
- 同一个作用域内,不能定义重名的变量。
Java 中变量的数据类型
Java 中变量的数据类型分为两大类:
- 基本数据类型:包括整数类型、浮点数类型、字符类型、布尔类型(共有 8 种)。
- 引用数据类型:包括数组、类、接口、枚举、注解、记录、字符串。

Java 中变量的使用
步骤 1:变量的声明
格式:数据类型 变量名;例如:
// 存储一个整数类型的年龄
int age;
// 存储一个小数类型的体重
double weight;
// 存储一个单字符类型的性别
char gender;
// 存储一个布尔类型的婚姻状态
boolean marry;
// 存储一个字符串类型的姓名
String name;
// 声明多个同类型的变量
int a,b,c; // 表示 a,b,c 三个变量都是 int 类型。注意:变量的数据类型可以是基本数据类型,也可以是引用数据类型。
步骤 2:变量的赋值
给变量赋值,就是把“值”存到该变量代表的内存空间中。同时,给变量赋的值类型必须与变量声明的类型一致或兼容。
变量赋值的语法格式:
变量名 = 值;举例 1:可以使用合适类型的常量值给已经声明的变量赋值
age = 18;
weight = 109;
gender = '女';举例 2:可以使用其他变量或者表达式给变量赋值
int m = 1;
int n = m;
int x = 1;
int y = 2;
int z = 2 * x + y;变量可以反复赋值
// 先声明,后初始化
char gender;
gender = '女';
// 给变量重新赋值,修改 gender 变量的值
gender = '男';
System.out.println("gender = " + gender);//gender = 男也可以将变量的声明和赋值一并执行
boolean isBeauty = true;
String name = "迪丽热巴";计算机的存储单位
- 字节(Byte):计算机用于计量存储容量的基本单位,一个字节等于 8 bit。
- 位(bit):是数据存储的最小单位。二进制数系统中,每个 0 或 1 就是一个位,叫做 bit(比特),其中 8 bit 就称为一个字节(Byte)。
Java 的基本数据类型介绍
整数类型:byte、short、int、long
Java 各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,以保证 Java 程序的可移植性。
- 定义 long 类型的变量,赋值时需要以字母 "l "或 "L" 作为后缀,定义其它类型的变量不作类似要求。
- Java 程序中变量通常声明为 int 型,除非不足以表示较大的数,才使用 long。
- Java 的整型常量(整型字面量)默认为 int 型。(换句话说,字面量也是有类型的)
整数类型的占用存储空间与表数范围:
存储空间的每个 bit 位并不都是用来表示整数数据的大小。第一位表示整数的正负,其余位才用来表示整数的大小。
| 类型 | 占用存储空间 | 表数范围 | 解释 |
|---|---|---|---|
| byte | 1 字节=8bit 位 | -128 ~ 127 | 如果 8 位全部用来表示数据大小,那么最大能表示的数是 但实际能用来表数的位数只有 7 位,所以最大能表示的数是 但其中零有两种表示方法,+0 和 -0,于是规定 -0 表示的数是 所以最终 1 字节能表示的数子范围就是 |
| short | 2 字节 | ||
| int | 4 字节 | ||
| long | 8 字节 |
记忆区分 byte、bit
看单词长度,因为 byte 比 bit 多一个字母,所以 byte 的存储空间比 bit 大。
字节跳动公司的英文名叫 ByteDance,byte 是字节的意思,而 bit 是比特的意思,bit 是计算机最小的存储单元。
计算机底层如何存储数据
计算机世界中只有二进制,所以计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。
世界上有 10 种人,认识和不认识二进制的。
进制的分类
十进制(decimal)
- 数字组成:0-9
- 进位规则:满十进一
二进制(binary)
- 数字组成:0-1
- 进位规则:满二进一,以
0b或0B开头
八进制(octal):很少使用
- 数字组成:0-7
- 进位规则:满八进一,以数字
0开头表示
十六进制
- 数字组成:0-9,a-f
- 进位规则:满十六进一,以
0x或0X开头表示。此处的 a-f 不区分大小写
代码演示:
class BinaryTest {
public static void main(String[] args) {
int num1 = 123; //十进制
int num2 = 0b101; //二进制
int num3 = 0127; //八进制
int num4 = 0x12aF; //十六进制
System.out.println(num1);
System.out.println(num2);
System.out.println(num3);
System.out.println(num4);
}
}进制的换算举例
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | a 或 A |
| 11 | 1011 | 13 | b 或 B |
| 12 | 1100 | 14 | c 或 C |
| 13 | 1101 | 15 | d 或 D |
| 14 | 1110 | 16 | e 或 E |
| 15 | 1111 | 17 | f 或 F |
| 16 | 10000 | 20 | 10 |
二进制的由来
二进制,是计算技术中广泛采用的一种数制,由德国数理哲学大师莱布尼茨于 1679 年发明。
二进制数据是用 0 和 1 两个数码来表示的数。它的基数为 2,进位规则是“逢二进一”。
二进制广泛应用于我们生活的方方面面。比如,广泛使用的摩尔斯电码(Morse Code),它由两种基本信号组成:短促的点信号“·”,读“滴”;保持一定时间的长信号“—”,读“嗒”。然后,组成了 26 个字母,从而拼写出相应的单词。
二进制转十进制
二进制如何表示整数?
计算机数据的存储使用二进制
补码形式存储,并且最高位是符号位。- 正数:
最高位是 0 - 负数:
最高位是 1
- 正数:
规定
- 正数的补码与反码、原码一样,称为
三码合一 - 负数的补码与反码、原码不一样:
- 负数的
原码:把十进制转为二进制,然后最高位设置为 1 - 负数的
反码:在原码的基础上,最高位不变,其余位取反(0 变 1,1 变 0) - 负数的
补码:反码 +1
- 负数的
- 正数的补码与反码、原码一样,称为
二进制转十进制:权相加法
一个字节可以存储的整数范围是多少?
0000 0000
// 最大
0111 1111 // 2^7-1 === 128-1 === 127//1 个字节:8 位
0000 0001 ~ 0111 111 ==> 1~127
1000 0001 ~ 1111 1111 ==> -127 ~ -1
// 有两种表现形式
0000 0000 ==>0
1000 0000 ==> -128(特殊规定)=-127-1十进制转二进制
十进制转二进制:除 2 取余的逆

二进制与八进制、十六进制间的转换
二进制转八进制

二进制转十六进制

八进制、十六进制转二进制

各进制间的转换

练习:
1.将以下十进制数转换为十六进制和二进制
123 256 87 62
2.将以下十六进制数转换为十进制和二进制
0x123 0x25F 0x38 0x62计算取余数的正负符号问题
结论:结果的符号与被模数符号相同
public class ArithmeticTest1 {
public static void main(String[] args) {
// 结果与被模数符号相同
System.out.println(5 % 2); // 1
System.out.println(5 % -2); // 1
System.out.println(-5 % 2); // -1
System.out.println(-5 % -2);//-1
// 商 * 除数 + 余数 = 被除数
// 5 % -2 ==> 商是 -2,余数时 1 (-2) * (-2) + 1 = 5
// -5 % 2 ==> 商是 -2,余数是 -1 (-2) * 2 + (-1) = -4 - 1 = -5
}
}