首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Redamancyoo
北京邮电大学 Java
发布于北京
关注
已关注
取消关注
@代码界的小白:
面试复盘|广联达一面!!!
全程面试30min,感觉还行,聊得比较愉快。 1.自我介绍 2.问我如何获取java知识? 主要是从书中和技术官网,然后就是找一些视频,在途中遇到问题会去搜一些技术博客之类的。 3.自己看的书里面哪些印象比较深? 《MySQL技术内幕》《深入理解Java虚拟机》《Java并发编程之美》主要讲了深入理解Java虚拟机里的垃圾回收器,线程安全和锁的升级过程。 垃圾回收器 jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代) jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代) jdk1.9 默认垃圾收集器G1 主要讲一下G1,G1摒弃了分代的概念,把连续的Java堆划分为多个大小相等的独立区域,每一个Region都可以根据需要,扮演新生代的Eden空间,Survivor空间,或者老年代。每次回收优先处理回收价值最大的那些Region。可以控制stw,基于标记整理...balabala一顿说。 4.说说深入理解jvm这本书你的收获? 在看第二章的时候在OOM那块,收获就是在有些代码里需要注意一些边界条件,比如递归的时候避免Stack Overflow之类的,避免在死循环里一直new对象等。 5.线程池的相关问题? 线程池的核心参数有哪些,其中有些参数需要根据实际的业务场景去选择。 1.corePoolSize:核心线程数 核心线程会一直存活,及时没有任务需要执行。 当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理。 设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭。 2.queueCapacity:任务队列容量(阻塞队列) 当核心线程数达到最大时,新任务会放在队列中排队等待执行。 3.maxPoolSize:最大线程数 当线程数>=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务。 当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常。 4.keepAliveTime:线程空闲时间 当线程空闲时间达到keepAliveTime时,线程会退出,直到线程数量=corePoolSize。 如果allowCoreThreadTimeout=true,则会直到线程数量=0。 5.allowCoreThreadTimeout:允许核心线程超时 6.rejectedExecutionHandler:任务拒绝处理器 两种情况会拒绝处理任务:(1)当线程数已经达到maxPoolSize,切队列已满,会拒绝新任务。(2)当线程池被调用shutdown()后,会等待线程池里的任务执行完毕,再shutdown。如果在调用shutdown()和线程池真正shutdown之间提交任务,会拒绝新任务。线程池会调用rejectedExecutionHandler来处理这个任务。如果没有设置默认是AbortPolicy,会抛出异常。 ThreadPoolExecutor类有几个内部实现类来处理这类情况:(1)AbortPolicy 丢弃任务,抛运行时异常。(2)CallerRunsPolicy 执行任务。(3)DiscardPolicy 忽视,什么都不会发生。(4)DiscardOldestPolicy 从队列中踢出最先进入队列(最后一个执行)的任务。实现RejectedExecutionHandler接口,也可自定义处理器。 线程执行顺序 当线程数小于核心线程数时,会一直创建线程直到线程数等于核心线程数; 当线程数等于核心线程数时,新加入的任务会被放到任务队列等待执行; 当任务队列已满,又有新的任务时,会创建线程直到线程数量等于最大线程数; 当线程数等于最大线程数,且任务队列已满时,新加入任务会被拒绝。 6.spring解决循环依赖问题为什么使用三级缓存? 跟面试官说因为spring的设计理念😂😂😂 7.redis的使用场景 先说说自己项目里是如何使用的,然后在说一下redis的使用场景。 8.redis的缓存一致性问题 经典问题 (1)先删缓存,再更新数据库 先删除缓存,数据库还没有更新成功,此时如果读取缓存,缓存不存在,去数据库中读取到的是旧值,缓存不一致发生。 解决方案:延时双删,延时双删的方案的思路是,为了避免更新数据库的时候,其他线程从缓存中读取不到数据,就在更新完数据库之后,再sleep一段时间,然后再次删除缓存。sleep的时间要对业务读写缓存的时间做出评估,sleep时间大于读写缓存的时间即可。流程如下:线程1删除缓存,然后去更新数据库线程2来读缓存,发现缓存已经被删除,所以直接从数据库中读取,这时候由于线程1还没有更新完成,所以读到的是旧值,然后把旧值写入缓存线程1,根据估算的时间,sleep,由于sleep的时间大于线程2读数据+写缓存的时间,所以缓存被再次删除如果还有其他线程来读取缓存的话,就会再次从数据库中读取到最新值 (2)先更新数据库,再删除缓存 这个就更明显的问题了,更新数据库成功,如果删除缓存失败或者还没有来得及删除,那么,其他线程从缓存中读取到的就是旧值,还是会发生不一致。解决方案消息队列先更新数据库,成功后往消息队列发消息,消费到消息后再删除缓存,借助消息队列的重试机制来实现,达到最终一致性的效果。这个解决方案其实问题更多。 引入消息中间件之后,问题更复杂了,怎么保证消息不丢失更麻烦就算更新数据库和删除缓存都没有发生问题,消息的延迟也会带来短暂的不一致性,不过这个延迟相对来说还是可以接受的进阶版消息队列为了解决缓存一致性的问题单独引入一个消息队列,太复杂了。 其实,一般大公司本身都会有监听binlog消息的消息队列存在,主要是为了做一些核对的工作。 这样,我们可以借助监听binlog的消息队列来做删除缓存的操作。这样做的好处是,不用你自己引入,侵入到你的业务代码中,中间件帮你做了解耦,同时,中间件的这个东西本身就保证了高可用。当然,这样消息延迟的问题依然存在,但是相比单纯引入消息队列的做法更好一点。而且,如果并发不是特别高的话,这种做法的实时性和一致性都还算可以接受的。 9.问项目里的微服务都有哪些? 10.在项目中遇到的问题 总结:面试体验不错,期待二面。关于上文提到的问题,欢迎大家评论区一起交流讨论。
点赞 5
评论 6
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-12 17:57
湖南科技大学 Java
顺丰数科一面
📍面试公司:顺丰数科🕐面试时间:5.7💻面试岗位:IT研发岗❓面试问题:请先做一个自我介绍。在数字马力实习中,你遇到的最难的技术点是什么?在这个项目里遇到过生产故障吗?缓存与数据库数据不一致怎么办?Java中有哪些线程安全的类?ConcurrentHashMap的底层数据结构?除了ConcurrentHashMap,CAS还在哪里用到?数据库层有CAS吗?如何分析MySQL慢查询?binlog是什么?Canal机制?Spring Boot自动装配原理?Spring AOP的核心原理?Kafka如何保证消息可靠性和顺序性?你在AI应用方面的项目经验?从A账户转账100元到B账户,数据库层面...
查看17道真题和解析
点赞
评论
收藏
分享
05-12 14:19
浙江大学 算法工程师
C++ 面试越来越爱问什么:八股文背完了,为什么还是过不了
这两年看 C++ 面试题,有个很明显的变化:面试官还是会问基础,但已经不太满足于你把“定义”背出来。以前很多同学准备 C++,重点放在语法点、STL、几道经典手撕题上,确实能应付一部分岗位。现在不一样,尤其是后台、客户端、基础架构、自动驾驶、游戏引擎、嵌入式 Linux、量化开发这些方向,面试官更喜欢从一个基础点一路追到语言机制、工程实践和性能取舍。也就是说,C++ 八股文还得会,但只会八股远远不够。真正拉开差距的,是你能不能把“语言特性为什么这样设计”“在项目里为什么这么用”“这样写的代价是什么”讲明白。一、现在 C++ 面试的重心到底变了什么先说结论:C++ 面试不是不问基础了,而是基础问...
点赞
评论
收藏
分享
05-06 18:37
烟台科技学院 人工智能
绷不住了
只能走到这里了吗
点赞
评论
收藏
分享
04-13 16:36
成都理工大学 C++
被一个中登夸了,还有点不适应🤣
上周我老大请我们整组吃饭。他是个三十多的男的,平时话少,每天就喝美式,工位上贴着他闺女的照片。他全程没怎么说话,就问我"实习还适应吗""食堂吃得惯不""周末回不回学校"。都是些没营养的问题。我也没说啥,就"还行""挺好""一般不回"。吃到最后他突然说:"你做事挺稳的,不急。现在很多实习生不是这样。"我当时在扒饭,嗯了一声。回去的路上我才反应过来这句话什么意思。我老大他不说客套话的。他夸你"稳",那就是真觉得你稳。值不值我也不知道,反正那顿饭我吃撑了。
练习时长两年半的豹子...:
我mt请我吃的是麦当劳,还让我A自己那份
哪一刻你突然觉得实习“有...
点赞
评论
收藏
分享
05-12 10:03
首都经济贸易大学 管理咨询
884万罚单撞上反向讨薪,张涛走马上任中原银行
对于河南本地“标杆”城商行中原银行来说,2026年五一假期,注定是不安宁的。2026年4月30日,中国人民银行河南省分行一张行政处罚决定书,将中原银行再次推向了舆论的风口浪尖。据北青网财经等多家媒体报道,中原银行因为违反金融统计、反洗钱、账户管理以及网络安全等10条违法违规行为,受到警告处分并处罚金884.37万元。这是该行开业以来受到的最大罚单,再一次揭开了它在高速发展中合规缺陷的一面。而中原银行年报中披露的“反向讨薪”金额也值得关注,2025年该行追回扣发绩效薪酬达1357.15万元,这已经是它连续两年的“反向讨薪”金额超过了千万级别。罚单与讨薪,一外一内,一起描绘出了这家万亿级别的城商行...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
如何利用skill写出一份好简历
3.3W
2
...
我的人生不会完蛋的
1.4W
3
...
全网征集:实习/春招投递进度记录,最高可得20元现金!
1.1W
4
...
27双非前端一段大厂一段中厂 暑期颗粒无收
9400
5
...
离开华为一年多,说说我的真实感受
5782
6
...
2026届SRE秋招总结
5459
7
...
无敌计算机嘉豪
3936
8
...
咱们学计算机的就是什么都能干
3931
9
...
27届双非本暑期准备挂零了。说点心里话。
3498
10
...
腾讯云智流程一直卡
3133
创作者周榜
更多
正在热议
更多
#
26届春招投递记录
#
16858次浏览
118人参与
#
Vibe Coding 会干掉初级岗位吗?
#
51707次浏览
328人参与
#
我的求职总结
#
486685次浏览
6870人参与
#
美团秋招笔试
#
218937次浏览
1196人参与
#
27届实习投递记录
#
85386次浏览
906人参与
#
实习生应该准时下班吗
#
360552次浏览
1762人参与
#
职场吐槽大会
#
361458次浏览
2308人参与
#
面试常问题系列
#
311139次浏览
4803人参与
#
面试中的破防瞬间
#
1268894次浏览
11141人参与
#
我是XXX,请攻击我最薄弱的地方
#
96117次浏览
642人参与
#
拼多多工作体验
#
62800次浏览
439人参与
#
机械人还在等华为开奖吗?
#
342038次浏览
1655人参与
#
华为工作体验
#
332372次浏览
1439人参与
#
牛油的搬砖plog
#
207633次浏览
1337人参与
#
什么专业适合考公
#
73486次浏览
476人参与
#
AI Coding实战技巧
#
32081次浏览
400人参与
#
实习工作,你找得还顺利吗?
#
597387次浏览
6758人参与
#
求职遇到的搞笑事件
#
192930次浏览
962人参与
#
运营每日一题
#
147704次浏览
981人参与
#
小厂实习有必要去吗
#
95219次浏览
453人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务