Skip to content

Commit 0749521

Browse files
committed
提高面渣逆袭的权重
1 parent 6550731 commit 0749521

File tree

6 files changed

+93
-45
lines changed

6 files changed

+93
-45
lines changed

docs/src/.vuepress/navbar.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ export default navbar([
2121
icon: "luxian",
2222
link: "/xuexiluxian/"
2323
},
24+
{
25+
text: "面渣逆袭",
26+
icon: "zhunbei",
27+
link: "/sidebar/sanfene/nixi.md"
28+
},
2429
{
2530
text: "珍藏资源",
2631
icon: "youzhi",
@@ -30,21 +35,11 @@ export default navbar([
3035
icon: "java",
3136
link: "/pdf/readme.md"
3237
},
33-
{
34-
text: "面渣逆袭",
35-
icon: "zhunbei",
36-
link: "/sidebar/sanfene/nixi.md"
37-
},
3838
{
3939
text: "破解合集",
4040
icon: "zhongyaotishi",
4141
link: "/nice-article/itmind/"
4242
},
4343
],
44-
},
45-
{
46-
text: "B站视频",
47-
icon: "bzhan",
48-
link: "https://space.bilibili.com/513340480"
49-
},
44+
}
5045
]);

docs/src/sidebar/sanfene/javathread.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,7 +1095,7 @@ private volatile boolean flag = false;
10951095

10961096
ThreadLocal 本身并不存储任何值,它只是作为一个映射,来映射线程的局部变量。当一个线程调用 ThreadLocal 的 set 或 get 方法时,实际上是访问线程自己的 ThreadLocal.ThreadLocalMap。
10971097

1098-
![二哥的 Java 进阶之路](https://cdn.tobebetterjavaer.com/stutymore/javathread-20240407200038.png)
1098+
![二哥的 Java 进阶之路:ThreadLocalMap](https://cdn.tobebetterjavaer.com/stutymore/javathread-20240407200038.png)
10991099

11001100
ThreadLocalMap 是 ThreadLocal 的静态内部类,它内部维护了一个 Entry 数组,key 是 ThreadLocal 对象,value 是线程的局部变量本身。
11011101

@@ -1167,14 +1167,15 @@ userThreadLocal.set(new User("沉默王二"));
11671167
> 2. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的字节跳动面经同学 1 Java 后端技术一面面试原题:ThreadLocal 是什么?ThreadLocal 的实现原理?
11681168
> 3. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的京东面经同学 1 Java 技术一面面试原题:ThreadLocal 原理,解决什么问题
11691169
> 4. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的携程面经同学 1 Java 后端技术一面面试原题:ThreadLocal,(作用,演进,软指针,删除过程)
1170+
> 5. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的虾皮面经同学 13 一面面试原题:threadlocal 原理 怎么避免垃圾回收?
11701171
11711172
### 15.ThreadLocal 内存泄露是怎么回事?
11721173

11731174
通常情况下,随着线程 Thread 的结束,其内部的 ThreadLocalMap 也会被回收,从而避免了内存泄漏。
11741175

11751176
但如果一个线程一直在运行,并且其 `ThreadLocalMap` 中的 Entry.value 一直指向某个强引用对象,那么这个对象就不会被回收,从而导致内存泄漏。当 Entry 非常多时,可能就会引发更严重的内存溢出问题。
11761177

1177-
![](https://cdn.tobebetterjavaer.com/stutymore/javathread-20240407212932.png)
1178+
![ThreadLocalMap 内存溢出](https://cdn.tobebetterjavaer.com/stutymore/javathread-20240407212932.png)
11781179

11791180
#### 那怎么解决内存泄漏问题呢?
11801181

docs/src/sidebar/sanfene/linux.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ title: Linux面试题,1道Linux八股文(1万字2张手绘图),面渣逆
33
shortTitle: 面渣逆袭-Linux
44
description: 下载次数超 1 万次,1 万字 2 张手绘图,详解 2 道 Linux 面试高频题(让天下没有难背的八股),面渣背会这些 Linux 八股文,这次吊打面试官,我觉得稳了(手动 dog)。
55
author: 沉默王二
6+
date: 2024-12-01
67
category:
78
- 面渣逆袭
89
tag:
@@ -20,6 +21,7 @@ head:
2021
我自己常用的 Linux 命令有 top 查看系统资源、ps 查看进程、netstat 查看网络连接、ping 测试网络连通性、find 查找文件、chmod 修改文件权限、kill 终止进程、df 查看磁盘空间、free 查看内存使用、service 启动服务、mkdir 创建目录、rm 删除文件、rmdir 删除目录、cp 复制文件、mv 移动文件、zip 压缩文件、unzip 解压文件等等这些。
2122

2223
> 1. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的作业帮面经同学 1 Java 后端一面面试原题:常用linux命令
24+
> 2. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的虾皮面经同学 13 一面面试原题:常见的linux命令
2325
2426
### 文件操作的命令有哪些?
2527

@@ -45,6 +47,7 @@ head:
4547

4648
> 1. [二哥编程星球](https://javabetter.cn/zhishixingqiu/)球友[枕云眠美团 AI 面试原题](https://t.zsxq.com/BaHOh):如何查看系统日志文件,常见的系统日志文件有哪些
4749
50+
4851
### 系统管理的命令有哪些?
4952

5053
- `ps`:显示当前运行的进程。`ps aux`显示所有进程。
@@ -232,6 +235,19 @@ watch -n 1 "netstat -an | grep ':443 ' | grep ESTABLISHED | wc -l"
232235

233236
> 1. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的作业帮面经同学 1 Java 后端一面面试原题:用linux命令去查找某个qps
234237
238+
## 3. Git 常用命令
239+
240+
### Git 常用命令有哪些?
241+
242+
- `git clone <repository-url>`:克隆远程仓库。
243+
- `git status`:查看工作区和暂存区的状态。
244+
- `git add <file>`:将文件添加到暂存区。
245+
- `git commit -m "message"`:提交暂存区的文件到本地仓库。
246+
- `git log`:查看提交历史。
247+
- `git merge <branch-name>`:合并指定分支到当前分支。
248+
- `git checkout <branch-name>`:切换分支。
249+
- `git pull`:拉取远程仓库的更新。
250+
235251
---
236252

237253
图文详解 2 道 Linux 面试高频题,这次吊打面试官,我觉得稳了(手动 dog)。整理:沉默王二。

docs/src/sidebar/sanfene/mysql.md

Lines changed: 37 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,7 +1200,7 @@ GitHub 上标星 10000+ 的开源知识库《[二哥的 Java 进阶之路](https
12001200

12011201
#### 什么是慢 SQL?
12021202

1203-
顾名思义,慢 SQL 也就是执行时间较长的 SQL 语句,MySQL 中 long_query_time 默认值是 10 秒,也就是执行时间超过 10 秒的 SQL 语句会被记录到慢查询日志中。
1203+
慢 SQL 也就是执行时间较长的 SQL 语句,MySQL 中 long_query_time 默认值是 10 秒,也就是执行时间超过 10 秒的 SQL 语句会被记录到慢查询日志中。
12041204

12051205
可通过 `show variables like 'long_query_time';` 查看当前的 long_query_time 值。
12061206

@@ -1283,6 +1283,7 @@ SET GLOBAL long_query_time = 2;
12831283
> 4. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的作业帮面经同学 1 Java 后端一面面试原题:mysql中如何定位慢查询
12841284
> 5. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的同学 1 贝壳找房后端技术一面面试原题:慢查询怎么分析
12851285
> 6. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的腾讯面经同学 27 云后台技术一面面试原题:如何优化慢查询语句?
1286+
> 7. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的虾皮面经同学 13 一面面试原题:mysql慢查询
12861287
12871288
### 33.有哪些方式优化 SQL?
12881289

@@ -2871,21 +2872,47 @@ MySQL 中的行锁、表锁都是悲观锁。
28712872
28722873
### 58.遇到过死锁问题吗,你是如何解决的?
28732874

2874-
排查死锁的一般步骤是这样的:
2875+
有,一次典型的场景是在[技术派](https://javabetter.cn/zhishixingqiu/paicoding.html)项目中,两个事务分别更新两张表,但是更新顺序不一致,导致了死锁。
28752876

2876-
(1)查看死锁日志 show engine innodb status;
2877+
```sql
2878+
-- 创建表/插入数据
2879+
CREATE TABLE account (
2880+
id INT AUTO_INCREMENT PRIMARY KEY,
2881+
balance INT NOT NULL
2882+
);
2883+
2884+
INSERT INTO account (balance) VALUES (100), (200);
2885+
2886+
-- 事务 1
2887+
START TRANSACTION;
2888+
-- 锁住 id=1 的行
2889+
UPDATE account SET balance = balance - 10 WHERE id = 1;
2890+
2891+
-- 等待锁住 id=2 的行(事务 2 已锁住)
2892+
UPDATE account SET balance = balance + 10 WHERE id = 2;
2893+
2894+
-- 事务 2
2895+
START TRANSACTION;
2896+
-- 锁住 id=2 的行
2897+
UPDATE account SET balance = balance - 10 WHERE id = 2;
2898+
2899+
-- 等待锁住 id=1 的行(事务 1 已锁住)
2900+
UPDATE account SET balance = balance + 10 WHERE id = 1;
2901+
```
2902+
2903+
两个事务访问相同的资源,但是访问顺序不同,导致了死锁。
28772904

2878-
(2)找出死锁 sql
2905+
![死锁](https://cdn.tobebetterjavaer.com/stutymore/mysql-20241201101426.png)
28792906

2880-
(3)分析 sql 加锁情况
2907+
解决方法:
28812908

2882-
(4)模拟死锁案发
2909+
第一步,使用 `SHOW ENGINE INNODB STATUS\G;` 查看死锁信息。
28832910

2884-
(5)分析死锁日志
2911+
![查看死锁](https://cdn.tobebetterjavaer.com/stutymore/mysql-20241201101704.png)
28852912

2886-
(6)分析死锁结果
2913+
第二步,调整事务的资源访问顺序,保持一致。
28872914

2888-
当然,这只是一个简单的流程说明,实际上生产中的死锁千奇百怪,排查和解决起来没那么简单。
2915+
> 1. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的虾皮面经同学 13 一面面试原题:遇到过mysql死锁或者数据不安全吗
28892916
28902917
GitHub 上标星 10000+ 的开源知识库《[二哥的 Java 进阶之路](https://github.com/itwanger/toBeBetterJavaer)》第一版 PDF 终于来了!包括 Java 基础语法、数组&字符串、OOP、集合框架、Java IO、异常处理、Java 新特性、网络编程、NIO、并发编程、JVM 等等,共计 32 万余字,500+张手绘图,可以说是通俗易懂、风趣幽默……详情戳:[太赞了,GitHub 上标星 10000+ 的 Java 教程](https://javabetter.cn/overview/)
28912918

@@ -3029,6 +3056,7 @@ redo log 是一种物理日志,当执行写操作时,MySQL 会先将更改
30293056
> 10. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的比亚迪面经同学 12 Java 技术面试原题:mysql的隔离级别有哪些
30303057
> 11. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的腾讯面经同学 27 云后台技术一面面试原题:事务的隔离级别?这些隔离级别是怎么保证数据的一致性的?默认的事务隔离级别是啥?(MVCC)怎么更改事务的隔离级别?
30313058
> 12. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的字节跳动面经同学19番茄小说一面面试原题:事务隔离级别,哪个是默认的,特点
3059+
> 13. [Java 面试指南(付费)](https://javabetter.cn/zhishixingqiu/mianshi.html)收录的虾皮面经同学 13 一面面试原题:mysql事务隔离级别
30323060
30333061
### 62.什么是脏读、不可重复读、幻读呢?
30343062

0 commit comments

Comments
 (0)