拼多多Java秋招后端一面75min

1.项目介绍
2.HashMap扩容时链表转红黑树的阈值为什么是8?退化为6的原因?
3.synchronized锁升级过程?
4.G1垃圾回收器如何预测停顿时间?Region大小如何设置?
5.volatile能否保证数组元素的可见性?如何解决?
6.ThreadLocal内存泄漏的根本原因?JDK改进方案?
7.Java 8中Stream的并行处理原理?
ForkJoinPool工作窃取机制?
8.AOS中为什么用CLH队列而不用普通链表?
9.线程池核心参数设置规则?美团动态调整方案?
10.ConcurrentHashMap的size()方法为何不精确?替代方案?
11.如何用CAS实现一个无锁栈?ABA问题如何规避?
12.CompletableFuture如何实现多个异步任务依赖执行?
13.MySOL索引失效的10种场景?最左前缀原则的底层原理?
14.十亿级订单表如何优化分页查询?
15.Redis大Key删除导致集群崩溃,如何避免?
16.Redis事务与MySOL事务的ACID区别?
17.缓存与数据库一致性方案对比?拼多多秒杀采用哪种?
18.Redis Cluster的slot迁移过程会阻塞请求吗?
全部评论
有点难度啊。不过多多居然现在还有面试啊。
点赞 回复 分享
发布于 12-09 13:10 广东
这么难吗,是校招吗
点赞 回复 分享
发布于 12-08 11:41 广东

相关推荐

12-08 12:43
已编辑
门头沟学院 Java
那些杀不死我的 反复追着我杀!!1.jvm包含哪几部分classloader:将编译(.java->.class)好的java字节码文件(.class文件) 加载到内存中(也就是运行时数据区Runtime data area 存放运行时数据(线程私有:栈 本地方法栈 pc ,进程级(也就是所有线程共享):堆 本地方法区)Execution engine 执行引擎,class文件被加载后 将指令和数据放在内存中 执行引擎负责将命令解释给os 也就是将JVM指令翻译为os指令集Native interface:本地库接口2.jvm内存结构/运行时数据区线程私有的:栈(每个方法执行时创建栈帧 存局部变量表等) 本地方法栈(为Native方法提供服务) 程序计数器(存当前线程执行的字节码指令地址)线程共享:堆(最大的内存区 存对象实例、类对象) 方法区 (存类有关的信息 静态变量等)3.说一下永久代和元空间都是对 方法区 的实现永久代:JDK7 及之前的实现,属于堆内存的一部分,有固定大小限制(通过-XX:PermSize/-XX:MaxPermSize设置),存储类元信息、常量池等,易触发永久代 OOM元空间:JDK8 及之后的实现,使用本地内存(不在堆中),大小受物理内存限制(默认无上限),仅需通过-XX:MetaspaceSize设置初始触发 GC 的阈值4.为什么jdk8要将永久代替换为元空间解决永久代OOM问题 简化类元数据管理 兼容JVM规范5.类加载过程加载:通过类全限定名获取字节码流,将字节码转化为方法区的类元数据,同时在堆中生成Class对象验证:确保字节码符合 JVM 规范(如文件格式验证、语义验证),防止恶意字节码破坏 JVM 安全准备:为类的静态变量分配内存并赋默认值(如 int 赋 0、对象赋 null),不执行赋值语句(赋值在初始化阶段)解析:将常量池中的符号引用替换为直接引用(如类、方法的内存地址),该阶段可延迟到初始化后执行。初始化:执行<clinit>方法(静态变量赋值 + 静态代码块),触发时机是 “主动使用”(new 对象、访问静态成员、反射、初始化子类、主类),且每个类仅初始化一次6.类加载机制(双亲委派制)1类加载器收到加载请求  -> 2将请求委托给父加载器,一直向上委托,直到启动类加载器 -> 3启动加载器检查是否能加载这个类,能则使用当前加载器,否则向下传递 ->4重复步骤3 如果找不到 class not foundJVM 默认类加载器层级:启动类加载器(Bootstrap)→扩展类加载器(Ext)→应用程序类加载器(App)→自定义类加载器7.why双亲委派保护核心类库(如String由启动类加载器加载,避免自定义类篡改替换)防止类重复加载8.自定义类加载器需要注意什么重写findClass方法(not loadClass,避免破坏双亲委派)9.双亲委派模型有哪些破坏场景 为什么要破坏Tomcat的WebAppClassLoader:Tomcat 为每个 Web 应用创建独立类加载器,优先加载应用内的类(而非委托父类),目的是隔离不同 Web 应用的类(防止不同应用的同包同类冲突)JDBC 的 SPI 加载:JDBC 的核心接口java.sql.Driver由启动类加载器加载,但具体实现(如 MySQL 驱动)在第三方包,启动类加载器无法加载,因此 DriverManager 通过线程上下文类加载器(破坏双亲委派)加载实现类(可能会让详细说一下SPI机制一些热部署实现:自定义类加载器加载更新后的类10.类卸载条件类所有实例被完全回收 类加载器被完全回收 Class对象无任何引用(FullGC时发生11.介绍一下gc机制涉及对象可回收判定、垃圾收集算法、分代收集模型、垃圾收集器、GC 触发时机等维度(问这么大 吟唱启动12.常见gc算法标记-清除,标记-复制,标记-整理,分代收集13.介绍一下CMS和G1(1)CMS 收集器(老年代专用)核心流程:初始标记(STW,标记 GC Roots 直接关联对象)→并发标记(无 STW,遍历引用链)→重新标记(STW,修正并发标记的遗漏)→并发清除(无 STW,清理可回收对象)优点:并发收集,STW 时间短,适合低延迟场景缺点:产生内存碎片、CPU 消耗高(并发阶段占用 CPU)、依赖老年代空间预留(易触发 Full GC)(2)G1 收集器(全堆收集)核心流程:将堆划分为多个大小相等的 Region,包含新生代 Region 和老年代 Region;流程为初始标记→并发标记→最终标记→筛选回收(STW,优先回收垃圾多的 Region)优点:兼顾吞吐量和延迟、可预测 STW 时间(通过-XX:MaxGCPauseMillis设置)、无内存碎片(回收时整理 Region)缺点:内存占用高(维护 Remembered Set)、小内存场景下性能不如 CMS14.jvm如何判断对象是可回收的早期方案引用计数法(无法解决循环引用问题)可达性分析算法判定对象是否不可达,结合引用类型细分可回收时机,finalize 机制完成最终判定15.能否将对象分配在栈上jvm针对“逃逸”做了优化分析对象的作用域是否逃出方法 / 线程,若逃逸则可直接分配在栈上 无需gc16.jvm调优核心思路是什么监控 分析 参数调整 验证17.一般会调整哪些jvm参数堆大小:-Xms2g -Xmx2g(初始堆 = 最大堆,避免堆动态扩展的开销)新生代大小:-Xmn512m(新生代占堆的 1/4~1/3,过小会导致对象提前进入老年代)Survivor 比例:-XX:SurvivorRatio=8(Eden:S0:S1=8:1:1,保证新生代对象有足够空间存活)晋升老年代年龄:-XX:MaxTenuringThreshold -XX:InitialTenuringThresholdGC 收集器:-XX:+UseG1GC(默认推荐,兼顾吞吐量和延迟)、-XX:+UseZGC(低延迟场景)GC 日志:-XX:+PrintGCDetails -Xloggc:gc.log(输出 GC 日志用于分析)元空间:-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m(限制元空间大小,避免元空间 OOM)18.Jvm调优经验《没有经验!!》(回去等通知吧19.内存泄漏和OOM的区别?如何排查(1)内存泄漏:对象已无业务意义,但仍被引用(如ThreadLocal......),导致无法被 GC 回收,长期积累会引发 OOM① jmap -dump:format=b,file=heap.hprof导出堆快照;② MAT分析快照,定位 “无法回收的大对象” 和 “持有其引用的 GC Roots ③结合 Arthas 的jvm/heapdump命令定位泄漏代码(如静态 Map 未清理)(2)OOM:JVM 内存不足(如堆 / 元空间 / 栈超出上限),无法为新对象分配内存,直接抛出 OOM 异常① 看 OOM 类型(堆 OOM / 元空间 OOM / 栈 OOM)② 堆 OOM 分析对象分布(是否大对象过多) 元空间 OOM 检查类加载数量(是否频繁动态生成类) 栈 OOM 检查递归深度或线程数20.线上OOM问题如何排查21.如何分析gc日志22.线上频繁FullGC如何排查23.讲一下对jvm的理解(太大了 上文内容挑一些吟唱24.jmmJava Memory Model Java 内存模型,Java 虚拟机规范中定义的一种抽象内存模型,并非物理内存的实际布局,其核心目标是解决多线程环境下的原子性、可见性、有序性问题,为多线程编程提供内存访问的一致性规则欢迎佬赐教上辈子🔪👨放🔥 这辈子十月(底)秋招!!
查看23道真题和解析
点赞 评论 收藏
分享
从年头开始,就一直在忙忙碌碌,背八股,投简历,找实习。我人生的第一场面试是腾讯的实习岗面试,大概是三月份吧,那时候我lc几乎就没怎么刷,八股也是被的稀稀拉拉。一上来面试官还没让做自我介绍就甩了五道编程题给我做,但我一道都不会做,他没有开摄像头,我看着空白的函数段和在屏幕中那个窘迫的我,手心一直在冒汗,过了大概25分钟,他问我遇到了什么问题,我说“不好意思面试官,这里面的题,我哪一道都没有思路”就这样,我说完本次面试唯一的一句话后,结束了这场面试,关闭会议后我坐在电脑屏幕前发呆了很久,其实也没有感到难过,只是大脑一片空白后面也陆陆续续收到其他的一些面试,然后我不知道我哪来的自信,我就偏偏要去大厂,投递的全是叫得上名儿的大厂,结果不是笔试没过就是面试中答不上来,但是后面所有的面试官都很好,会耐心的指出我的不足或者可以改进的地方,让我每次面试后都有所进步。到了四月末,为了不拖我秋招的进度,我在boss上也开始投递一些中厂,然后顺利地拿到了offer,但我清楚的知道,我不属于那里,我不是没有资格去更高的平台,只是我还没有准备好而已。五月份我一个人从佛山出发,坐动车到了深圳这座城市,租到了满意的房子,买了一口小电锅,开始我的实习生活。深圳真的很奇幻,一边是密密麻麻的城中村,回家走在路上感觉能被电鸡创死,一边是高楼耸立的CBD,全是英文牌坊的商场,感觉每一次出地铁口都是在开盲盒。我开始逐渐适应一个人的生活,一个人自己给自己做饭,一个人吃烤肉,无聊的时候一个人去唱k,去逛展,甚至用dy开游戏直播,但有时候也会半夜emo躺床上在某个瞬间觉得自己咋这么惨入职第一天,看到自己工位上挂着“前端开发实习生-XXX”的时候,有一种不真实的感觉,我咋就开始上班了,像小孩儿装大人一样,第一个月收到工资还觉得哇撒好多,后面就在想快快给我涨工资。整个实习大概持续了三个月半吧,这里非常感谢我的mt,他不仅制定了简而有序的培养方案,还在工作与生活上给予了我非常多的支持,最开始的一个月,那个规划表里面真的是按天为单位去罗列我要干什么的,我完成一项就在上面打一个勾然后mt帮我去检验成果,后面他就慢慢放手,提醒我要开始进行思维的转换,要开始学着主动,自己去沟通,有风险只要及时暴露给他,他帮我兜底。这段时间我真的成长非常快,不仅仅是敲代码,像业务流程,技术选型,排查问题,遇到需要跨团队解决问题的能力都有所提升,到后面我好像就是一个“正式员工”了,干的还算不错,+2说如果转正要给我涨工资。mt经常与我one one一些我在工作上暴露的一些问题和他看到我进步的地方,真的是亦师亦友,从入职欢迎的那一顿饭到最后我离职欢送的那一段饭,前前后后我的mt请我吃了得五六顿饭了,平日也是带着我和前端同事一起吃饭,希望我能够在大家面前多刷刷脸,告诉我同事之间的关系也很重要,他忙的时候会给我发消息给我推荐哪里好吃。mt最后一次跟我one one就是我提离职准备秋招了,他希望我能够留下来,问我的意愿是怎么样的。“我还是说想去到一个更好的平台发展”他笑着点点头,和我们最后一顿饭碰杯一样说道“预祝你顺利拿到大厂offer,前程似锦”在公司的最后一天晚上,mt帮我记录了我在公司的最后几个瞬间,拍了好多照片,我带着这段回忆和经历重返了校园不知道大家有没有这种感觉 ,实习或者工作后回到学校会觉得不真实,好像自己已经离开了很久了不再属于这里了,外面被拷打了一番感觉岁月静好哈哈,回来去测mbti,从i/enfp变成了esfp?所以本就持怀疑态度的我再也信这玩意儿了。短暂歇了一段时间就开始准备秋招了,诚实讲相比于准备实习,秋招的整个阶段都比较浮躁,不知道是八股滚了一遍又一遍的原因还是时间线确实太长了,面试前其实不想做太多的复习。但是心态上就比实习那时候更加的平和,能过就过,不过拉倒,基本上有面试的中大厂一面都可以过,就是在二面上栽跟头。说实话秋招除了能力真的挺看运气的,看合不合面试官眼缘,问的问题是不是刚刚好都会答,但是越努力越幸运嘛,还是得在每次面试后总结面经,然后相应得拓宽自己的知识范围。期间加了几个秋招群,发现应聘大厂的真的是人才扎堆,硕士满天,92横飞,很担心最后横向自己的履历比不过别人。面试期间比较抓马的一幕是,我携程(上海)已经hr面后泡了1个月了,然后我在面哈啰的时候一个021(上海)开头的电话打过来,我以为是oc电话,但是又出于对面试官的尊重没有马上接听,面试结束后赶紧打了过去,结果是之前在boss上面投递的另外一家公司的笔试提醒......好在几天后携程真的打过来了,真是命运捉弄秋招人,没想到是秋招的第一家面的公司最后给到了offer,这时候已经接近12月了,终于是松了口气结束了秋招。最后总结一下吧,感觉写到这里回头看写的就像流水账,其实从选方向到实习到秋招,我非常感谢我坚持了我自己认为对的事情,身边没有一个同学选择前端,但是我觉得用户能直接与我做的界面流畅交互让我觉得有成就感,我也喜欢好看的东西,我乐意与UI打交道,我选择了。对于我拒绝了实习转正,别人也不明白明明待遇还不错为什么还要离开,我选择了。在我实习和秋招在大厂面试吃瘪的时候,有时会收到一些质疑,我选择继续,实习不行秋招,秋招不行春招。希望在未来,我也能坚持自己的想法,大步向前。
牛客80849854...:看完了,真不容易夸夸自己吧太棒了您
2025年终总结
点赞 评论 收藏
分享
评论
6
26
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务