东方财富南京一面面经
东方财富南京春招面经
一面(40min)
1、HashMap的put方法的流程?(√)
2、JDK1.8的put方法放在链表头部还是尾部?(1.7插在头部,有死循环,1.8改成头部了)
3、解决Hash冲突的办法除了拉链法,还有啥?(探测法)
4、ThreadLocal在使用不当的时候,会发生内存泄漏,解释一下。(√)
5、gc操作对不同的引用的处理有什么区别?(√)
6、HashMap的put的树化条件?数组扩容什么时候?(√)
7、一个主线程,多个子线程,主线程拿到所有子线程的结果再继续执行,你会考虑怎么实现?(juc包下的CountDownLatch)
8、创建线程池的方式有哪些?(Executors,ThreadPoolExecutor)
9、调用Executors.newFix创建一个线程池,内存泄漏问题?(x)
10、MySQL的事务隔离级别?(√)
11、在可重复读的隔离级别下,如何解决幻读问题?(MVCC,临键锁、间隙锁)
12、SpringMVC加载一个URL的处理过程?(√)
13、Bean的作用域有哪些?(√)
14、Spring如何解决Bean的循环依赖?(x)
算法:【LC540 有序数组中的单一元素】
class Solution { public int singleNonDuplicate(int[] nums) { int n = nums.length; int low = 0; int high = n - 1; while (low < high) { int mid = low + (high - low) / 2; if ((high - low + 1) / 2 % 2 == 1) { if (nums[mid] == nums[mid - 1]) { low = mid + 1; } else if (nums[mid] == nums[mid + 1]) { high = mid - 1; } } else { if (nums[mid] == nums[mid + 1]) { low = mid + 2; } else if (nums[mid] == nums[mid - 1]) { high = mid - 2; } else { return nums[mid]; } } } return nums[low]; } }
第二天通知一面通过啦~
二面冲冲冲!
==================== 更新 ====================
二面(30min)
1、Java线程池的工作原理(√)
2、线程池execute和submit方法的区别(√)
3、内存泄漏 和 内存溢出 有什么区别(√)
4、怎么排查 内存溢出OOM(√,jstack)
5、项目中如何和数据库进行交互
6、Mabatis的一级缓存和二级缓存有什么区别(√)
7、Mabatis中$和#符号的区别,哪个可以防止SQL注入,性能对比(√)
8、Redis是单线程的,多核CPU环境下如何提升利用率?(多个实例,一主多从?一写多读?)
9、Redis中存储的数据太多了,有哪些扩容的方案(类似分库分表?)
10、使用索引遵循哪些原则(√)
11、有哪些查询会使得索引失效?(最左前缀匹配,函数操作,截断,模糊匹配等等)
12、发生 数据类型转换 索引会生效吗?(索引失效)
13、一般建立索引key不要太长,主要因素是什么(索引文件存储空间?)
14、www.baidu.com到显示界面 有哪些过程?(√)
15、一个请求从浏览器到对方机房,会经过对方的哪些设备?(有点开放,***,网关,交换机等等)
16、毕业发展
17、职业规划
没有算法。
许愿一波offer~
==================== 更新 ====================
3.14 HR面
==================== 更新 ====================
Hr面三天之后OC啦~
#面经##面试题目##东方财富#