时隔一年半,我,一个卑微的java后端菜鸡,又来写面经了


京东,百度,高德,滴滴,快手,字节,美团,百度,网易等大厂面试经验

前言:

  • 本次面试持续了整整四周,密度非常大,平均每天四家,身心俱疲,如果不是时间紧迫建议不要把面试安排得这么密集
  • 八股文虽然很多没什么用,但是该背还得背
  • 每家的自我介绍和离职原因部分我就省略了~
  • 关于面试技巧方面和我的答案可以关注我后台私信提问

算法和数据结构不是短时间就能练成的,虽然后端的算法题都挺难得,但都是基本的动态规划,回溯,数组遍历,链表,二叉树的问题,如果自己算法实在不太行,找工作提前一两个月把力扣上比较经典的题刷一刷,遇到题最起码不至于没思路,各种排序的原理还是要看看的,很容易被问到,而且一旦答不上来很减分

  • 对不同的角色的面试官问的问题,要在不同的角度回答,比如同样问你有没有处理过兼容性问题,对前面的面试官,就可以回答遇到过的不兼容的场景和解决细节,遇到后面leader的面试就可以更多地从如何高效验证排查兼容性问题这个角度回答,注意场景最后一般面试官都会给提问题的时间,我个人一般是问业务内容、技术栈、团队规模或者未来业务和技术上发展方向,到后面的面试官我会问一下这位面试官在这个团队中的角色,根据他的角色结合他对上面几个问题的表述可以初步判断出这个团队是边缘的,还是核心的,还是单纯是个画大饼的

    整体面下来,面试体验最好的是快手,谦卑,有礼貌。虽然凉了,但感觉快手面试官是有一整套面试话术的,比如 “接下来我会问你一些业务相关问题,请在不违反当前公司原则的情况下回答,如果我的问题你不方便回答可以直接告诉我” “接下来这个题你可以用你任何熟悉的编译器进行作答” “我接下来描述的问题如果你有任何不清楚的都可以随时打断我” 我答的题,还有我描述的项目,面试官一般都会先给予肯定答复,如果有问题再做进一步的提问 中途有一轮,面试官的问题我理解错了,实现了另一个东西,面试官第一反应是自己没有表述清楚,而且说我理解的这个方向的代码实现得很好 后面英文面试时,我英语很差,面试官说了一大段英语我基本没听明白,面试官问我是不是自己说太快了

    京东一面

    1.二叉树还原,右侧投影打印

    2.说下线程池类型,拒绝策略

    3.spring事务传播机制原理

    4.应该答AOP的,但是我没答出来

    5.CAP理论是什么

    6.consul是ap还是CP的

    7.常见设计模式,优缺点,为什么要用

    8.索引最左匹配原理

    9.HashMap为什么线程不安全,HashTable为什么线层安全

    10.TCP三次握手,4次挥手,为啥要3次握手


  • 二面

    1.介绍下自己

    2.说一个实际sql调优的例子,生产的

    3.遇到了那些比较大的挑战

    4.上面你说的挑战如果要完全避免你觉得应该怎么解决

    5.kafka怎么用有哪些问题,则么避免

    6.算法 二叉树的层序遍历

    7.数组的所有子数组(没做出来)

    8.二叉树判断结构是否相同


    三面

    聊项目

    1.mysql生产调优的例子

    2.说下spark了解那些东西,这块没说好,因为之前一直没问着大数据的东西,没复习

    3.实现一个延迟发布的功能,一开始没想出来,面试官说用redis才想到zset

    4.100亿数据判断一个数字出没出现过


    百度一面

    1.JVM配置哪些参数

    2.FullGC次数比较多怎么查

    3.JVM内存分区

    4.CPU占用比较高怎么查

    5.查看端口命令

    6.包含ip的日志,查找前10个I出现的IP

    7.类加载器

    8.锁的状态(这块想问的其实是markdown的状态)

    9.有什么多线程编程

    10.map有哪些便利方法

    11.HashMap扩容过程

    12.NIO的原理,从操作系统说(想问fd系统)

    13.零拷贝

    14.自定义注解

    15.Mvcc流程

    16.Spring事务传播机制(没说好)

    17.索引类型

    18.B+树结构

    19.分布式事务解决方案

    20.Redis持久化机制


    21.笔试 把一个数组构造成二叉树查找,并且打印倒数第N大的阶段


    二面

    1.项目里的技术难点是什么

    2.经历过项目后哪方面的技术进步最大

    3.项目的时序性怎么解决

    4.AOP的原理,织入点和切面点代表什么意思

    5.网关了解吗,有什么用

    6.ThreadLocal原理,用法

    7.mysql分库分表原则

    8.redis槽位是什么,为什么需要槽位

    9.缓存穿透,缓存雪崩解决方案

    10.Oauth2.0了解吗


    高德一面

    1.聊项目,项目里各个设计点

    2.如果现在让你来重新做这个项目,你有哪些设计上的进步或者能够弥补的缺陷

    3.在你最得意取得进步最大的项目里,你是有哪些收获和成长

    4.除了技术上的成长,别的方向上的成长

    5.netty的一个连接能消耗多少内存

    6.netty为什么能保持这么多的连接

    7.tcp发送数据流程,拥塞控制

    8.undo log,redo log作用

    9.说说mysql的锁

    10.java不用锁能保证线程安全吗,怎么做

    11.平时怎么学习的

    12.你对你的最近两年的成长怎么规划的

    13.你说你想做leader,那是技术leader还是业务leader,还是偏管理

    14.这个面试官问了很多项目里的细节,怎么负载均衡,怎么做水平扩展等等。常用的框架和源码倒没怎么问

    15.算法

    16.数组,将奇数和偶数分离,要求空间复杂度O(1),时间复杂度O(n)


    二面

    聊项目

    1.mysql索引,事务隔离级别

    2.没了,对就这么一点,向

    3.算法

    4.两个栈实现队列

    5.链表翻转

    三面

    聊项目,说说你在项目里最得意的设计,我列举了架构设计和AOP技术。

    1.mysql B+树

    2.redis,缓存淘汰机制,持久化机制,跳表

    3.总的来说没怎么问八股文,可能前面都问的差不多了

    4.算法

    5.有序数组,找到和为target的指定值。我直接双指针,面试官说应该先判断升序降序,再二分。


    滴滴一面

    一个看起来像是搞技术的男人

    1.Synchronized锁和Lock的区别,什么时候怎么选择(我觉得我把该说源码的都说了,他还在问到底怎么选择)

    2.aqs实现,获取不到锁会一直cas,等待,cas吗(我答从代码上看是)

    3.线程池说一下,你们服务器怎么配置的。线程池怎么监控

    4.对象内存分配规则(分配的过程,不是类加载机制)

    5.spring 事务原理(没答上来)

    6.spring事务什么时候失效(想问异常类型的分类?)

    7.redis怎么用,加入你们服务器主节点挂了会怎么样

    8.redis分布式锁有哪些问题,怎么解决(我答了锁过期,锁续期,设置value识别锁)

    9.redis过期删除策略(我答了随机删除和惰性删除说还有别的,这块问的很细,应该是想问内存淘汰)

    10.mysql隔离级别,给了个场景,问我到底会怎么样

    11.mysql乐观锁sql语句怎么写

    12.CMS有什么问题,怎么解决(我答了浮动垃圾和并发标记阶段引用变更的解决方案,他问那具体是怎么解决,重新标记时会扫描所有老年代吗,没有的话怎么解决,我猜是靠卡表,这块应该直说我不会CMS,但知道G1是怎么解决的,面试官没理)

    13.写代码,2线程交替打印1a2b3c4d

    14.说下环形链表怎么解决,快慢指针

    15.CPU 100%快速排查(我答了dump然后jstack分析,说不对)

    16.说说你项目里最出彩的地方

    感觉这个面试官面试攻击性很强,有些心不在焉,一些我答了的问题还问我怎么解决,我又复述一遍,已凉


    快手一面

    大概说一下项目

    1.webflux 怎么配置的线程池(只是简单使用,没有配置)

    2.aop的用法,用来做什么了(搜集日志)

    3.怎么做的服务器监控,从整体说说(没说好,应该从流量入口SLB,服务内的指标设计,暴露的接口,健康检查,服务调用这块来说,这块可以从流量监控,怎么限流,熔断说说)

    4.Mesos的资源分级(这块不理解)

    5.aop方法内调用为什么会失效(动态代理的原理,这块没说好)

    6.一堆数字,不会有重复的,大概19W-20W内存不够,实现一个数据结构能够判断出一个组字在不在这个数据结构里,且查找最近插入的数字要比之前插入的快(这块我答了bitmap,面试官说还有其他解法)

    总的来说面试官态度比较好,比较温柔 ,但还是凉了


    字节一面

    1.redis那些常用数据结构

    2.redis为什么快(我答基于内存,单线程,对于特定的数据结构做优化)

    3.为什么电脑需要内存

    4.你自己实现一个redis的内存数据库,你怎么做

    5.redis持久化方式,aof具体步骤细节

    6.红黑树有哪些特点,和平衡二叉树有什么区别

    7.mysql事务隔离界别有哪些,都有什么问题

    8.repeat read有幻读问题吗

    9.http常见错误码,502为什么表示网关错误

    10.随机链表复制

    总的来说面试官很nice,并没有网上传的那么凶残,已凉


    美团一面

    感觉问的都是老一套的东西,Java,MySQL,操作系统,计网这些

    说点特别的吧

    1.你能用通俗的语言介绍下多态吗?就是3岁孩子都能听懂的?

    2.你能用通俗的语言介绍下死锁吗?就是5岁的孩子都能听懂的?比如举生活中的例子?

    3.一直问我能不能去实习,问我8,9月份什么安排,我当然是秋招啊。

    4.做了三道题,一个随机快排,一个TopK,还有一个特别长,看题看了半天,估计是美团近期考试的一道原题,什么外卖优惠券,忘了具体题是什么了

    5.对美团有什么看法?(是说近期美团支付宝吗?)

    6.感觉美团还是挺注意学历的,做题的时候听见另外的面试官在讨论我的本科学校,没事,双非的大家自信点!!!

    7.问我现在公司的数据规模,我只说了我们组的,整个公司的肯定不能告诉他啊

    8.当场和我说你通过了,一会还能继续二面吗?

    二面

    1.实习做了些啥

    2.爬虫相关

    3.事务隔离级别

    4.线程池参数

    5.synchronized,volatile

    6.结合项目微服务这里问了不少

    7.jvm

    三面

    1.结合项目问了很多,一直深入问,直到你答不出来

    2.atomic相关

    3.java基础

    4.自己平常学习时印象深刻的点


    四面

    1.问了些排序算法

    2.synchronized

    3.对自己的职业发展的考虑

    4.平常有关心哪些技术


    百度一面

    1.java所有数据结构以及所占的字节说一遍

    2.集合数据结构说一遍,对比等

    3.详细说hashmap和treemap(很详细)

    4.arraylist和linkedlist详细说 非常详细

    5.java的char类型和其他有什么不一样

    6.char类型怎么存中文(大概这意思?)

    7.hashmap put过程,然后举了一个实例让你判断size为多少

    8.接口和抽象类区别

    9.进程和线程,以及线程的生命周期等

    10.url怎么中文转码

    11.http get中文乱码问题

    12.thread方法 run和start运行 给了个程序

    13.java中有符号的数据类型有哪些?(好像。。)

    14.2^16次方表示多少数【这是数据结构问的】

    15.base64

    16.url图片下载,带jpg扩展情况,不带jpg或者png下载。

    15.算法--反转链表(o(1))

    16.所有排序算法时间复杂度空间复杂度

    17.二分查找算法详细说明思想(整数,浮点数)

    二面

    1.聊项目实现(权限之类的)

    2.cookie和session详细说,为什么cookie不安全

    3.springboot常用注解有哪些及意义及作用

    4.@controller,@AutoWired详细说

    5.java垃圾回收机制详细说

    6.设计模型详细说(23种)但是可以挑重点

    7.单例模式的懒加载写出来

    8.n个砝码 砝码数不定 砝码重量不定求最少砝码数可以乘出1-n的重量

    9.代码:螺旋矩阵

    10.写trigger实现自增

    三面

    1.SSM框架的优缺点及与现在springboot等方法比较

    2.Android开发经验等

    3.Android基本组件

    4.activity生命周期

    5.service两种启动方式

    6.Android中使用Bundle传递大容量数据问题的原因,及底层原理

    7.详细介绍一种框架全面(我在这里就直接ssm详细说了,每个部分,spring springmvc Mybatis等 优缺点等)

    8.观察者模式的思想原理,优缺点

    网易一面

    自我介绍

    1.如何创建一个Java对象

    2.在哪检查类的合法性

    3.如果这个类不存在,会怎么样

    4.类的加载机制

    5.Thread的几种状态,调用什么方法切换的

    6.对象锁,2种暂停

    7.Wait()和sleep()的区别

    8.用的线程池叫什么,有什么特性

    9.对springboot的理解

    10.springMVC的filter和xx的区别

    11.ArrayList和LinkedList的区别


    时隔这么久还能记得这么多还是挺佩服自己的小脑袋的。

    欢迎转载,转载请注明原链接与作者,感谢~~~



    #实习##笔试题目##面经##offer比较##笔经##Java##霸面#
    全部评论
    大佬几年经验啊
    点赞 回复
    分享
    发布于 2022-05-21 01:13
    大佬几年经验啊
    点赞 回复
    分享
    发布于 2022-06-01 09:24
    联易融
    校招火热招聘中
    官网直投

    相关推荐

    9 41 评论
    分享
    牛客网
    牛客企业服务