三年后端小姐姐四面字节,当场收到OC,薪资35K!

283 篇文章 18 订阅
文章分享了一次在字节跳动的面试经历,涵盖了Java基础知识、计算机网络、数据结构、数据库、操作系统、中间件等方面的问题。作者认识到自身技术储备的不足,并提供了面试准备建议,包括Java基础、开发工具和框架、算法、面试常见问题等。同时,文章还提及了内推机会和获取面试题答案的途径。
摘要由CSDN通过智能技术生成

在面试的过程中,我略带紧张,但是通过这次机会,我认识到了自己的不足和提升空间。同时也看到了众多优秀的候选人和专业的面试官,深感荣幸能够参与其中。

我相信这次面试是我职业生涯中重要的一步,我会持续学习和进步,提高自己的技能水平,为未来的发展打下坚实的基础。虽然说这次面试已经收到offer,运气也是占有大部分吧,但自身感觉自己的技术储备还是差点意思。需要提升的地方还是有很多。

下面是我面试后回来总结归纳的一些面试官问的知识点以及问题。希望有更多的小伙伴加入到字节中共事。虽然加班有点严重,但薪资高呀,它香啊,是不是,嘻嘻嘻~~~~

字节一面

  • 自我介绍。

  • 计算机网络TCP的三次握手,UDP和TCP的区别。

  • 知道的排序算法,以及复杂度。

  • 两个1G排好序的文件,按序合并。

  • 二叉树层序遍历输出,每一层输出数组(手写算法)。

  • 数据库索引,多级索引。

  • LINUX进程与线程区别,进程间怎么通信,linux查询进程命令,怎么查询进程状态,线程IO,LINUX命令。

  • 一个数组获取最大的k个数,大顶堆,排序。

  • SELECTED?IO?不清楚这个,没听过。

  • MySQL的行锁的实现原理

  • Redis发生主备切换会出现什么问题?

  • kafka的优势和发送过程?

  • jvm的垃圾回收算法?

  • 类加载机制 双亲委派

  • spring aop 的原理 jdk、cglib实现的区别

  • ioc的原理

  • Spring 循环依赖问题

  • 用过的中间件

  • redis常用场景

  • redis锁 为什么lua脚本删除?

  • 分布式id,如何生成,使用redis自增序列号有什么风险?

  • redis缓存问题, 缓存穿透 击穿 雪崩 ,如何解决

  • 缓存穿透加锁  何如加锁,会出现什么现象,a加锁时,b线程会发生什么?

  • 算法题,同股票交易问题。

  • oracle mysq的区别(我们用的oracle)

  • mysql 慢查询 怎样优化,索引加哪些列,什么工具分析慢查询

  • 事务的隔离级别

  • 如何保证的可重复读?

  • MVCC怎么保证的可重复度

  • redolog

字节二面

  • 从自我介绍出发问些相关问题,过往项目、如何学习?

  • 数据库索引,索引失效,B+树与hash

  • mysql 事务、mvcc

  • redis 那些数据类型,zset 原理

  • 解决过那些问题,最难的是那些?如何定位?

  • 线程池有哪些,配置、原理;要实现一个使用最大线程数的线程池。

  • hashmap 扩容机制,为什么要在0.75的时候扩容;

  • hashmap 是线程安全的吗?为什么?

  • ArrayList、LinkedList 区别、原理;ArrayList 扩容

  • 说说JVM 、gc root,为什么要有gc root?

  • 场景:某个服务调用压力大,设计一个服务实现限流、缓冲。

  • 对象一定分配在堆栈对象不一定分配在堆上,JIT可以实现栈上分配

  • JMM内存模型 原子性,可见性,有序性如何保证 工作内存与主内存 volatile,重排序举例

  • synchronized和Lock的区别

  • synchronized内部实现,偏向锁,轻量锁,重量锁 为什么需要自旋?

  • HashMap,HashSet,TreeSet,ConcurrentHashMap

  • Spring事务是怎么实现的?

  • 类加载机制?双亲委派机制 自定义了一个String,那么会加载哪个String?

  • HTTPS和HTTP区别?非对称加密有哪些缺点?

  • XSS和CSRF攻击

  • NIO,Linux网络IO模型五种

  • Redis持久化

  • MySQL隔离级别,一致性视图,undo log,redo log和binglog

  • MySQL索引结构,回表,最左前缀原则

  • 不使用第三个变量交换a和b的方式

  • 算法题一:a+b+c=0

  • 算法题二:链表倒数第N个节点

字节三面

  • 介绍一下做过的项目,哪些挑战性比较大,比较有难度的

  • IM项目怎么用Netty的,为什么要用Netty,长连接交互是怎样的

  • 消息怎么存储,怎么发送,怎么知道消息已读和未读的

  • 读了5条消息、又来5条消息,你是怎么去更新的,你的消息是幂等的吗?

  • 项目里怎么用ES的,ES怎么支持搜索的

  • 技术论坛网站的评论是怎么存储的

  • 查询评论是在DB里扫表查询吗?怎么展示所有的评论?性能如何?想要查询更快可以做哪些优化?

  • 结合缓存和DB的时候会出现哪些问题?要怎么解决?

  • 有研究过哪些算法?

  • CAP理论的理解

  • 如何设计实现中国象棋?

  • 如何设计一个排队系统?

  • 平时都是怎么学习的?最近都在关注哪些技术?为什么?

  • 项目技术点,学到了哪些?也要具体知识点。

  • MySQL中为什么是最左前缀?

  • 有没有接触过一些自动熔断工具

  • 502可能的原因有哪些?

  • 线上问题怎么排查?Full GC频繁怎么办?

  • 服务的QPS,数据库的架构和版本。

  • SpringBoot的优缺点分析

  • SpringBoot的启动源码分析

  • 服务的部署方式?

  • volatile原理和作用

  • 什么是指令重排序,举个例子

  • AQS原理

  • JVM内存模型

  • 类加载过程

  • 双亲委派机制

  • 介绍代理模式

  • redis数据结构

  • HTTP状态码,header

  • MVCC原理

  • 算法题:按照之字形分层遍历二叉树,要求bug free,并且构造二叉树进行测试。

  • 算法题:给一个数组,建一颗最小高度的二叉树(递归和非递归)

  • 算法:买股票无限次;买股票只买一次;买股票有手续费;买股票最多买两次

HRBP面试:

  • 自我介绍

  • 为什么在看机会呢?在看什么类型的机会呢?

  • 为什么看头条的机会?

  • 你觉得头条是一家什么样的公司?

  • 朋友同事如何评价你?

  • 平时都有哪些兴趣爱好呢?

  • 在原公司最享受的阶段是什么时候?为什么

  • 你对我们的业务方向了解吗?

  • 你对我们的业务方向和技术感兴趣吗?

面试前准备

1. Java基础知识:字节跳动是一家技术驱动的公司,对Java基础知识的要求非常高。需要对Java语言的基本概念、语法、面向对象编程等有清晰深刻的理解,熟练掌握Java核心类库及其他常用类库的使用。

2. 熟悉开发工具和常用框架:熟练掌握主流的Java开发工具,如Eclipse、IntelliJ IDEA等,熟悉常用的Java框架,如Spring Boot、MyBatis等,并且能熟练运用这些工具。

3. 深入理解算法和数据结构:字节跳动注重应聘者的算法和数据结构能力,因此需要深入理解并熟练掌握各种算法和数据结构,并能够灵活地在实际问题中运用这些算法和数据结构。

4. 注意常见的面试题:字节跳动对Java开发面试的考察比较全面,会考察一些比较经典的Java面试题,如单例模式的实现、HashMap的实现原理、线程池的使用、JVM内存管理等等。需要做好这些面试题的准备,有充分的解决方案和深入的思考。

5. 有实际项目和代码经验:字节跳动更加注重应聘者的实际项目和代码经验。因此,在准备面试时,建议通过自己的项目经验进行深入的讨论和交流,并能表达清晰的思路和解决方案。

除了以上的技术准备外,还需要注重细节和面试技巧。在面试中,要注意细节,掌握一些面试技巧,例如注意听清问题意思、避免东拉西扯、掌握言语简洁、条理清晰的口头表达技巧,以及掌握思维逻辑和反应速度等面试技巧。

以上就是字节面试题的总结以及面试都需要准备那些内容,希望对大家有所帮助喽~~~

面试题的答案我也整理出来了,有需要的小伙伴关注博主的公众号【Java烂猪皮】然后回复【666】即可获取喽~~~

有需要内推字节的小伙伴也可以找我哦,欢迎大伙加入字节,我在字节等着大家。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值