0%
编程语言
Java
基础
- Object有哪些方法
- Java内存模型(Happends before)
- JVM运行时数据区
- 垃圾收集算法,垃圾收集器
- 类加载机制
集合
- HashMap底层实现,1.8之前之后有什么区别
并发
- synchronized和ReenterLock的区别
- 有哪几种线程池,各自的使用场景是什么,如何创建一个线程池
- volatile原理,使用场景
Python
- Python有哪些内置的数据结构
- 如何管理内存
- 垃圾回收机制
- django执行http请求的流程
- django内建缓存机制
网络
- TCP和UDP的区别
- TCP三次握手,四次挥手
- TCP可靠性原理
- HTTP常见状态码和含义
- HTTP常见的Header和功能
- HTTP和HTTPS的区别
- Cookie和Session分别是什么,有什么区别
- 转发(Forward)和重定向(Redirect)的区别
- 描述浏览器输入url到显示页面的整个过程
操作系统
- 进程和线程的区别
- 并行和并发的区别
- 进程间通信
- 生产者消费者模型
- 什么是协程
- 死锁产生的条件和解决死锁的办法
Linux
- 哪些命令和开发工具
数据库
- 什么是事务,隔离级别
- 数据库设计三范式
MySQL
- MySQL有哪几种数据类型,char、varchar、text有什么区别
- InnoDB和MyIsam区别
- MySQL主从复制原理
- InnoDB有哪几种锁,如何实现乐观锁
- 有哪几种索引,哪几种场景会命中索引
Redis
- Redis有哪几种数据结构,如何使用的
- Redis有哪些优点和缺点
- Redis线程模型
- Redis内存淘汰机制
- Redis如何做持久化
- 缓存雪崩和缓存穿透分别是什么,有什么解决方案
- 如何保证缓存与数据库双写时的数据一致性
- Redis和memchached的区别
设计模式
- 用过或知道哪些设计模式
中间件
Spring
- Ioc、AOP原理
- SpringMVC原理
MQ
- 使用消息队列好处和坏处,具体使用场景
- 常见的消息队列有哪些,如何选型
Kafka
大数据
HDFS
- HDFS块
- 架构,如何保证高可用
- 读写流程
MapReduce
- 有哪几个进程
- shuffle过程
- 例子
- 如何处理数据倾斜问题
- map数量和reduce数量如何确定
Hive
- Hive原理
Hbase
- Hbase的rowKey和列族如何设计
- Hbase和Redis使用场景
Spark
- spark程序编写步骤
- spark算子
- spark rdd过程
- shuffle过程
- 数据倾斜问题
参考文档
- 一套高级大数据开发面试题(刷起来!!!)
- 大数据面试题总结(附答案)
- Hive面试题收集
- Python面试中90%的面试题!附带最好的回答!面试宝典