File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44
55| 🏖 | 🌁| 📮 | 🌈 | 🚀 | ⚔️ | 🖥 | 🚏 |
66| :--------: | :---------: | :---------: | :---------: | :---------: | :---------:| :---------: | :-------: |
7- | [ Java] ( #Java ) | [ 数据库] ( #数据库 ) | [ 计算机网络] ( #计算机网络 ) | [ 数据结构与算法] ( #数据结构与算法 ) | [ 操作系统] ( #操作系统 ) | [ 设计模式] ( #设计模式 ) | [ 场景题和设计题] ( #场景题和设计题 ) | [ 框架和中间件底层原理] ( #框架和中间件底层原理 ) |
7+ | [ Java] ( #Java ) | [ 数据库] ( #数据库 ) |[ 网络] ( #网络 ) | [ 算法] ( #算法 ) |[ 操作系统] ( #操作系统 ) |[ 设计模式] ( #设计模式 ) | [ 系统设计] ( #系统设计 )
8+ | [ 框架原理] ( #框架原理 ) |
89
910
1011### Java
2627
2728- [ MySQL数据库开发规范] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/database/DataBaseDesign.md )
2829
29- ### 计算机网络
30+ ### 网络
3031- [ 计算机网络] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/network/Computer-Network.md )
3132
32- ### 数据结构与算法
33+ ### 算法
3334- [ 数据结构与算法] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/algorithms/DataStructures-Algorithms.md )
3435
3536- [ LeetCode解题总结] ( https://github.com/zaiyunduan123/leetcode-java )
3637
3738### 操作系统
3839- [ 操作系统] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/os/Operating-System.md )
3940
41+ - [ Linux] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/os/Linux.md )
42+
4043### 设计模式
4144- [ 设计模式] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/design/Design-Patterns.md )
4245
43- ### 场景题和设计题
44- - [ 场景题和设计题 ] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/scene/Scene-Design.md )
46+ ### 系统设计
47+ - [ 系统设计 ] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/scene/Scene-Design.md )
4548
46- ### 框架和中间件底层原理
49+ ### 框架原理
4750- [ SSM实现原理] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/framework/Framework.md )
4851
4952- [ Solr实现原理] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/notes/framework/Solr.md )
Original file line number Diff line number Diff line change @@ -24,9 +24,8 @@ v[i]表示物品i的价值,w[i]表示物品i的重量,W 为背包的重量
2424``` java
2525 dp[i][W ] = max{dp[i − 1 ][W ], dp[i − 1 ][W − w[i]] + v[i]}
2626```
27-
2827
29- 优化空间复杂度
28+ #### 优化空间复杂度
3029
3130以上方法的时间和空间复杂度均为O(n* W),其中时间复杂度基本已经不能再优化了,但空间复杂度却可以优化到O(W):
3231
Original file line number Diff line number Diff line change 1+ ## Linux 系统的顶层目录结构
2+ / 根目录
3+ ├── bin 存放用户二进制文件
4+ ├── boot 存放内核引导配置文件
5+ ├── dev 存放设备文件
6+ ├── etc 存放系统配置文件
7+ ├── home 用户主目录
8+ ├── lib 动态共享库
9+ ├── lost+found 文件系统恢复时的恢复文件
10+ ├── media 可卸载存储介质挂载点
11+ ├── mnt 文件系统临时挂载点
12+ ├── opt 附加的应用程序包
13+ ├── proc 系统内存的映射目录,提供内核与进程信息
14+ ├── root root 用户主目录
15+ ├── sbin 存放系统二进制文件
16+ ├── srv 存放服务相关数据
17+ ├── sys sys 虚拟文件系统挂载点
18+ ├── tmp 存放临时文件
19+ ├── usr 存放用户应用程序
20+ └── var 存放邮件、系统日志等变化文件
21+ Linux 与其他类 UNIX 系统一样并不区分文件与目录:目录是记录了其他文件名的文件。使用命 令 mkdir 创建目录时,若期望创建的目录的名称与现有的文件名(或目录名)重复,则会创建失败。
22+
23+
24+ ## linux内核map图
25+
26+ http://makelinux.net/kernel_map/
27+ ![ ] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/image/os-2.png )
28+
29+ ## Linux中软链接和硬链接的区别
30+ 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。
31+ - 用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;
32+ - 元数据,则是文件的附加属性,如文件大小、创建时间、所有者等信息;
33+
34+ 在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是 \文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块
35+
36+ 为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。若一个 inode 号对应多个文件名,则称这些文件为 硬链接。换言之,硬链接就是同一个文件使用了多个别名。
37+
38+
39+ 由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
40+ - 文件有相同的 inode 及 data block;
41+ - 只能对已存在的文件进行创建;
42+ - 不能交叉文件系统进行硬链接的创建;
43+ - 不能对目录进行创建,只可对文件创建;
44+ - 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
45+
46+ ln -s source dist # 建立软连接
47+ ln source dist # 建立硬连接
48+
49+ - 硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接
50+ - 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。(简单地理解为 Windows 中常见的快捷方式)
51+
52+
53+
54+ ### kill进程杀不掉的原因
55+ 1 . 进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;
56+ 2 . 进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了
57+
58+
Original file line number Diff line number Diff line change 31318 . 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
3232
3333
34- ## Linux中软链接和硬链接的区别
35- ln -s source dist # 建立软连接
36- ln source dist # 建立硬连接
37- 建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接
38- 1 . 硬连接就像一个文件有多个文件名,
39- 2 . 软连接就是产生一个新文件(这个文件内容,实际上就是记当要链接原文件路径的信息),这个文件指向另一个文件的位置
4034
4135
4236## 内核态与用户态
@@ -57,7 +51,3 @@ ln source dist # 建立硬连接
57514 . 这些指令称之为陷阱(trap)或者系统调用处理器(system call handler). 他们会读取程序放入内存的数据参数, 并执行程序请求的服务
58525 . 系统调用完成后, 操作系统会重置CPU为用户态并返回系统调用的结果
5953
60- ## linux内核map图
61-
62- http://makelinux.net/kernel_map/
63- ![ ] ( https://github.com/zaiyunduan123/Java-Interview/blob/master/image/os-2.png )
You can’t perform that action at this time.
0 commit comments