2. innodb和myisam存储引擎的区别
3. 索引分类(主键、唯一索引、全文索引、覆盖索引等等),最左前缀原则,哪些条件无法使用索引
4. B树、B+树区别,索引为何使用B+树
5. 聚集索引与非聚集索引(使用非聚集索引的查询过程)
6. 事务的ACID(原子性、一致性、隔离性、持久性)
7. 事务隔离级别和各自存在的问题(脏读、不可重复读、幻读)和解决方式(间隙锁及MVCC)
8. 乐观锁和悲观锁、行锁与表锁、共享锁与排他锁(inndob如何手动加共享锁与排他锁)
9. MVCC(增加两个版本号)及delete、update、select时的具体控制
10. 死锁判定原理和具体场景
11. 查询缓慢和解决方式(explain、慢查询日志、show profile等)
12. drop、truncate、delete区别
13.查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序
14. mysql优化,读写分离、主从复制
15. 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)
02 Redis1. Redis如何做高可用、集群
2.Redis和Memcached的优劣势比较
3.Redis的数据存储类型有哪些?
4.Redis的应用场景有哪些?
5. Redis的持久化方式,以及项目中用的哪种
6.Redis的缓存雪崩怎么解决?
7.Redis与数据库MySQL的双写一致如何解决?
8.Redis的缓存穿透怎么解决?
03 计算机网络1. OSI七层协议、TCP/IP四层协议
2. 各层对应的网络设备(路由器、交换机、网关、网桥、集线器等等),各层对应的协议
3. 数据链路层的CSMA/CD协议,笔试可能会用到
4. IP地址分类,子网划分(笔试常用)
5. TCP和UDP的区别
6. TCP三次握手和四次挥手,为什么三次握手,为什么四次挥手
7. TCP精髓问题:停止等待协议、连续ARQ协议、滑动窗口、流量控制、拥塞控制(慢开始、拥塞避免、快重传、快恢复)
8. HTTP状态码
9. HTTP缓存机制(cache-control、Expires之类的一系列请求 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 与相应报头字段)
10. session和cookie的区别,禁用cookie后怎么办
11. DNS解析的过程
12. 常用协议的端口
04 数据结构与算法1. 数组、链表(单向、双向、双端)、栈和队列、二叉树、红黑树、哈希表、堆(最大和最小)
2. 个人经验:栈和队列、哈希表、链表、二叉树的题较多,图的较少
3. 查找:二分查找及其变形
4. 二叉树:前序、中序、后序遍历,按规定方式打印,两个节点之间操作(最近公共祖先、距离)等问题。
5. 最大堆和最小堆:大数量级数据找最大几个等问题、堆如何调整等问题。
6. 栈和队列:经常作 Java开源项目【ali1024.coding.net/public/P7/Java/git】 为算法题要用到的数据结构
7. 八大排序:3个简单的:冒泡、选择、插入及其优化,5个高级的:快速排序、归并排序、堆排序、希尔排序、桶排序(快排、归并、堆很重要)
8.手写堆排序
9. 给阿里2万多名员工按年龄排序应该选择哪个算法?
05 Linux 总结总体来说,如果你想转行从事程序员的工作,Java开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。
如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java编程思想》、《Java核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
va核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
[外链图片转存中…(img-bjv0kq0z-1650432622621)]



