帆软 后台研发面经
首先感谢帆软给了我这一次机会。
关于我的时间线:
- 03.15 投递简历
- 03.19 完成笔试
- 03.25 下午4点 进行的面试
- 4月初 收到offer通知
整个时间跨度确实挺长的,但也感谢最后还是收到了offer。(毕竟找工作的过程,真的很艰难)
我只有一面技术面,时长 40min。
- 自我介绍
- 蓝桥杯是干什么(自我介绍里面提到了,我参加的是算法,Java大学A组)
- 简历里面的项目(好好准备,回答的时候要有条理)
- Spring 的 IOC 和 AOP
- 如何通过一个字符串获得对象的(反射,我当时答 Spring IOC 可以以 byName 或者 byType 的方式从容器中获取,class.forName)
- Java 的 JDK 动态代理和 CGLib 动态代理的差异(回答得不太好,一直都没太去关心 CGLib 动态代理)
- 类被 final 修饰还可以使用动态代理吗?
- 数据库的索引
- B+ 树和 B 树有什么差异,MySQL 为什么要选择 B+ 树?
- 前面项目里面,有用到数据库连接池吗?讲一讲数据库连接池。
- 讲一讲 HashMap
- 如何解决 Hash 冲突的
- HashMap 可能出现的环形链表问题知道吗?(这个是我的 lucky problem,jdk1.7 头插,resize 时可能会出现环形链表问题)
- 红黑树有什么优点
- 为什么要用红黑树,不用普通的二叉查找树?(讲了普通的二叉查找树 和 AVL 树可能有的问题)
- 红黑树怎么保证自平衡?
- 在一个多线程的场景下,假设非要使用 map,有什么解决方案?
- 乐观锁与悲观锁
- CAS了解吗?
- CAS假设发现不一致会发生什么操作?
- Java 设计模式知道哪些?
- 单例模式怎么实现的?【这里优点嘴瓢,饿汉和懒汉讲反了haha】、
- 懒汉式为什么要加双重锁?
- 为什么要加 volatile 关键字?
- 工厂模式
- Java 的垃圾回收
- Minor GC 和 Full GC 的触发机制有什么区别?
- 一个场景:线上的 Tomcat 单体应用,发现它一天要 Full GC 几十次,可能有哪些排查思路?
- 动态规划和贪心算法的区别
- 1,5,11 ,数字可以重复,想得到15,且使用的数字最少,用贪心的思路和用动态规划的思路是什么?
- 二叉树的深度优先和广度优先遍历
- 为什么有这三种遍历方式,这三种有什么差别?
- 中序是左 中 右,为什么不是 右 中 左?
- 假如内存空间比较小,使用广度还是深度遍历?
- 问算法,先问了我做没做过上梯子的问题,我回答做过,又改了一个问题(建议诚实回答)
- 1-99,不重复,随机拿掉一个数,找出拿掉的那个数
- 改成大数,比如1-1亿,怎么解决【这里应该还有几个类似的问题】。(提到了一些解决方案,出来查查,应该叫位图)
- 1-99,找出一个出现了一半以上的数
- 反问(深度方面还需要精进)
总结:整个面试体验很好,中间要是有不清楚的地方面试官会引导你接下去回答。
反问阶段,觉得也得到了理想中的回答。
希望大家都能收到心仪的offer。
一些心里话:
一开始我也被考核给吓到,但机会是自己把握的,不管去到哪里,都有可能被抛掉。
所以我认为,这不能够成为放弃的理由,但如果大家身上有比较多的offer,还是可以综合考虑考虑的。
以上。
2022.04.09
#面试复盘##面经##帆软软件##春招##java工程师#