前言
面试必备技能清单,这里不会详细论述,更多的是清单列举,罗列一些关键字和链接注释。
数据结构与算法
-
排序算法
-
数据结构
- 红黑树(5点特性)
-
思维拓展
- 一堆字符串求出现次数最多的字符串
Java
-
Java 基础部分
- Java 集合框架
- ArrayList 与 LinkedList
- Hashtable、Hashmap 与 ConcurrentHashmap
- Java 并发编程
- 线程状态
- 新建、可运行(运行和就绪)、阻塞、无限期等待、限期等待、死亡
- 实现线程三种方式(继承Thread,实现 Runnable 接口,实现 Callable 接口)
- 并发两个关键问题
- 线程通信
- 线程同步
- volatile 和 synchronized
- lock 和 synchronized
- Java内存模型(JMM),解决并发中的可见性,原子性,有序性问题
- 线程状态
- Java IO
- 序列化
- AIO、BIO、NIO
- Java 虚拟机
- 运行时数据区
- Java 设计模式
- 单例模式
- 工厂模式
Java Web
- Spring
- IOC
- AOP
- DI
- SpringMVC
- 执行流程
- MyBatis
数据库
-
存储引擎
- MyISAM(表级锁,不支持事务,全文索引,只读应用)
- .frm / .myd / .myi
- 非聚集索引
- InnoDB(行级锁,最大支持并发,事务,表更新和查询都相当的频繁)
- .frm / .ibd
- 聚集索引,以主键为索引来组织数据
- MyISAM(表级锁,不支持事务,全文索引,只读应用)
-
索引(衡量标准:IO渐进复杂度)
- Hash(冲突,无法做范围查询)
- FullText(全文搜索,优化:前缀索引)
- R-Tree(空间索引,附近三公里的数据怎么查询)
- B+ Tree(B Tree:每个key、data信息存在结点,B+ Tree存在叶子节点)
-
哪些情况下不会使用索引
- 全表扫描更快
- 条件中有or
- 不是复合索引的第一部分
- like以%开始
-
隔离级别
- 串行化
- 可重复读
- 读已提交
- 读未提交
-
Redis 数据类型
- String:字符串
- Hash:字典
- List:链表
- Set:集合
- Sorted Set:有序集合
操作系统
-
进程和线程的区别
- 资源、调度、开销、通信 4个方面来对比
-
线程间通信
- synchronized
- while轮询
- wait() / notify()
- 管道
-
进程通信
- 直接通信
- 间接通信
计算机网络
-
应用层
- HTTP请求和响应报文
-
传输层
- 为什么三次握手,两次不行吗
- 四次挥手 TimeWait 作用
- TCP可靠传输
分布式
-
分布式通信协议
- http
- https
- RESTful API
-
分布式锁
项目
-
扫码登录原理
-
Cookie 和 Session 的原理
-
单点登录
-
参考资料
一、数据结构与算法
包含数据结构与算法两部分。
?阅读清单
?学习课程
二、Java
包含 Java 核心知识和 Java Web 框架。
?阅读清单
- 《Java并发编程实战》
- 《深入分析Java Web技术内幕》
- 《阿里巴巴Java开发手册》
- 《Java程序员面试笔试宝典》
- 《Java网络编程》
- 《Spring实战》
- 《Spring MVC+MyBatis开发从入门到项目实战》
- 《深入理解Java虚拟机》
- 《Java核心技术 卷Ⅰ / Ⅱ》
?学习课程
- 【廖雪峰】Java教程
- 【龙果学院】Java并发编程原理与实战
- 【龙果学院】深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理)
- 【慕课网】Java零基础入门
- 【尚学堂】白鹤翔_jvm虚拟机优化
- 【网易云课堂】Java开发工程师(Web方向)翁凯
- 【慕课网】Spring Cloud微服务实战_廖师兄
- 【黑马程序员】SSH框架_王泽
- 【黑马程序员】SpringMVC+Mybatis
- 【牛客网】初中高Python+Java项目实战_叶神
三、Web Server
- 【网易云课堂】thinkphp5开发restful-api接口
四、面向对象
-
【极客学院】极客学院23种设计模式
五、数据库
?阅读清单
- 《高性能MySQL》
- 《Redis实战》
?学习课程
- 【慕课网】MySQL性能管理及架构设计
- 【慕课网】Redis从入门到高可用,分布式实践
六、操作系统
?阅读清单
- 《Linux+C程序设计大全》
- 《快乐的Linux命令行》
- 《深入理解计算机系统》
- 《UNIX环境高级编程》
- 《Linux+高性能服务器编程》
?学习课程
- 【慕课网】快速上手Linux 玩转典型应用
- 【慕课在线】Linux达人养成计划 I-Linux的入门级课程!
- 【慕课在线】Linux 达人养成计划 II VIM+磁盘管理+用户权限!
- 【小甲鱼】零基础入门学习汇编语言
- 操作系统_清华大学(向勇、陈渝)
七、计算机网络
?阅读清单
- 《图解HTTP》
- 《计算机网络原理创新教程》韩立刚主编
?学习课程
- 【51CTO】韩老师-计算机网络原理-156讲
- 【慕课网】HTTP协议原理+实践 Web开发工程师必学
八、系统架构
?阅读清单
?学习课程
- 【慕课网】Nginx从入门到实践
- 【咕泡学院】架构师系列课程
九、面试
-
【慕课网】360大牛全面解读PHP面试
-
【慕课网】Google面试官亲授 升级Java面试
十、机器学习
?阅读清单
- 《机器学习实战》
?学习课程
- 【慕课网】Python3入门机器学习 经典算法与应用
- 【莫烦Python】机器学习系列
十一、工具
?学习课程
- 【表严肃】讲正则表达式
- 【表严肃】讲Git
- 【慕课网】系统学习Docker 践行DevOps理念
- 【慕课在线】IntelliJ IDEA神器使用技巧
相关文章
暂无评论...