写点什么

四面字节跳动(高级开发岗):分布式 + 中间件 +TCP+JVM+Hashmap

用户头像
胧月
关注
发布于: 4 小时前

字节跳动的面试官都挺好,面试的内容是我面试那么多家以来最全面的,问题也没有特别刁钻,都比较符合工作场景。

项目很重要,项目是敲门砖也是面试的大头,如果我没有简历上的两个项目的话,估计简历都很难被捞起来,而且进入到 3 面。很多面试题都是从项目角度去提问的,而且回答的时候也可以结合项目回答,这个很加分。

除了项目所用技术之外,也要关注项目的业务以及架构,最好是能融合在一起讲清楚。

只有多面试,你才能将原有的「我以为」思维变成「原来是这样」

一面:

  1. TCP 三次握手和四次握手?为什么三次握手,TCP 的 ack seq 是 ack 次数还是 ack 字节数?RST 报文指的是什么报文?

  2. http2 的原理,https 的原理,描述一下 TSL 的握手过程。

  3. JVM 线上参数设置,为什么这么设置?能讲讲 jdk 的分代搜集器原理吗?

  4. volatile 关键字是如何防止指令重排的,synchronized 能防止指令重排吗?

  5. 那进一步说说 synchronized 的锁消除与锁优化,自旋锁轻量级锁与重量级锁分别都是什么?

  6. Innodb 引擎一个数据页的大小为什么是 16KB?20 个 mysql 字段,都是 varchar(10),1000w 数据情况下 b+树高度是多少?

  7. 结合 WAL 机制和回滚段说一说 innodb 事务引擎的 MVCC 原理?

  8. Select/Poll/Epoll 三种系统 IO 的区别?

  9. Zookeeper 做服务的注册中心,如果服务规模大于 1000,会发生羊群效应网络风暴,怎么优化?

  10. 说一说你理解的 countdownlatch?countdownlatch 的底层原理?AQS 又是什么?

  11. 线程池的各个参数,ThreadLocal?怎么优化?知道 FastThreadLocal 吗?

  12. 装饰者模式和代理模式挺像的,他们有什么区别?

  13. 你们用了 SpringCloud,能从源码角度讲一讲 Eureka 的底层架构与设计原理吗?

  14. 13 亿用户量的微博 plus,如何设计点赞系统才能保证高性能?

  15. 用户画像系统,用户标签一直在增加,怎么设计表结构?

  16. 手写一下线段树代码。

二面:

  1. Hashmap 底层原理

  2. 讲讲 Netty 的内存池算法和对象池算法,什么情况下会内存泄漏?

  3. 你刚才说 Netty 使用 PooledUnsafeDirectByteBuf。Unsafe 是什么,java 里能直接 new 吗?

  4. 分布式事务两阶段提交如果第二阶段超时了怎么办?

  5. 嗯,那 tcc 的原理能讲一下吗?新出来的 Seata 有调研过吗?

  6. 分别从 NIO 层面和 netty 层面讲解一下零拷贝。

  7. 给你一个 oom.hprof,让分析内存泄漏可能的原因。

  8. 微服务,怎么拆的,为什么要那么拆,

  9. 老生常谈题目,mysql 和 redis 的数据如何保证一致性,就是 cache asigned pattern.

  10. 老生常谈题目:如果保证 redis 的内存里全都是最热的数据,考察的是 redis 的内存淘汰策略。LRU。

  11. redis 说到了 LRU,让手写一个 lru 算法。(用 LinkedHashMap 实现)

  12. mysql 为什么用 b+树,和 b 树区别?

  13. mysql 从二叉查找树说到红黑树说到多叉树再到 b 到 b+,最后让手写了一个二叉查找树的中序遍历。

三面:

  1. 你们用了 rocketmq,说一说 rocketmq 是如何保证消息写入的高性能,如何保证消息不丢失的?

  2. spring 的设计思想。

  3. cpa 定理,redis 是 cp 的还是 ap 的?为什么?zookeeper 是 cp 的还是 ap 的,为什么?

  4. 说一说你理解的面向过程,面向对象和函数式编程

  5. 你的技术职业规划。

HR:

  1. 你的优点。

  2. 多久能入职。

  3. 薪资问题。25k 给不了,问 20k 行不行,平时多申请点补助。

对于很多 Java 工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

整理的这些架构技术希望对 Java 开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

在这里,我将我收藏许久的 Java 架构进阶学习资料(文档+笔记+视频+面试必备)分享出来,帮助大家在接下来的面试中能成功进入自己期望中理想的公司。

文章篇幅限制,需要高清完整资料的朋友私信我【面试】即可获取免费资料!!

蚂蚁金服面试题:

蚂蚁金服面试题

Java 程序员技术面试必备知识

Java 程序员技术面试必备知识

Java 核心知识点整理

Java 核心知识点整理

算法刷题 LeetCode 中文版

算法刷题 LeetCode 中文版

阿里巴巴 Java 开发手册

阿里巴巴 Java 开发手册

BAT 面试的 20 道高频数据库问题解析

BAT 面试的 20 道高频数据库问题解析

Java 虚拟机与并发编程

Java 虚拟机与并发编程

高效程序员的 45 个习惯:敏捷开发修炼之道

高效程序员的 45 个习惯:敏捷开发修炼之道

23 种设计模式知识要点

23 种设计模式知识要点

面试必杀技:高并发秒杀系统揭秘

面试必杀技:高并发秒杀系统揭秘

以上的这些学习资料都是免费分享的!希望大家都能够拿到自己期望的 offer,好圆了自己的大厂梦!

获取方式:点击这里即可获取到文章中的文档,资料

用户头像

胧月

关注

还未添加个人签名 2021.08.17 加入

还未添加个人简介

评论

发布
暂无评论
四面字节跳动(高级开发岗):分布式+中间件+TCP+JVM+Hashmap