面试复习整理

JAVA

一. Java 集合

资料:

  1. Java 集合学习指南
  2. Java NIO 系列教程

常见问题:

  1. ConcurrentHashMap的实现实现原理,是如何实现高并发和同步的探索 ConcurrentHashMap高并发性的实现机制
  2. 集合类中线程安全的集合有哪些(HashTable,Vector),HashTable如何实现同步

二. NIO

  1. NIO指南

常见问题:

  1. NIO主要用来解决什么问题
  2. NIO的实现原理已经高效的原因

三. Spring

  1. 69道Spring面试题和答案
  2. Spring面试问答Top 25
  3. Spring 中的controller是不是线程安全的?Struct2 中的action是不是线程安全的

常见问题:

  1. Spring IOC和AOP的实现原理
  2. 为什么要使用Spring(使用Spring框架有什么好处),原来这个问题早之前阿里就面试过,参考别人的回答

四. 设计模式

  1. 设计模式相关面试题目
  2. 20个设计模式和软件设计面试问题
  3. 设计模式Java版 GIT Book
  4. 设计模式

常见问题:

  1. 你常用的设计模式
  2. 代理模式和装饰起模式的区别

五. JVM

  1. 深入理解 Java 虚拟机

常见问题:

  1. 类的加载机制(有哪些加载器,都加载哪些类,为什么使用双亲委派的模式)
  2. 内存管理(内存分为哪几部分,都存储了什么,内存模型的设计)
  3. 何时GC
  4. 如何调优
  5. 遇到OOM如何处理

六. 分布式AND高并发

  1. 《大型分布式网站架构设计与实践》
  2. 《java并发编程实践》

常见问题:

  1. 谈谈业务中使用分布式的场景(参考)
  2. 分布式锁的实现
  3. 高并发,执行耗时短的任务,还有低并发,执行耗时长的任务,各自选取什么样的线程池会比较合理?为什么?如果业务场景是高并发,且任务耗时长时,有什么解决思路?
  4. 你是如何实现Redis集群的

七. 数据库

  1. 《mysql 性能调优与架构设计》

常见问题:

  1. 你使用过数据库优化技巧
  2. 数据库的几个同步等级
  3. mysql索引结构

八. 线上问题排查

常见问题:

  1. 说说你的一个线上难题排查的经验

九.其他

常见问题:

  1. 你做过最得意的项目是什么?
  2. 项目中遇到过什么难以解决的问题,最终你是如何解决的。

最后贴几个别人总结的面试常见问题:

  1. 后端开发面试题
  2. 阿里面试回来,和Java程序员谈一谈
  3. Java 面试笔记