Java面试贴

Java面试贴

面试方向

职位:Java开发工程师(中高级)

面试范围

  1. Java基础、集合、多线程、JVM
  2. 算法 排序算法 树结构 栈/队列 链表/数组
  3. web框架 Spring、MyBatis
  4. 中间件 redis、mq
  5. 数据库mysql 优化、引擎、索引
  6. 项目

Java基础

书籍推荐:《码出高效》孤尽 鸣莎 《深入理解Java虚拟机》周志明

  1. StringBuffer的结构及如何扩容。
  2. ArrayList的特点和LinkedList的区别,LinkedList的存储结构,实现以下翻转。
  3. HashMap的数据结构,如何处理hash冲突,如何扩容,多线程的情况下会出现什么问题,如何解决,1.8做了哪些更新。
  4. 线程的状态有哪些,什么情况会出现死锁?线程池是什么,有什么好处,有哪几种类型,新建线程池的参数有哪些,简单讲一下各自的作用和已经什么时间会触发使用?
  5. 垃圾回收有哪几种算法各自有什么优缺点,你熟悉的垃圾回收器有哪些各自的优缺点是什么?有没有进行过调优,如何监控线上的GC情况,如何查看进程的堆栈信息。

算法

书籍推荐:《算法 第四版》 谢路云 译

  1. 写出一种排序算法对数组进行排序(冒泡除外)
  2. 二分查找代码实现
  3. 二叉树中序遍历实现
  4. more…

WEB框架

  1. 谈一下你对Spring的认知
  2. 说一下Spring的IOC的作用,有没有遇到过循环注入,怎么解决?
  3. Spring Aop的作用,你在项目中用到了哪些?
  4. Spring事务的传播性及隔离级别
  5. Spring的隔离级别

Redis

书籍推荐:《Redis深度历练》钱文品

  1. 有哪些数据结构,set的存储结构有了解吗?
  2. 项目中使用redis做了哪些事情?
  3. redis和memcache有什么优缺点?为什么使用redis?
  4. redis的部署方式有哪几种,如何进行持久化,集群如何进行数据同步?

mq

  1. 说下你对mq的理解,使用的场景。
  2. mq的组件有哪些?rocketMq的有序消息如何实现?

数据库

书籍推荐:《高性能MySql》

  1. mysql的datetime和timestamp有什么区别?
  2. mysql有没有进行过调优,如何调优的?
  3. mysql的索引命中规则?
  4. mysql的隔离级别?幻读是指什么?
  5. mysql存储引擎的种类有哪些,innodb和myIsam有什么区别?
  6. 基本sql书写

项目

  1. 说一下你项目中的秒杀从哪些方向进行了优化处理?
  2. 画一下项目的架构设计
  3. 项目中遇到的最有挑战性或者你认为最有意思的地方
  4. 自由发挥
lemon wechat
欢迎大家关注我的订阅号 SeeMoonUp
写的不错?鼓励一下?不差钱?