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

写在前面

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

问题整理

1、算法

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

2、数据库

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

3、Redis

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

4、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的关系。

5、Spring相关

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

6、其余

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

7、秒杀场景

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

8、职业规划

  1. 本身的职业规划是什么?
  2. 日常经过什么方式提高技术能力

9、简历上项目的各类问题

总结

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

相关文章
相关标签/搜索