面试问题总结(Java工程师 20190301)

写在前面

今天是我来杭州找工作后参加的第一次现场面试,也算是工作以来第一次正式的技术面试,超级超级紧张!两个面试官貌似都是做中间件和数据库编程方向的,问的很多我都不太擅长,两轮下来四个字总结那就是生无可恋。今天凭记忆总结一下,调整心态继续征程吧!

问题整理

一、算法

  1. 代码实现二叉树的数据结构。
  2. 若二叉树是XX(画了一个),前序遍历是什么?如何代码实现?(写了个递归)还有什么其他的实现方式?

二、数据库

  1. 写SQL语句。有一个表三个字段“姓名”、“科目”、“成绩”,写一个查询语句查出至少三科成绩为90分以上的学生姓名。
  2. 有A和B两个表,join后会有多少种结果,SQL怎么写?
  3. 数据库三范式是什么?
  4. ER图。
  5. 索引。
  6. 事务是什么?事务的特征是哪些,如何理解?四种事务隔离级别是什么?如何理解?四种隔离级别分别会发生什么情况?在平时应该如何选择?
  7. 死锁是什么?引发死锁的情况。四个条件分别是什么,如何理解?如何处理死锁?
  8. 如果发现一条SQL查询语句执行时间很长,应如何排查解决?
  9. 在业务中价钱字段用什么数据类型?
  10. 数据库主从复制的原理?为什么用主从复制,解决了什么问题?
  11. 数据库的锁是怎么实现的。

三、Redis

  1. 持久化的方式
  2. 是单线程的吗?
  3. 在项目中用的是Redis集群吗?

四、Java

  1. ThreadLocal是什么?什么时候会选择存在ThreadLocal中?为什么?
  2. 确保线程安全的方法有哪些?
  3. synchronized加在静态方法上和非静态方法上区别是什么?
  4. 想要实现下单后30分钟未支付关闭订单,如何实现?(我说了定时任务,面试官说还有其他方式吗?大概是想要问Timer类吧?)
  5. 什么是原子操作?
  6. 线程之间如何共享数据?
  7. CountDownLatch和CyclicBarrier分别是什么?
  8. synchronized和ReentrantLock的区别?ReentrantLock叫可重入锁,可重入是什么意思?
  9. java有哪些Collection?
  10. 什么时候用数组,什么时候用ArrayList?
  11. 异常处理机制:Throwable、Exception、Error的关系。

五、Spring相关

  1. IOC是什么?
  2. Bean的生命周期
  3. 如果一个jar包过于老旧,maven库上没有,如何在springboot中使用?(大概是这意思,然而我并不知道)
  4. springboot是什么?为什么用springboot?

六、其他

  1. 三层架构和mvc架构的区别。
  2. 当你走在马路上,要去坐公交车,发现要坐的公交车从你旁边经过,你会怎么做?(这是道智力题吗?黑人问号脸?)

七、秒杀场景

  1. 分布式Session是如何实现的?
  2. 如何优化?除了分流和加缓存,还有哪些思路?
  3. 超卖问题

八、职业规划

  1. 自己的职业规划是什么?
  2. 平常通过什么方式提升技术能力

九、简历上项目的各种问题

总结

面试官除了问是什么,更多的是想知道我对这些的理解、实现原理和实际应用,也确实暴露出自己很多问题,最后就是一种被问蒙了的状态。坦然接受结果,继续努力吧!

猜你喜欢

转载自juejin.im/post/5c7a422ef265da2d84109e20