Java后端开发学习路线 | 腾讯实习版

Tips:

  • 学习阶段的很多知识其实和面试问题无关
  • 关于笔记,只记录核心的即可,如果记录很多,其实也不会回头去看
  • 每学完对应的技术栈的视频内容,可以去熟悉一下对应的重点八股总结

1. JavaSE

建议用时20天

按视频顺序的主要内容

  1. Java语法:需要熟悉,为算法刷题做准备
  2. 常见API的使用:有个印象,真用到了再去查
  3. 面向对象:深入理解
  4. 异常:过一遍,讲的比较浅
  5. 集合:认真学习,初步理解,深入的原理在背诵八股时再理解
  6. IO流:过一遍 / 跳过,完全不需要会
  7. 文件和日志:过一遍 / 跳过,面试不问
  8. 多线程基础:认真学习,初步理解,深入的原理在学习JUC篇和背诵八股时再理解
  9. 网络通信:过一遍 / 跳过,完全不需要会
  10. 反射:了解,具体再背八股
  11. 动态代理:了解,深入的原理在背诵八股时再理解

JavaSE 本阶段对应高频八股问题总结

集合的分类有哪些?

迭代器的实现原理是什么?

为什么 new ArrayList<>()时建议指定初始化容量值

为什么 ArrayList 默认情况下的扩容机制是扩容为原数组的1.5倍

ArrayList是线程的安全吗

CopyOnWriteArrayList 的实现原理

HashMap的添加元素流程

HashMap扩容加载因子为什么是0.75

HashMap扩容为什么扩容为数组长度的2倍

HashMap是线程的安全吗

ConcurrentHashMap的实现原理

泛型是什么?泛型的好处?类型擦除是什么?

反射是什么?反射的好处?反射的使用场景?

动态代理有哪些方式?原理是什么?

JDK动态代理和Cglib动态代理的区别?

JDK新特性:虚拟线程的原理了解吗?

2. JavaWeb

建议用时10天

按视频顺序的主要内容

  1. 前端内容:跳过,完全不需要会
  2. Maven:会使用即可
  3. 请求响应模型和服务三层架构:会使用即可
  4. MySQL基础使用:基础入门使用,后面还需要深入学其他视频
  5. Mybatis框架:学会使用
  6. Filter和Interceptor:过一遍,真要用再查
  7. 事务管理:过一遍
  8. AOP和SpringBoot:了解会使用,具体再背八股
  9. Maven高级:过一遍 / 跳过,面试不问

3. JavaSSM

建议用时若不看视频则3天,看视频则5天

SSM指的是Spring、SpringMVC、Mybatis

因为前面学过Mybatis和一点SpringBoot

这部分可以去查一下Spring、SpringMVC的文章阅读

可以不看视频,具体的背八股

也可以看视频快速过

但这个视频里还会教到MybatisPlus:企业实战非常常用的技术,可学)

Java 框架 本阶段对应高频八股问题总结

解释一下IOC和AOP?IOC的好处?

AOP的应用场景?实现原理?

Spring事务的实现原理?

SpringBoot自动装配原理?

Spring常见注解有哪些?

Spring Bean的作用域有哪些?

Spring MVC的执行流程?

SpringBoot的启动流程?

Spring中用到了哪些设计模式?

4. MySQL

建议用时:10天

按视频顺序的主要内容

  1. SQL书写:认真学习,需要会写两表联查的SQL
  2. 事务:认真学习,原理后面背八股总结
  3. 存储引擎:认真学习,原理后面背八股总结
  4. 索引:认真学习,原理后面背八股总结
  5. SQL优化:这里讲的一般,过一遍,具体SQL优化后面背八股总结
  6. 视图、存储过程、触发器:跳过、完全不需要会
  7. :这里讲的一般,过一遍
  8. Innodb存储引擎:含事务原理、MVCC,认真学习,后面背八股总结
  9. 主从复制:认真学习,后面背八股总结
  10. 分库分表、读写分离:不需要看,后面背八股总结

MySQL 本阶段对应高频八股问题总结

事务的四大特性是什么? 实现原理是什么?

并发事务有什么问题?分别解释一下?

事务的隔离级别有哪些?实现原理是什么?

如何理解MVCC?

为什么使用B+树作为索引的数据结构?为什么不用哈希表或二叉树?

B树和B+树有什么区别?

什么是聚集索引和二级索引?

回表是什么?怎么消除回表?索引覆盖是什么?

索引失效的情况有哪些?

分别解释一下RedoLog、UndoLog、BinLog?应用场景?

为什么RedoLog 使用 WAL 技术?

BinLog的三种格式?

执行一条SQL的过程是怎么样的?

你知道执行计划吗,可以解释一下字段的含义吗?

你面对慢SQL会怎么优化?

分片键如何选择?

分片算法有哪些?

什么是一致性哈希分片算法?

非分片键的查询怎么办?

什么时候需要分库分表?

如何预估分库分表的数量?

分库分表带来哪些问题?

5. Redis

建议用时:15天

按视频顺序的主要内容

  1. Redis基础数据类型和命令:认真学习使用
  2. 实战篇(黑马点评项目):认真学习,包装优化后可作为简历的项目
  3. 持久化机制:认真学习,后面背八股总结
  4. 主从、哨兵、集群:认真学习,后面背八股总结
  5. 多级缓存:可以跳过
  6. Redis最佳实践:过一遍
  7. 数据结构:认真学习,后面背八股总结
  8. 网络模型:认真学习
  9. 内存回收:认真学习,后面背八股总结

Redis 本阶段对应高频八股问题总结

Redis的数据类型有哪些?应用场景?

Redis的数据类型的底层数据结构你了解吗?

ZSet为什么使用 SkipList 跳表 实现?SkipList跳表是什么?

Redis如何实现分布锁?

SetNx实现的分布锁有什么问题?

Redisson分布式锁底层使用什么数据结构?

Redisson分布式锁的好处有哪些?

解释一下如何实现可重入?

超市续约的看门狗机制了解吗?

Redisson分布式锁的问题是什么?如何解决?

介绍Redis的持久化方式(RDB、AOF、混合持久化)?优缺点?

Redis的内存淘汰策略有哪些?

什么是缓存击穿/穿透/雪崩?分别怎么解决?

什么是热Key问题?影响?解决方案?

什么是大ey问题?影响?解决方案?

Redis的高可用了解吗?主从?哨兵?Redis cluster?

除了官方的还了解过其他的Redis高可用方案吗?

主从数据同步的原理了解吗?

Redis是AP还是CP的?

Redis支持事务吗?

Redis支持事务回滚吗?

6. JUC

建议用时:15天

基本都认真学一遍,不懂的可以不用纠结,下来再具体背高频八股

JUC 本阶段对应高频八股问题总结

线程有哪几种状态?状态如何流转?

创建线程的方式?

多线程有什么应用?

线程池的好处?

线程池的七个参数?

为什么不推荐使用jdk的Executors创建线程池?

线程池的执行流程?

任务拒绝策略有哪些,怎么选择?

线程池的核心线程数和最大线程数怎么设定?

上线后你会关注线程池的哪些指标?

你怎么理解线程安全?

synchronized的原理实现是什么?

synchronized锁升级过程了解吗?

CAS是什么?应用场景?优缺点?

ReentrantLock是什么,和synchronized相比的区别是什么?

AQS是什么?怎么实现的?

乐观锁是什么?悲观锁是什么?应用场景分别是什么?

用数据库如何实现乐观锁

JMM是什么?其中原子性、可见性、有序性问题分别是什么?

JMM如何保证的原子性、可见性、有序性?

常考算法:多线程交替打印0-100

常考算法:多线程交替打印ABC

7. JVM

建议用时:15天

基本都认真学一遍,不懂的可以不用纠结,下来再具体背高频八股

JVM 本阶段对应高频八股问题总结

JVM的内存结构/运行时数据区了解吗?分别介绍一下它们的作用?

创建对象一定要分配在堆里吗,了解过逃逸分析和栈上分配吗?

了解过TLAB吗

请你介绍一下Java的GC垃圾回收

可以详细介绍一下CMS吗

可以详细介绍一下G1吗

根可达性算法是什么?哪些对象作为GCRoot

三色标记法是什么?作用?好处?

漏标问题/对象消失问题怎么解决?

浮动垃圾/多标问题怎么解决?

双亲委派是什么?双亲委派的好处是吗?

怎么破坏双亲委派?

Tomcat为什么以及怎么破坏双亲委派?

你有调优过JVM吗?

8. 消息队列

建议用时:3天

过一遍了解核心概念即可,具体的可以直接背高频八股

Kafka 本阶段对应高频八股问题总结

Kafka的架构和核心概念能介绍一下吗?

如何保证消息不丢失?

如何保证消息不重复消费?

如何保证消息顺序消费?

介绍一下Rebalance机制?

Offset自动提交是怎么实现的?

消息堆积应该怎么解决?

9. 计算机网络和操作系统

建议用时:3天

看 小林coding 和 Javaguide 即可,不需要系统看课

计算机网络 本阶段对应高频八股问题总结

键入网址到网页显示,期间发生了什么?

Http1.0 与 Http1.1 比较区别?

Http1.1 与 Http2.0 比较区别?

Http2.0 与 Http 3.0 比较区别?

Quic 协议了解过吗?

Https的加密过程可以介绍一下吗?

Https为什么要用两种加密算法:对称加密算法和非对称加密算法?

TCP的可靠性是怎么保证的?

介绍一下拥塞控制?

介绍一下TCP三次握手的过程?

介绍一下TCP四次挥手的过程?

为什么是三次握手?不是两次?

为什么挥手需要四次?

为什么有TIME_WAIT状态?为什么是2MSL时间?

TIME_WAIT 状态的连接过多怎么处理

TCP粘包和拆包是什么?解决方案?

CDN是什么?

操作系统 本阶段对应高频八股问题总结

进程线程协程是什么?

进程间通信方式?线程间通信方式?

介绍一下操作系统的内存管理机制?

什么是虚拟内存?

产生死锁的四个条件?

介绍一下IO多路复用 select、poll、epoll?原理和优缺点?

Linux的常用命令有哪些?

10. 算法

  1. 分类刷题:不要随意刷题,建议自己规划时间段分类刷,比如第一周专门解链表题型,第二周专门解二叉树题型,以此类推。让知识形成体系,通过一段时间的高强度刻意练习把这个题型相关的知识点不断强化
  2. 坚持刷题按照规划刷题不断反复,分类刷了不坚持也是白费,最好从今天开始
  3. 抓住重点:链表、数组、二叉树 是重点,考的最多,熟练掌握它们效益最大
  4. 学会刷题:一个题目不只一种解法,当你看不懂题解时,很有可能是它的题解写的不好或者讲的不好,多找找其他人的题解,一般都会有人讲的令你感觉通俗易懂
  5. 题单/教学视频
  • leetcode hot100
  • 牛客top101
  • 代码随想录
  • 灵茶山艾府
  • labuladong

11. 其他

设计模式、数据结构与算法、常见问题定位分析、场景题 等等 直接看高频八股

常见问题定位分析:

CPU飙高的排查思路?

内存泄漏的排查思路?

数据结构与算法

可以说说归并排序吗?

可以说说快速排序吗?

快速排序的时间复杂度是由什么影响的?

如何用两个栈模拟一个队列?

设计模式

你了解哪些设计模式?

单例模式有哪些实现方式?饿汉式和懒汉式的区别?

你会使用哪种模式实现单例?

为什么懒汉式的双重检查锁要加上volataile?

场景题

订单<未支付&到期>关闭如何实现?

1 亿个数据取出最大前 100 个

大文件排序

Redis缓存与MySQL数据一致性

......

#学习路线##java##后端开发#
全部评论
一些八股内容分享之前是在小红薯上面发过,暂时还没整理到牛客上来有空再安排
1 回复 分享
发布于 04-03 17:39 广东
太强了
点赞 回复 分享
发布于 04-03 18:55 河南
佬,要学微服务吗?
点赞 回复 分享
发布于 04-03 19:16 广东
佬,我学完javase和javaweb了,看网上推荐跟苍穹外卖,佬推荐了
点赞 回复 分享
发布于 04-03 20:27 广东
juc和jvm感觉没时间看完了,现在看完了黑马的面试课程,但是看到真实面经还是感觉一大堆不会的,该怎么办
点赞 回复 分享
发布于 04-04 10:54 江苏
mark
点赞 回复 分享
发布于 昨天 20:15 江苏
mark
点赞 回复 分享
发布于 昨天 20:58 广西
mark
点赞 回复 分享
发布于 今天 11:17 湖北

相关推荐

评论
22
114
分享

创作者周榜

更多
牛客网
牛客企业服务