0 Preview

本篇还没写完,所以篇幅比较少。再加上这些东西作为一个逆向手是必修的,所以我早就学完了。
实际上关于计算机底层的这些知识,还是CSAPP讲的更好,有需要的可以去看看我写的深入理解计算机那个系列。
image-20210906203349995

http://shangu127.top/2021/07/09/csapp1/

1 标识符

1.1 标识符定义

🔑定义:java中对各种变量,方法和类的命名都叫标识符。
说的直白一点,在java中凡是自己起的名字都叫标识符,都需要遵守标识符规则。
组成:由26个英文字母大小写,数字:0-9 和符号:_ $
🔑定义合法标识符规则:
1,数字不可以开头。
2,不可以使用关键字。
🔑Java中严格区分大小写,定义标识符不限制长度。

1.2 命名规范

Java中的名称规范:

包名:多单词组成时所有字母都小写。
xxx.yyy.zzz www.shangu127.top
类名、接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
变量名和方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ

1.3 注释

Java中的注释格式:

单行注释
格式: //注释文字,从//开始到回车符结束
单行注释可以嵌套
单行注释还可以用来调试程序
多行注释
格式: /* 注释文字 /,从/*开始到*/结束
多行注释不可以嵌套
文档注释
格式:/
* 注释文字 */
是java特有的,可以用javadoc工具生成帮助文档

1.4 基本数据类型

image-20210906202243009

这些东西有的说的不准确,想要详细了解计算机底层的这些知识,可以去看我写的 CSAPP系列

还有关于整型和浮点类型的相关知识,都可以去看看我写的 CSAPP 。那个解释的更详细,更准确。

1.5 类型转换

自动类型提升

1
2
3
4
JAVA
byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。

强制类型转换

1
2
3
4
JAVA
byte b = 3;
b = b + 4;//报错
b = (byte)(b+4);//强制类型转换,强制将(b+4)的结果转换为byte类型,再赋值给b。

1.6 程序演示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
JAVA
public class StoreList {
public static void main(String[] args) {
String str1 = "macB0 Preview
本篇还没写完,所以篇幅比较少。再加上这些东西作为一个逆向手是必修的,所以我早就学完了。
实际上关于计算机底层的这些知识,还是CSAPP讲的更好,有需要的可以去看看我写的深入理解计算机那个系列。
image-20210906203349995

http://shangu127.top/2021/07/09/csapp1/

1 标识符
1.1 标识符定义
🔑定义:java中对各种变量,方法和类的命名都叫标识符。
说的直白一点,在java中凡是自己起的名字都叫标识符,都需要遵守标识符规则。
组成:由26个英文字母大小写,数字:0-9 和符号:_ $
🔑定义合法标识符规则:
1,数字不可以开头。
2,不可以使用关键字。
🔑Java中严格区分大小写,定义标识符不限制长度。

1.2 命名规范
Java中的名称规范:

包名:多单词组成时所有字母都小写。
xxx.yyy.zzz www.shangu127.top
类名、接口名:多单词组成时,所有单词的首字母大写。
XxxYyyZzz
变量名和方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。
xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接。
XXX_YYY_ZZZ

1.3 注释
Java中的注释格式:

单行注释
格式: //注释文字,从//开始到回车符结束
单行注释可以嵌套
单行注释还可以用来调试程序
多行注释
格式: /* 注释文字 /,从/开始到/结束
多行注释不可以嵌套
文档注释
格式:/* 注释文字 */
是java特有的,可以用javadoc工具生成帮助文档

1.4 基本数据类型
image-20210906202243009

这些东西有的说的不准确,想要详细了解计算机底层的这些知识,可以去看我写的 CSAPP系列

还有关于整型和浮点类型的相关知识,都可以去看看我写的 CSAPP 。那个解释的更详细,更准确。

1.5 类型转换
自动类型提升

byte b = 3;
int x = 4;
x = x + b;//b会自动提升为int类型进行运算。
强制类型转换

byte b = 3;
b = b + 4;//报错
b = (byte)(b+4);//强制类型转换,强制将(b+4)的结果转换为byte类型,再赋值给b。
1.6 程序演示
public class StoreList {
public static void main(String[] args) {
String str1 = "macBookair";
String str2 = "ThinkpadT450";
String str3 = "ASUS-FL5800";
float size1 = 13.3f;
float size2 = 14.0f;
float size3 = 15.6f;
double pise1 = 6988.88;
double pise2 = 5999.99;
double pise3 = 4999.5;
String a1 = "i5处理器4G内存128G固态硬盘";
String a2 = "i5处理器4G内存500G固态硬盘";
String a3 = "i7处理器4G内存128G固态硬盘";
int n1 = 5;
int n2 = 10;
int n3 = 18;
int s1 = n1 + n2 + n3;
double s2 = n1*pise1 + n2*pise2 + n3*pise3;
System.out.println ("-------------------------商城库存清单-----------------------------\n"
+ "品牌型号" + "\t \t" + "尺寸" + "\t " + "价格" + "\t \t" + "配置" + " \t \t" + "库存数\n"
+ str1 +"\t" +size1 + "\t" + pise1 + "\t" + a1 + "\t" +n1 + "\n"
+ str2 + "\t" + size2 + "\t" + pise2 + "\t" + a2 + "\t" +n2 + "\n"
+ str3 +"\t" +size3 + "\t" + pise3 + "\t" + a3 + "\t" +n3 + "\n"
+ "-----------------------------------------------------------------\n"
+ "库存总数:"+ s1 + "\n" +
"库存商品总金额:" + s2);
}
}
2 运算符
2.1算术运算符
取模运算符:
🍊如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
🍊当左边的绝对值小于右边:结果是左边
🍊当左边的绝对值等于右边或者是右边倍数的时候:结果是0
🍊当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
🍊取余的正负号取决于左边
🚪用途:任意数%2 结果是要么0,要么1。用于切换条件

2.2 位运算符
运算符 运算 范例
<< 左移 3 << 2 = 12 --> 3*2*2=12
>> 右移 3 >> 1 = 1 --> 3/2=1
>>> 无符号右移 3 >>> 1 = 1 --> 3/2=1
& 与运算 6 & 3 = 2
| 或运算 6 | 3 = 7
^ 异或运算 6 ^ 3 = 5
~ 反码 ~6 = -7
ookair";
String str2 = "ThinkpadT450";
String str3 = "ASUS-FL5800";
float size1 = 13.3f;
float size2 = 14.0f;
float size3 = 15.6f;
double pise1 = 6988.88;
double pise2 = 5999.99;
double pise3 = 4999.5;
String a1 = "i5处理器4G内存128G固态硬盘";
String a2 = "i5处理器4G内存500G固态硬盘";
String a3 = "i7处理器4G内存128G固态硬盘";
int n1 = 5;
int n2 = 10;
int n3 = 18;
int s1 = n1 + n2 + n3;
double s2 = n1*pise1 + n2*pise2 + n3*pise3;
System.out.println ("-------------------------商城库存清单-----------------------------\n"
+ "品牌型号" + "\t \t" + "尺寸" + "\t " + "价格" + "\t \t" + "配置" + " \t \t" + "库存数\n"
+ str1 +"\t" +size1 + "\t" + pise1 + "\t" + a1 + "\t" +n1 + "\n"
+ str2 + "\t" + size2 + "\t" + pise2 + "\t" + a2 + "\t" +n2 + "\n"
+ str3 +"\t" +size3 + "\t" + pise3 + "\t" + a3 + "\t" +n3 + "\n"
+ "-----------------------------------------------------------------\n"
+ "库存总数:"+ s1 + "\n" +
"库存商品总金额:" + s2);
}
}

2 运算符

2.1算术运算符

取模运算符:

🍊如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论。
🍊当左边的绝对值小于右边:结果是左边
🍊当左边的绝对值等于右边或者是右边倍数的时候:结果是0
🍊当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号
🍊取余的正负号取决于左边
🚪用途:任意数%2 结果是要么0,要么1。用于切换条件

2.2 位运算符

运算符 运算 范例
<< 左移 3 << 2 = 12 --> 3*2*2=12
>> 右移 3 >> 1 = 1 --> 3/2=1
>>> 无符号右移 3 >>> 1 = 1 --> 3/2=1
& 与运算 6 & 3 = 2
| 或运算 6 | 3 = 7
^ 异或运算 6 ^ 3 = 5
~ 反码 ~6 = -7