写在前面
今天是我来杭州找工做后参加的第一次现场面试,也算是工做以来第一次正式的技术面试,超级超级紧张!两个面试官貌似都是作中间件和数据库编程方向的,问的不少我都不太擅长,两轮下来四个字总结那就是生无可恋。今天凭记忆总结一下,调整心态继续征程吧!java
问题整理
1、算法
- 代码实现二叉树的数据结构。
- 若二叉树是XX(画了一个),前序遍历是什么?如何代码实现?(写了个递归)还有什么其余的实现方式?
2、数据库
- 写SQL语句。有一个表三个字段“姓名”、“科目”、“成绩”,写一个查询语句查出至少三科成绩为90分以上的学生姓名。
- 有A和B两个表,join后会有多少种结果,SQL怎么写?
- 数据库三范式是什么?
- ER图。
- 索引。
- 事务是什么?事务的特征是哪些,如何理解?四种事务隔离级别是什么?如何理解?四种隔离级别分别会发生什么状况?在平时应该如何选择?
- 死锁是什么?引起死锁的状况。四个条件分别是什么,如何理解?如何处理死锁?
- 若是发现一条SQL查询语句执行时间很长,应如何排查解决?
- 在业务中价钱字段用什么数据类型?
- 数据库主从复制的原理?为何用主从复制,解决了什么问题?
- 数据库的锁是怎么实现的。
3、Redis
- 持久化的方式
- 是单线程的吗?
- 在项目中用的是Redis集群吗?
4、Java
- ThreadLocal是什么?何时会选择存在ThreadLocal中?为何?
- 确保线程安全的方法有哪些?
- synchronized加在静态方法上和非静态方法上区别是什么?
- 想要实现下单后30分钟未支付关闭订单,如何实现?(我说了定时任务,面试官说还有其余方式吗?大概是想要问Timer类吧?)
- 什么是原子操做?
- 线程之间如何共享数据?
- CountDownLatch和CyclicBarrier分别是什么?
- synchronized和ReentrantLock的区别?ReentrantLock叫可重入锁,可重入是什么意思?
- java有哪些Collection?
- 何时用数组,何时用ArrayList?
- 异常处理机制:Throwable、Exception、Error的关系。
5、Spring相关
- IOC是什么?
- Bean的生命周期
- 若是一个jar包过于老旧,maven库上没有,如何在springboot中使用?(大概是这意思,然而我并不知道)
- springboot是什么?为何用springboot?
6、其余
- 三层架构和mvc架构的区别。
- 当你走在马路上,要去坐公交车,发现要坐的公交车从你旁边通过,你会怎么作?(这是道智力题吗?黑人问号脸?)
7、秒杀场景
- 分布式Session是如何实现的?
- 如何优化?除了分流和加缓存,还有哪些思路?
- 超卖问题
8、职业规划
- 本身的职业规划是什么?
- 日常经过什么方式提高技术能力
9、简历上项目的各类问题
总结
面试官除了问是什么,更多的是想知道我对这些的理解、实现原理和实际应用,也确实暴露出本身不少问题,最后就是一种被问蒙了的状态。坦然接受结果,继续努力吧!面试