2024届_Gary
技术栈测试
1、学Java看的哪个资料:b站动力节点 HashMap源码看过但是忘了,看过尚硅谷的JUC
- 重载,重写,泛型懂吗?
-
Java集合这块学过了吗?
- HashMap源码,JVM,JUC是否看过:
2、数据结构与算法看的哪个资料:只能写二叉树,链表、栈、队列只会用,算法只学过递归和二分,力扣大概30道
- 链表,栈,队列,二叉树能自己手写吗:
- AVL树,红黑树,线段树学过吗:
- 冒泡,快速,归并排序能手写吗:
- 递归,二分,贪心,回溯,动规,枚举这几种算法学过哪几种:
- LeetCode 大概刷了多少题:
3、框架与中间件 学过cookie session SSM redis,做过三四个Springboot项目
- servlet,cookie,session学过吗:
- SSM学过了吗:
- redis 学过吗:
- SpringBoot项目做过几个:
4、MySQL看的哪些资料: b站的好多个,知道基本的insert select update 索引原理看过但是忘了
- sql 熟练吗:
- 索引底层原理懂吗:
5、计算机基础 计算机网络和操作系统看帅地玩编程的 计算机组成几乎没学过
- 计算机网络看什么资料:
- 操作系统看什么资料:
- 计算机组成原来看的什么资料:
学习安排(2023.4.19)
课程大纲: 所有课程大纲入口,你需要的内容,这里都有
你们最近几个报名的24届,感觉各方面还是挺像,都是不少东西都入门接触过,但是确实深入,所以你接下来的就是把八股文这个好好刷一刷,以及梳理下项目,目标就是八月份就开始投递,到时候你可以把你那个实习的,简单包装一下,我会跟大家说怎么包装,我们接下来需要做两个项目 + 你实习那个项目,刚好写满简历,所以我们要 项目+八股文+算法 三大重点同时学,具体安排如下:
1、项目:我个人推荐你复习下牛客网那个项目,或者你先梳理下你那个尚硅谷的也行,按照这个来梳理: 做项目时需要考虑的几个点,然后牛客网项目,我个人也建议你复习下,牛客网我这里有简历模版,你可以按照考点来复习:仿牛客网简历书写+可能被问的问题,你先处理好这两个项目,之后看看时间,有时间在做下 仿B站高性能项目学习指南 这个项目。
时间:建议6月份份之前处理完,并且写到简历上,基于简历在不断去优化。预计每天平均投入2小时就够的了
2、算法:你算法跟着我的步骤学,就是这个课程:拿捏算法面试课程介绍
时间:跟着我节奏,我7月底更新完,主要掌握的标5?的题,预计每天需要投入一个小时。
3、八股文:这事你最需要补的内容了,重点是 mysql + redis + jvm + java集合/并发 学,其他的比如mq啥的,到时候跟着项目来就行,408直接复习的时候刷就行。
mysql => redis:这两个是考察重点,看 MySQL原理剖析课程说明 + Redis考什么+高频题汇总 就可以了
jvm=>Java并发: JVM 刷 图解JVM学习指南 就可以了,之后学习下Java并发,重点看前面二三十章就行了,后面比较难的先不学,不过Java并发第一次容易蒙圈,哈哈,没关系哈,把我标注懂点的学完就行。
时间:6月底之前完成,这样子 1 + 2 + 3 在六月底就完成了一刷,你之后就可以花一个月复习了。
之后按照高频题库复习就好了: 八股文题库(必看) ,刷完应付银行类以及普通中厂完全没问题的了。
然后如果你精力多的话,按照 八股文各大考点分析 去查漏补缺,但是面银行,中小公司,一般 八股文题库(必看) 就够的了。
学习顺序建议:可以三个同时学。
总体时间建议:如果平均每天6+小时,6月底完成1~3问题不大的,之后二刷复习,7月底就开始投递,同时也开始被虐。最晚8月中下旬全力投入秋招。
然后记得来每周打卡学习进度哈,也可以星球每天打卡哦,我会看的,比如像他们这样:23与22届做的比较好的成员示例,你也可以每天打卡或者星球打卡吧,我会看的
有什么问题记得随时私聊帅地
课程大纲: 所有课程大纲入口
每周学习跟进
4月20日 day1
八股文:看了MySQL的两篇文章:
1. 一条SQL查询语句是如何执行的?
2. 日志:一条SQL更新语句是如何执行的?
算法:
因为之前做过,还有点印象,做得比较快
做了二分查找的前5道题
LeetCode704.二分查找
LeetCode69.x的平方根.
LeetCode27.移除元素
LeetCode11.盛最多水的容器
LeetCode209. 长度最小的子数组
项目:
写了简历,但是还有待修改
想把论坛项目整合到全髋关节置换手术机器人系统中,大致的想法是:
1.说这个论坛里面,专门有一个板块是介绍骸关节手术机器人,包括自研产品的介绍、同类型产品对比、未来的商业规划蓝图
2.论坛里可以写一些常见的医学保健知识的文章 (关于骨科的,例如 保护关节之类),文章下面可以评论、点赞,这些文章由项目组的相关专业医生来编写
4月21日 day2
八股文:
Mysql的三篇文章
1.事务隔离:为什么你改了我还看不见
2.深入浅出索引(上)
3.深入浅出索引(下)
算法:
1.剑指 Offer 03. 数组中重复的数字
2.看了递归视频(感觉没有完全理解)
3.移除链表元素(还是不能用递归做出来,只能用常规的遍历,然后直接删除)
4月22日 day3
八股文:
只看了一篇Mysql的,行锁功过:怎么减少行锁对性能的影响?
算法:
链表章节的前七道(从移除元素到反转链表)
因为很多之前做过,有点印象
项目:
简历改了一半,剩下论坛项目,要给它想个名字,还要想一下技术怎么写
4月23日 day4
早上太困,状态不好,一个上午都没干什么
八股文两篇半 mysql:
8. 事务到底是隔离的还是不隔离的?(这篇看了一个半钟)
9. 普通索引和唯一索引,应该怎么选择?
10. MySQL为什么有时候会选错索引?(这篇还没看完)
算法:
翻转链表II K个一组翻转链表 环形链表
旁听了模拟面试(自我介绍还要写个模板背一背)
4月24日 day5
八股文三篇半 mysql:
10.MySQL为什么有时候会选错索引(剩下半篇)
11.怎么给字符串字段加索引
12.为什么我的MySQL会“抖”一下
13.为什么表数据删掉一半,表文件大小不变
算法:
环形链表II 合并两个有序链表 排序链表
项目:
一开始用了自己原先的代码,折腾了半个多钟,配置文件的中文显示不出来,后面决定直接用网站上提供的资料
改了配置文件,但是没有启动成功,quartz配置有点问题,明天再看看
4月25日 day6
八股文
14.count(*)这么慢,我该怎么办
15.为什么这些语句逻辑相同,性能却差异巨大
16.为什么只查一行的语句,也执行这么慢
17.幻读是什么,幻读有什么问题
算法:
LRU缓存(一题代码就写了好久,改来改去才写对)
项目:
把quartz部分的代码注释掉,成功启动了项目
4月26日 day7
脚痛,只看了八股文
21.为什么我只改一行的语句,锁这么多?
22.MySQL有哪些“饮鸠止渴”提高性能的方法?
项目:注册模块,邮件激活的链接,打了断点进不去controller的方法
4月27日 day8
八股文:
1.到底可不可以使用join?
2.join语句怎么优化?
3.为什么MySQL数据库要用B+树存储索引
对于红黑树和B树有了更加深刻的理解,之前只是死记八股文,没有结合使用场景,深究他们的原理
算法 四道(有些之前做过有印象):
最小栈 有效的括号 用队列实现栈 用栈实现队列
项目:
想了想论坛应该加什么实际点的功能上去
4月28~5月1日(4天)day12
这几天基本都在玩,接下来一定要好好学了
八股文:
redis,单线程为什么还能这么快
mysql,为什么索引要用B+树存储,普通索引和主键索引的区别,最左匹配原则、索引下推概念
算法:栈和队列搞完,优先队列前两道
写完了简历,自我介绍还没准备,简历里关于科研的内容也没准备
5月2日 day13
八股文 高频题:
mysql,InnoDB和MyIsam区别,行锁 表锁 全局锁
redis,数据结构,跳跃表,持久化机制
项目:改了激活邮件的bug,es部分看了大半,还没看完(搜索功能还不能用)
5月3日 day14
八股文 高频题:
mysql: 复习了索引模块(InnoDB和MyIsam区别,索引下推不熟)
redis: 持久化机制看完RDB的原理,但是还没完全理解
算法:平衡二叉树 、最大深度、对称二叉树、中序遍历
项目:修复了帖子搜索功能的bug(Mysql里的帖子没加到es的数据库里面)
写了个自我介绍
5月4日 day15
八股文:
redis 分布式锁(未完全理解,还要再看看详细的那篇文章)
哨兵机制 主从复制
复习了一点java关于继承的知识
5月5日 day16
八股文:
redis 缓存过期策略(24|替换策略:缓存满了怎么办?)分布式锁(30|如何使用Redis实现分布式锁?)
mysql: 复习行锁 表锁 全局锁
算法:二叉树镜像、层序遍历
精华文章:Java:一个帝国的诞生
5月6日 day17
八股文: Mysql sql执行慢的原因 加锁规则 幻读
精华文章:1.加锁还是不加锁,这是一个问题 2.进程与线程的一个简单解释
项目:把基本功能实现了,还要看看quartz哪里导致报错(但是不影响正常功能)
5月7日 day18
八股文:15|消息队列的考验:Redis有哪些解决方案?20|删除数据后,为什么内存占用率还是很高? 缓存雪崩+穿透+数据库缓存一致性问题 25|缓存异常(上):如何解决缓存和数据库的数据不一致问题?23|旁路缓存:Redis是如何工作的?
项目:找不到项目哪里用到了quartz,直接注释掉配置里的代码,不报错了
5月8日 day19
复习:redis的AOF、RDB持久化机制
学习:redis的缓存雪崩 击穿 穿透、分布式一致性算法(leader选举) ,mysql自增id、分库分表
专心看的话,感觉一天还是能看挺多的,还是要用电脑,边用画图,边看,然后看多几次,印象才深刻,特别敲键盘会更有feel
5月9日 day20
redis主从同步,数据一致性问题、数据结构底层(hash 跳表 压缩列表)
优质文章:缓存和数据库一致性问题,看这篇就够了
JVM,java代码如何运行起来
5月10日 day21
JVM,类加载机制、垃圾回收的一些基本概念,包括堆、栈、方法区
redis,看了架构演变的文章,复习AOF日志是怎么写、哨兵挂了怎么办
5月11日 day22
JVM,垃圾回收机制(新生代和老年代),回收的流程、设计到的算法
项目,想把登录的密码验证方法,MD5改成AES加密;看了验证码的逻辑
5月12日 day23
JVM,垃圾回收器种类,Stop the world分析
项目,解决properties内容无高亮问题
5月13 14日 day24 25
本周总结(第三周)
Redis基本收尾;JVM学到了垃圾回收器的种类及其实现的算法思路;算法题没怎么刷;项目看了登录部分的逻辑
基本上每天都能抽出6+小时出来学,存在什么都不想干,只想发呆和出去玩的情况,自制力还是有待加强
预计下周要把JVM收尾,MySQL和Redis还要根据高频题,复习巩固一下;论坛项目,要想一下如何加点自己的东西上去(Redis 多线程)
看文章的过程中,还是要用画图软件,随便写点什么,这样会更加容易专注,不会分心
5月15日 day26
JVM垃圾回收的内容,各种垃圾回收器的算法,工作原理及其优缺点,包括传统的新生代ParNew Serial、老年代CMS、G1;(使用的场景不是很理解)
GC Roots、MinorGC
5月16日 day27
JVM专栏除了实战部分,看完第一遍(后面还要继续看)
MySQL高频题:索引、B+树、表锁 行锁 全局锁、慢sql原因、MyIsam和InnoDB差异
项目:登录逻辑,拦截器那部分的逻辑未解决
5月17日 day28
java并发:java内存模型、互斥锁(不太懂)
项目:搞完登录部分的逻辑,想加个第三方登录(微信)
5月18日 day29
java并发:线程、管程、安全性、性能问题,看了挺多,但都是一头雾水
项目:微信第三方登录要钱,决定放弃,还是先把基本功能的实现逻辑看完先吧,按照简历上写的 今天状态都不怎么好
5月19-21日 day32 本周总结
本周已完成:JVM第一次、MySQL高频题前面部分复习(日志事务和其它那些没看)、Redis快的原因、项目登录模块的逻辑
算法题没怎么刷,打算先把重点把八股文和项目搞定
星期六开始感冒,喉咙一直难受,学习效率低
5月22日 day33
java并发里的文章:synchronized、volatile、CAS、线程池、手写死锁
sql练习的基本操作,Mysql索引、全局 表 行锁、慢sql原因
5月23日 day34
mysql:binlog redolog 两阶段提交、事务、幻读
写学校作业搞了很久
5月24日 day35
mysql:explain分析性能、extra字段的比较 如何优化、Null的后果
5月25日 day36
java并发 管程的内容,看了很久,没看懂;Kafka的起源 大体结构
(她发烧了,没什么心情,效率很低)
5月26日 day37
Spring的依赖注入 AOP,都没太看懂;
算法,前序和中序构造二叉树;
项目,看了发帖的逻辑
5月27日 day38
面向对象三大特性、Object常用方法、深浅拷贝、平台无关性
项目:登录部分,整体的思路再理了一次,Security部分的授权未搞定
5月28日 day39 本周总结
这个星期病了几天,基本没什么效率
看文章感觉看差不多了
下周可以直接面向全方位八股文和高频题模板来复习
下周目标:搞定论坛项目的基本功能实现逻辑、spring框架两篇文章+设计模式
5月29日 day40
mysql高频题 计算机网络看了一点
项目,搞定了redis缓存热点帖子的逻辑
5月30日 day41
mysql高频题,完成索引部分的题目
单例模式、计算机网络https部分 非对称加密不太懂
5月31日 day42
mysql 事务部分,发现对这块还是不太理解,虽然文章看完了,明天还要继续看
回答模板:抽象和接口 重载和重写
6月1日 day43
mysql事务部分,看了好久
6月2 3日 day45
高频题回答,抽象和接口 异常 String final StringBuilder和StringBuffer 多态 序列化 反射
6月4日 day46(周总结)
设计模式看了代理模式(动态代理不太懂)
mysql事务部分还没搞定 redis基础部分准备收尾
java基础按照回答模板搞了
论坛项目还差:缓存和数据库一致性、消息队列、访问人数和用户活跃度统计
6月5日 day47
redis 基础部分,还查GEO Hyperlog bitmap这几个数据结构
6月6日 day48
spring 依赖注入 控制反转
mysql高频题,事务隔离级别
论坛项目kafka部分,生产者 消费者逻辑
6月7日 day49
复习了前面总结的高频题回答 mysql事务 索引 redis基础部分
6月8 9日 day50 51
java基础部分的高频题
6月10 11日 day52 53
mysql还剩下主从架构
6月12-15日 day57
这几天都在搞期末考试,宿舍里面还有矛盾,各种各样的事情,基本没怎么推进,接下来要把之前的都补回来
6月16日 day58
完成高频题多线程的基础部分
6月17日 day59
Spring AOP、IOC 、依赖注入
6月19日 day61
spring高频题收尾
6月21日 day63
多线程进阶部分收尾
6月22日 day64 端午
收尾线程池
今天大概率只有上午干活了,有点被挂科的事情影响心态,不过这当作是一次心理的磨练吧,有补考的话就去补考,没有的话等大四下重修,还是那句话:对于控制不了的事情,一直担心内耗自己也没有,还不如先把手头上可以做的事情,先做好,其它事情,就这样吧,放平心态,多一份从容不迫,少一点莫名的焦虑,生活终究会眷顾我们的。
生活总是有那么一些的意料之外,也许这也是命中注定吧。谁说的准呢。
6月27日 day69
6月26日面了华讯网络的实习生,对于实习和自己在学校实验室方面的回答,还是准备得不够,回答的内容,都没有很好的体现出自己的思考,从面试官的角度可能有些作假的嫌疑(自己觉得),特别是对于自己负责的工作,不能完整并且思路清晰的描述出来,还有就是团队的分工,然后自己的收获,都没有流畅的说出来,很明显在这些问题都没有充分准备,在一些不会的问题,例如:计算机网络相关的,答不上来的时候,会有挠头这些小动作,对着摄像头这些动作就感觉很不好。
整个面试过程并没有说很紧张,但是面试前的一段时间,还是会有紧张感,这种感觉跟高考前的那种感觉很像,要慢慢习惯这种场景才行,学会接受失败,不断地总结经验,赶紧站起来继续复习,继续准备。
计算机网络这方面的八股文,还有项目相关的,依然任重道远。
7月2日 day74
终于收尾计算机网络,八股文方面还剩下k8s docker 设计模式
对于项目方面,还要继续熟悉一下,然后就是疯狂背书
7月10日 day82
目前已经进入疯狂背书阶段,同时要熟悉一下简历上写的项目、学校比赛、实习的那些东西。
明天开始用回最原始的方式,每天开口读书,来加深记忆,力求做到面试的时候,能够直接出口成章!