Serializable
一个 Git commit 包含以下内容:

参考以下图片:

执行上面这个程序以后,commit_example.txt 文件中就出现了一串无法被直接读取的字符串。

执行上面这个程序,就可以读取这个文件中的内容。
在这里我们用到了 Serializable,需要 implements Serializable
Serializable 表示一个对象可以被转换成字节序列(序列化)并保存到文件中,之后再从文件中恢复成原来的对象(反序列化)。这部分的内容在 Lab 6 中有全面的操作机会。
Git 的原理和使用
Git 使用 SHA-1 来追踪和区分文件,下面是一个具体的流程:

除了 66 文件夹以外,还有一个文件夹里的文件专门存储 commit 记录。
public static void main(String[] args)的真正含义
这里的 args 表示程序运行时接收的命令行参数。例如:
1 | public class HelloWorld { |
在终端中执行:
1 | javac HelloWorld.java |
输出结果为:
1 | one |
可以看到,程序先输出 one,再输出 two。这是因为传入的命令行参数是 one two,因此:
args[0]对应oneargs[1]对应two