0%

面试题

编程语言

Java

基础

  1. Object有哪些方法
  2. Java内存模型(Happends before)
  3. JVM运行时数据区
  4. 垃圾收集算法,垃圾收集器
  5. 类加载机制

集合

  1. HashMap底层实现,1.8之前之后有什么区别

并发

  1. synchronized和ReenterLock的区别
  2. 有哪几种线程池,各自的使用场景是什么,如何创建一个线程池
  3. volatile原理,使用场景

Python

  1. Python有哪些内置的数据结构
  2. 如何管理内存
  3. 垃圾回收机制
  4. django执行http请求的流程
  5. django内建缓存机制

网络

  1. TCP和UDP的区别
  2. TCP三次握手,四次挥手
  3. TCP可靠性原理
  4. HTTP常见状态码和含义
  5. HTTP常见的Header和功能
  6. HTTP和HTTPS的区别
  7. Cookie和Session分别是什么,有什么区别
  8. 转发(Forward)和重定向(Redirect)的区别
  9. 描述浏览器输入url到显示页面的整个过程

操作系统

  1. 进程和线程的区别
  2. 并行和并发的区别
  3. 进程间通信
  4. 生产者消费者模型
  5. 什么是协程
  6. 死锁产生的条件和解决死锁的办法

Linux

  1. 哪些命令和开发工具

数据库

  1. 什么是事务,隔离级别
  2. 数据库设计三范式

MySQL

  1. MySQL有哪几种数据类型,char、varchar、text有什么区别
  2. InnoDB和MyIsam区别
  3. MySQL主从复制原理
  4. InnoDB有哪几种锁,如何实现乐观锁
  5. 有哪几种索引,哪几种场景会命中索引

Redis

  1. Redis有哪几种数据结构,如何使用的
  2. Redis有哪些优点和缺点
  3. Redis线程模型
  4. Redis内存淘汰机制
  5. Redis如何做持久化
  6. 缓存雪崩和缓存穿透分别是什么,有什么解决方案
  7. 如何保证缓存与数据库双写时的数据一致性
  8. Redis和memchached的区别

设计模式

  1. 用过或知道哪些设计模式

中间件

Spring

  1. Ioc、AOP原理
  2. SpringMVC原理

MQ

  1. 使用消息队列好处和坏处,具体使用场景
  2. 常见的消息队列有哪些,如何选型

Kafka

大数据

HDFS

  1. HDFS块
  2. 架构,如何保证高可用
  3. 读写流程

MapReduce

  1. 有哪几个进程
  2. shuffle过程
  3. 例子
  4. 如何处理数据倾斜问题
  5. map数量和reduce数量如何确定

Hive

  1. Hive原理

Hbase

  1. Hbase的rowKey和列族如何设计
  2. Hbase和Redis使用场景

Spark

  1. spark程序编写步骤
  2. spark算子
  3. spark rdd过程
  4. shuffle过程
  5. 数据倾斜问题

参考文档

  1. 一套高级大数据开发面试题(刷起来!!!)
  2. 大数据面试题总结(附答案)
  3. Hive面试题收集
  4. Python面试中90%的面试题!附带最好的回答!面试宝典