diff --git a/notes/Java 基础.md b/notes/Java 基础.md index d9567490..33938e9a 100644 --- a/notes/Java 基础.md +++ b/notes/Java 基础.md @@ -181,7 +181,7 @@ protected 用于修饰成员,表示在继承体系中成员对于子类可见 ## 2. 抽象类与接口 -抽象类至少包含一个抽象方法,该抽象方法必须在子类中实现。由于抽象类没有抽象方法的具体实现,因此不能对抽象类进行实例化。 +抽象类和抽象方法都使用 abstract 进行声明。抽象类一般会包含抽象方法,但是少数情况下可以不包含,例如 HttpServlet 类,但是抽象方法一定位于抽象类中。抽象类和普通类最大的区别是,抽象类不能被实例化,需要继承抽象类才能实例化其子类。 ```java public abstract class GenericServlet implements Servlet, ServletConfig, Serializable { diff --git a/notes/Linux.md b/notes/Linux.md index 2e10afb6..0ac97d4d 100644 --- a/notes/Linux.md +++ b/notes/Linux.md @@ -578,7 +578,11 @@ inode 具体包含以下信息: ### 1. 实体链接 -hard link 只是在某个目录下新增一个条目,使得新增的条目链接到文件的 inode 上。 +实体链接文件指向源文件的 inode 上。 + +下图中,1 和 2 表示的是目录的 inode,这两个目录的 block 中都有一个指向 real 的链接文件。 + +

删除任意一个条目,文件还是存在,只要引用数量不为 0。 @@ -593,7 +597,13 @@ hard link 只是在某个目录下新增一个条目,使得新增的条目链 ### 2. 符号链接 -symbolic link 可以理解为 Windows 的快捷方式。通过建立一个独立的文件,这个文件的数据的读取指向链接的那个文件。也就是说,符号链接需要新建一个 inode,并且 +符号链接指向源文件所在的目录的 inode 上,从而通过目录获取源文件 inode。 + +下图中,源文件位于目录 2,在目录 1 中建立符号链接文件,该符号链接会指向目录 2 的 inode。 + +

+ +symbolic link 可以理解为 Windows 的快捷方式。 当源文件被删除了,链接文件就打不开了。 diff --git a/pics/054d8d16-a3f9-460d-a365-834ba9940e3b.jpg b/pics/054d8d16-a3f9-460d-a365-834ba9940e3b.jpg new file mode 100644 index 00000000..2a14a2eb Binary files /dev/null and b/pics/054d8d16-a3f9-460d-a365-834ba9940e3b.jpg differ diff --git a/pics/5ce4bdad-5ba1-4f60-81c3-874659412a5c.jpg b/pics/5ce4bdad-5ba1-4f60-81c3-874659412a5c.jpg new file mode 100644 index 00000000..9d167cdf Binary files /dev/null and b/pics/5ce4bdad-5ba1-4f60-81c3-874659412a5c.jpg differ