首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-17 13:28
蚌埠坦克学院 资信评估
北京钛核互动golang服务端 一面凉经
投完会先让做一下笔试题,看他出的题挺简单的,看24年的面经也觉得挺简单的,结果一面吓哭了,算法计网操作系统数据库轮流来,好久没刷算法也是被狠狠拷打了1、自我介绍2、分别讲下栈和堆的特点和应用场景3、堆插入时间复杂度? logn是怎么来的4、堆底层怎么实现的?父节点和子节点之间有什么关系?5、口撕:有一个栈A存了多个无序整数,还有一个空栈B,要求借助栈B对无序整数排序,空间复杂度O(1)(汉诺塔问题)6、字符串子串和子序列的区别? 怎么判断A是否是B的子串? kmp算法是怎么优化时间复杂度的?(说半天结果时间复杂度都忘了7、口撕:最长公共子序列(没想起来,是多维动态规划8、讲一下你自己做的项目中...
查看22道真题和解析
点赞
评论
收藏
分享
03-16 00:19
广州大学 Java
27届双非后端求助
bg广州某双非一本27届,黑马的外卖点评和微服务都学完了,八股只背了常考的,算法的话hot100刷了50道左右,现在简历上的项目还是两个烂大街项目,黑马点评和黑马商城第一段实习今年3月初入职的,公司是浙大网新(大外包,做政府外包项目的),我参与的那个项目好像很久远了(2019年就开始做了),版本一直迭代到现在,技术栈和黑马的也很匹配,现在的工作内容也只是改改bug最近也在学agent相关内容,往大模型应用开发方向靠,但是又觉得java太卷了,怕今年秋招成炮灰。接下来要怎么走啊,是java+agent,golang,或者是测开,客户端求大佬指点,真的迷茫了,后端真的卷不过92✌ #牛客AI配图神...
点赞
评论
收藏
分享
03-05 12:07
汕头大学 测试开发
第一份实习已oc
投了200份简历,经过7次面试后,还是被cetv捞了,虽然之前就听说c厂是天坑,但想了想第一份实习就算了,干1-2月跑路算鸟,再好好准备暑假去实习
鹿LF:
这是不是猝死程序猿的那家
开工第一帖
点赞
评论
收藏
分享
03-02 20:26
湘潭大学 算法工程师
无实习加一般学历,求简历拷打
xtu大迫杰:
偶遇校友,祝校友offer打牌
点赞
评论
收藏
分享
03-15 14:43
字节跳动_TT图文_研发(实习员工)
现阶段Offer总结和TimeLine(3.12)
1. 虾皮广告搜索 Base 北京Time Line:2.23 投递2.24 一面,一面完之后几小时约二面3.2 二面,二面完之后2小时约HR面3.9 HR面3.11 OC2. 懂车帝Agent架构 Base 杭州Time Line:2.16 投递,投递之后很快约一面2.25 一面,一面完之后第二天约二面3.5 二面,二面完之后很快约HR面3.11 HR面3.12 OC3. SenseTime(商汤)AI Infra Base 北京Time Line:2.23 投递,简历评估走了很久2.28 一面,面完之后过了几天约二面3.10 二面+三面3.10 OC
我的OC时间线
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
28届实习拷打,一场面试,23个Agent问题
9743
2
...
我们为什么要做网申助手这个插件
9047
3
...
速收藏!各公司最新招聘进展!
7162
4
...
找实习两个月,工具用了一堆,最后只留下这些
5277
5
...
携程3.18Java开发一面面经
4414
6
...
字节ByteIntern剪映后端三面面经
3835
7
...
面试官视角聊聊:如何通过AI coding面试?附焚决
3809
8
...
小红书暑期一面
2846
9
...
命运换了个赛道给我发牌
2816
10
...
字节暑期实习OC
2717
创作者周榜
更多
正在热议
更多
#
跟HR说什么能被秒回?
#
10371次浏览
183人参与
#
职能管理面试记录
#
9315次浏览
44人参与
#
MiniMax求职进展汇总
#
16123次浏览
241人参与
#
春招/暑实第一面是哪家?
#
21406次浏览
240人参与
#
OPPO求职进展汇总
#
790253次浏览
5420人参与
#
你收到了哪些公司的笔试?
#
19531次浏览
110人参与
#
巨人网络春招
#
10276次浏览
164人参与
#
正在春招的你,也参与了去年秋招吗?
#
359386次浏览
2612人参与
#
一人说一个提前实习的好处
#
115279次浏览
704人参与
#
京东美团大战,你怎么看?
#
174381次浏览
883人参与
#
京东开奖
#
673683次浏览
3238人参与
#
如何一边实习一边找下家?
#
33914次浏览
247人参与
#
面试官最爱问的 AI 问题是......
#
17866次浏览
610人参与
#
你的嫡系AI是哪个?
#
4767次浏览
119人参与
#
现在入门AI应该走哪些方向?
#
4832次浏览
101人参与
#
把自己当AI,现在最消耗你token的问题是什么?
#
3319次浏览
95人参与
#
想给25届机械人的秋招建议
#
46164次浏览
246人参与
#
26届秋招公司红黑榜
#
80417次浏览
280人参与
#
阿里巴巴工作体验
#
27012次浏览
61人参与
#
实习生如何通过转正
#
130082次浏览
1477人参与
#
巨人网络工作体验
#
74275次浏览
505人参与
#
巨人网络求职进展汇总
#
190795次浏览
1228人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务