珠海小厂java后端实习面经(已OC)
问:ArrayList底层
答:基于数组实现,查询时间复杂度 0(1),插入O(n),有扩容机制,扩容到原长度 1.5 倍,扩容先创建新数组然后移动转移数据。
问:hashCode 和equals 区别
答:hashCode是对象唯一哈希码,equals是通过比较对象成员变量值是否相等。
(其实hashCode可能因为哈希冲突不唯一,Object的equals是比较地址,只是大部分类会重写为比较内容,==是比较地址)
问:StringBuilder和 StringBuffer 区别
答:在字符串拼接上性能有差异
(其实应该答线程安全,Buffer是线程安全的所以性能上会有额外开销)
问:如何保证并发安全
答:简单变量可用 CAS或原子类保证数据一致性,复杂业务通过加锁保证线程安全
问:ArrayList线程安全吗
答:不安全,应该使用 ConcurrentHashMap 等线程安全集合类,底层用 AQS 实现
问:Mysql事务隔离级别和相应的问题
答:读未提交、读已提交(RC)、可重复读(RR)、串行化,默认可重复读,通过加间隙锁避免幻读
问:索引底层
答:基于B+树实现,双向链表维护的多叉查找树,前后指针方便范围查询,节点存主键实现回表查询
问:什么情况导致索引失效
答:不符合最左前缀原则,like、!=、isnull 等等。
(其实还有函数与运算操作也会导致索引失效)
问:Redis 分布式锁底层
答:忘记了
(其实是setnx,真忘了)
问:JVM内存结构
答:程序计数器、方法区、常量池、堆和栈
问:垃圾回收算法
答:标记清除法(会产生内存碎片),复制法(需多一倍空闲空间,无内存碎片)。
问:讲讲AOP
答:面向切面编程,用来增强方法,通过找到切入点,选择通知类型增强方法,通过动态代理,调用动态代理的方法
问:Spring Bean 生命周期
答:不会
(没背Spring八股)
问:超卖问题
答:乐观锁解决,原理类似 CAS,先检查优惠券数量是否与原数量一致,再进行减一操作,但高并发下可能成功率会很低。
(其实优化了不需要一致,只要剩余数大于0都会扣库存)
问:消息队列推送消息如何保证不重复
答:生产者去重,发送消息前筛掉发送过的消息
(其实RocketMQ自身具备消息去重功能,通过生产者组内的唯一标识和消息的全局唯一标识,在 Broker 端对消息进行去重处理)
最后经典问我27怎么就找实习学校同意吗,然后问我福州的为什么选择投珠海,然后就跟我说结束了让我等通知
估计是挂了,答的太烂了,没岗位介绍也没反问机会,还跟我强调3天没回复就是落选了
准备太不充分了,一定要把自己简历吃透,被自己写的东西问倒可太丢脸了
————————————————
二编
后续经理二面,讲了公司大致业务和实习生安排。
公司感觉大概是面向海外的外包业务,招实习生进来一般不会接触公司业务,是几个人的实习生小团队跟着ld研究课题进行技术迭代,后面有个业务是类似社区的可能会让我接触,ld说跟我的黑马点评有点像,想把我往那方面培养?
原本我这么早就投暑期日常实习是想着熟悉面试流程,面着玩,结果OC了,我想着没法立刻过去,想拒掉的,结果经理很包容,跟我说可以期末考后再去
。
那我后续可能还是接着面,拿到offer我就摊牌说暑假才能去,最后选一个最合适的吧,后续应该会开个帖子来问下大家意见一起选一下
答:基于数组实现,查询时间复杂度 0(1),插入O(n),有扩容机制,扩容到原长度 1.5 倍,扩容先创建新数组然后移动转移数据。
问:hashCode 和equals 区别
答:hashCode是对象唯一哈希码,equals是通过比较对象成员变量值是否相等。
(其实hashCode可能因为哈希冲突不唯一,Object的equals是比较地址,只是大部分类会重写为比较内容,==是比较地址)
问:StringBuilder和 StringBuffer 区别
答:在字符串拼接上性能有差异
(其实应该答线程安全,Buffer是线程安全的所以性能上会有额外开销)
问:如何保证并发安全
答:简单变量可用 CAS或原子类保证数据一致性,复杂业务通过加锁保证线程安全
问:ArrayList线程安全吗
答:不安全,应该使用 ConcurrentHashMap 等线程安全集合类,底层用 AQS 实现
问:Mysql事务隔离级别和相应的问题
答:读未提交、读已提交(RC)、可重复读(RR)、串行化,默认可重复读,通过加间隙锁避免幻读
问:索引底层
答:基于B+树实现,双向链表维护的多叉查找树,前后指针方便范围查询,节点存主键实现回表查询
问:什么情况导致索引失效
答:不符合最左前缀原则,like、!=、isnull 等等。
(其实还有函数与运算操作也会导致索引失效)
问:Redis 分布式锁底层
答:忘记了
(其实是setnx,真忘了)
问:JVM内存结构
答:程序计数器、方法区、常量池、堆和栈
问:垃圾回收算法
答:标记清除法(会产生内存碎片),复制法(需多一倍空闲空间,无内存碎片)。
问:讲讲AOP
答:面向切面编程,用来增强方法,通过找到切入点,选择通知类型增强方法,通过动态代理,调用动态代理的方法
问:Spring Bean 生命周期
答:不会
(没背Spring八股)
问:超卖问题
答:乐观锁解决,原理类似 CAS,先检查优惠券数量是否与原数量一致,再进行减一操作,但高并发下可能成功率会很低。
(其实优化了不需要一致,只要剩余数大于0都会扣库存)
问:消息队列推送消息如何保证不重复
答:生产者去重,发送消息前筛掉发送过的消息
(其实RocketMQ自身具备消息去重功能,通过生产者组内的唯一标识和消息的全局唯一标识,在 Broker 端对消息进行去重处理)
最后经典问我27怎么就找实习学校同意吗,然后问我福州的为什么选择投珠海,然后就跟我说结束了让我等通知
估计是挂了,答的太烂了,没岗位介绍也没反问机会,还跟我强调3天没回复就是落选了
准备太不充分了,一定要把自己简历吃透,被自己写的东西问倒可太丢脸了
————————————————
二编
后续经理二面,讲了公司大致业务和实习生安排。
公司感觉大概是面向海外的外包业务,招实习生进来一般不会接触公司业务,是几个人的实习生小团队跟着ld研究课题进行技术迭代,后面有个业务是类似社区的可能会让我接触,ld说跟我的黑马点评有点像,想把我往那方面培养?
原本我这么早就投暑期日常实习是想着熟悉面试流程,面着玩,结果OC了,我想着没法立刻过去,想拒掉的,结果经理很包容,跟我说可以期末考后再去
那我后续可能还是接着面,拿到offer我就摊牌说暑假才能去,最后选一个最合适的吧,后续应该会开个帖子来问下大家意见一起选一下
全部评论
你是我今天在牛客见过最美的女孩
好多八股,你也好厉害
牛逼
你是我见过在牛客见过最美的女孩
你是我见过在牛客见过最美的女孩
你是我见过在牛客见过最美的女孩
珠海哪里
好厉害


茶老师太强了
你是我见过在牛客见过最美的女孩
这些东西搁哪里学啊
佬是哪里投的啊
为什么我一个面试也没有
你是我在牛客见过最美的女孩
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
查看2道真题和解析 点赞 评论 收藏
分享
2025-11-29 18:48
福州大学 golang 点赞 评论 收藏
分享
