Java 双非硕 无实习 男
boss上沟通120+,官网投了150家,90%投的成都中小厂,除接受的offer,进面12家,oc和gg各一半,最猛的一天面试3场+笔试2场
秋招中途经历了亲人去世,也撞上论文返修,哭了好多次,不面试之后精神面貌真的好了很多
最后去了同程,base成都,分享一下面经,祝各位双非兄弟也早日脱离苦海
#晒一晒我的offer#
一面 9-27
- 项目有哪些板块
- 遇到过什么难点?
- 项目里的线程安全和多线程
- JDK用的哪个版本?(JDK17)
- 和JDK8,11比,有什么新功能
- 了解过新发布的JDK21吗?
- 一个对象的生命周期
- 对象实例化后一定在堆里吗?
- 只可能在栈或者堆里吗?怎么分析?
- HashMap怎么删除一个元素
- 直接remove会怎样?
报错:java.util.ConcurrentModificationException
原因:HashMap维护一个modCount变量,迭代器维护expectedModCount对象,调用remove的时候,modCount++,迭代器中计数不变,下一次迭代器调用next()的时候,两个计数值不等,就报错
解决:用迭代器的remove;用ConcurrentHashMap
- 多线程下HashMap会出现的问题?
- 怎么解决?
- sychronized和ReentrantLock的区别
- 有了解之前ReentranLock的底层吗?
- 为什么改成用synchronized了?
锁升级
- Redis和MySQL的数据一致
- 什么时候写入缓存?
- 缓存更新的时候怎么处理
- 如果删除缓存,那大量请求不就压垮数据库了?怎么办
- 消息队列如何保证消息不丢失
- 你的优点和缺点
- 反问
二面 10-10
- 一大堆常见八股,都不难
- 项目
- 简单算法题x3
- 翻转字符串 (倒着遍历加入StringBuilder)
- 两数之和 (HashMap)
- 99乘法表 (双重for)
- 场景题:设计一个拦截近5分钟内访问100w次的IP地址的算法(回答的用每个IP一个队列,队列存时间戳,入队时看队头时间相差有没有5分钟,有就出队,队列长度大于100w就拦截。面试官说时间复杂度太高了,让优化,没想出来)
- 反问