暑期实习 字节待入职 蚂蚁和美团在流程中

蚂蚁 美团问题应该不大
面经 包含 字节两个部门(挂了一个),腾讯云二面挂(项目不行) + 北京美团一面 + 成都蚂蚁一面(全程高并发设计,懒得发了,不同面试官不同)

电商一面挂
  1. 牛客项目 点赞如何实现的,Redis + MQ异步,难点来了,用户刚点完毕,又立马点,假如发生线程切换,后一个操作的消息先发出去怎么办?

  2. LRU

  3. 点赞,评论数量是怎么统计的,我这都不会,难受,其实就是加个字段

  4. 简历上的 了解常见网络攻击,问了个女巫攻击

  5. rpc 一致性hash是怎么实现的

  6. 为啥用 Redis, 其实可以引导到八股文的,我居然说体验好

  7. 算法 300题 LIS ,最优解 二分


挂了立马又投了

一面

  1. 项目细节

  2. TLS握手过程

  3. arp 欺骗

  4. RPC 协议设计,如果文件很大,或者传视频怎么办呢 我的回答:借鉴 http 的文件压缩,视频分块,范围请求

  5. RPC 限流,我用的漏桶参考的网上的,其实大部分代码都是错误的,大家好好想想,为什么令牌桶可以限流,漏桶是怎么平滑流量的 然后分布式限流如何实现,我回答的用Zookeeper,其实Redis才是比较经典的

  6. 全局消息如何设计,如何高性能,高并发

  7. 为什么用Netty,引申到epoll,然后epoll的各种方方面面的知识,如何知晓事件发生 —— 中断

  8. 算法 岛屿数量 ~~~

总结:主要是项目

二面

  1. 项目

  2. epoll 的边沿水平触发

  3. volatile 原理 lock 前缀, 第一个普通写,第二个volatile写,怎么禁止重排 storestore storeload 屏障

  4. sychronized 是怎么实现同步的 —— 底层原理 entrylist,waiset

  5. 项目~~~~,瞎扯就行,非常细节,细节到表

  6. 分布式锁 如何设计

  7. Redis string 底层数据结构 为什么是二进制安全

  8. MySQL datetime 和 timestamp 的区别 :时区域问题 timestamp 跨时区有问题

  9. sql 优化 很简单的order by优化,我是这么回答的

    优化前 EXPLAIN Using filesort,表示需要排序,意味着 MySQL 会给每个线程分配一块内存 sort_buffer 用于排序,并且由于没有索引,会采用 全表扫描 + 排序的方式;查看 OPTIMIZER_TRACE 发现 ORDER BY 的排序方式是 rowid;这就有两个问题。(1) 帖子数量一旦比较多,sort_buffer 装不下,会用磁盘辅佐排序,导致性能降低。(2) ORDER BY 使用 rowid 排序是因为排序的单行太大,对于 InnoDB 来说,rowid 排序,意味着排序完毕后需要拿个主键回表,回表就意味着磁盘的随机 IO,也会导致性能问题。所以我选择了给 ORDER BY 的字段加索引,让其就按该字段有序的,并且由于使用了分页,故ORDER BY 后会加上 LIMIT,会使优化器倾向于使用二级索引拿到主键后回表的方式;虽然构建索引浪费了空间,但是节约了排序的时间。 优化后 EXPLAIN 使用的是走二级索引 + 回表的方式

然后面试官怕我继续发挥打断了我 ~~~~

  1. 算法 复制随机链表 面试官直接给我说思路了,可能是怕我写不出来,最后输入用例节点全是0,导致输出也是0,还以为代码写错了,面试官最后说,就先这样,bug先不找了,但还是过了

上面的问题看起来非常常规,但是深度到底层,从浅入深,是不简单的

三面

  • 前面都没问JAVA,这次JAVA来了个全家桶,我还以为不问 JAVA

  • HashMap put 线程不安全没回答好 ——多线程的 put 可能导致元素的丢失。多线程同时执行 put 操作,如果计算出来的索引位置是相同的,那会造成前一个 key 被后一个 key 覆盖,从而导致元素的丢失 7 8 都存在;为什么二倍扩容;为什么是树化是 8

  • 四次挥手

  • 类加载

  • 双亲委派模型的破坏

  • CMS G1 对比

  • 算法 149 

腾讯云一面

  1. 保证机密性应该是 加密(加密、对称加密、混合加密)

HTTPS 为什么安全,没回答好,应该从这四个方面来回答安全的四个特性:机密性 、完整性,身份认证 和 不可否认

  1. 100 万个数找前 100 大

    1. 根据快速排序划分的思想求解

    2. 容量为100 的最小堆

    3. 分块查找

      1. 先把 100 万个数分成 100 份,每份 1 万个数,先分别找出每一万个数里的最大数,然后相互比较,找出100个每组最大数字,类似赛马 ~~~

  2. 判断 40 亿个QQ号码,哪些存活

    • 位图


腾讯云二面 项目 (无了)

  • Netty 心跳,我的觉得的是现实,定时任务放在 taskQueue,NIO 线程本身在不断轮询,所以不存在浪费线程吧; 嗯 ~ ,面试官应该在考我对 Netty 是否熟悉

  • 使用 Promise 是因为,服务端是开启一个线程,异步执行,客户端线程必须同步等待(为啥不线程等待呢(面试官是这个意思,我觉得不能啊,必须要Promise 来传递结果,因为服务端线程和客户端不是一个线程,必须要容器传结果 ))

上两个没回答好

  • 拆包粘包 粘包拆包是好是坏,不同角度来看

  • 如何实现抢红包限流,每秒三次

  • Promise Future 区别

美团 80多分钟吧

没回答上的

  1. 线程池 我回答了 FixedThreadPool 等等,可能是让我回答 ThreadPoolExecutor 和 ScheduledThreadPoolExecutor,线程池各自缺点(我也不知道) ,缺点我后来猜测的是,阿里开发手册不允许使用Executors框架,必须通过 ThreadPoolExecutor 方式,做到设置多少线程,心中有数

  2. synchronized

  3. volatile 这个我回答的MESI,他说不对

  4. synchronized 和 volatile 区别

  5. volatile 怎么保证可见性 太紧张了,没把 无效化然后下次强制从主存读新数据说错来 (没回答好)

  6. CAS 原理 我靠,直接回答成底层原理了 —— 多处理器添加Lock前缀(1原子 2写回系统内存 3禁止重排),应该回答 当前值 = 预期,更新为最新值

  7. 锁膨胀 也没回答好,应该 为 Object 对象申请 Monitor 锁,让 Object 指向重量级锁地址,并且对象头所标志位改为 10 然后自己进入 Monitor 的 EntryList 阻塞;我直接说了两种锁膨胀的情况

  8. 索引失效

  9. 隔离级别

  10. MVCC

  11. 意向锁 (面经永远的神,本来没准备,上午偶然翻了下面经,发现这个忘记了,又翻了下笔记(以为不是重点,就没复习,估计也没回答太好))

  12. 缓存穿透,雪崩

  13. 布隆过滤器

  14. 淘汰策略

    让我作题,不至于吧 这么快,才25分钟就让我做题了,直接拉回来,继续八股;后来才知道,可能是觉得我作弊,没必要面试下去了,我吐了~~~,牛客,你咋回事啊,我心态爆炸了

  15. Spring 生命周期

  16. AOP 具体源码具体流程

  17. CGLIB 与 JDK 代理区别

  18. 事务失效场景

  19. 隔离级别 (应该是隔离级别吧)

  20. Redis 高可用 中的 AOF 刷盘策略

  21. 主从复制原理

    提了然后JUC 没问了,怀疑我作弊 尴尬 ~~~~ ,可能出现 BUG 说我在切屏,牛客 还我清白,*** you

  22. ThreadLocal 原理,存在的问题 value为什么可能导致内存泄漏 (我猜测的) ,到底是哪存在引用链导致没有被回收 ???? 后来想了下,会不会是Entry持有了 value,Entry 是局部变量,求解答

  23. 算法题 多线程打印,出了点 bug,主要是被牛客说我切屏搞心态了 题估计写了 10多,二十分钟





全部评论
别私聊骂我了。西南交大 是人上人。 女生惹不起。 我们学校狗都不来
点赞 回复 分享
发布于 2022-03-15 22:08
春招多关注公司的官网 或者一些招聘途径  春招相对会少一些 秋招的6成差不多吧
点赞 回复 分享
发布于 2022-01-08 19:15
一般春招都是秋招的补充,岗位多少看秋招进了多少的,像管培生之类的还是有的;留学生多是因为他的毕业时间跟国内不一样,他的范围比较广一点,基本是跨一年度的
点赞 回复 分享
发布于 2022-01-04 16:30

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
评论
1
11
分享

创作者周榜

更多
牛客网
牛客企业服务