211本,字节OC面经贴分享

个人bg:211本科班,一段大厂实习,项目是马哥的SaaS短链接+字节青训营的一个项目。目前就字节一个oc,后面还有几个流程(估计也没什么戏),等走完我的秋招基本就结束了。在此分享一下秋招的面经吧。

美团

AI面:

1. 选择题:选一个熟悉的编程语言

2. 什么是DNS,它有什么作用?

3. 什么是shell脚本?如何创建并运行一个shell脚本?

4. MySQL中drop、delete、trancate命令有什么区别?你实际会怎么使用?

5. 介绍一下Java的JNI,JNI有什么用?

6. 如何跟上软件开发潮流?你有哪些渠道?效果怎么样?

7. 讲一下近期你是如何把一个想法落地的?遇到了哪些困难?怎么解决的?

核心本地-美团平台

一面

1. 自我介绍

2. 短链接方案有没有参考业内的设计?你是怎么设计方案的?

3. 短链接布隆过滤器的使用

4. 布隆过滤器的hash算法了解吗

5. 布隆过滤器有什么优缺点

6. 你提到布隆过滤器不支持逆操作,那怎么解决?(抽象一层/布谷鸟)

7. 布谷鸟是怎么实现逆操作的?

8. 介绍一下实习项目(原来一开始以为短链是实习项目hh)

9. 存储选型为什么用hbase?为什么不用es?

10. 查询用到哪些字段?针对查询场景怎么做存储选型?选了hbase怎么做rowkey设计?

11. mq重试有什么问题吗?

12. 对于金融数据场景,如果要做存储迁移你会怎么做?和你目前的方案有什么区别?

13. 介绍一个你印象最深的bug以及排查过程

14. 如果服务突然错误率、延迟上升你怎么排查?

15. 最近在看什么书?

16. 算法:k个一组反转链表

17. 反问

二面

1. 自我介绍

2. 介绍实习项目

3. 针对存储迁移,为什么选择HBase做新存储而不选择诸如ES之类的数据库

4. 介绍一下雪花算法是怎么实现的

5. 做题:去除链表重复元素

6. 反问

腾讯

CDG-腾讯广告

一面

1. 自我介绍(介绍到项目时打断)

2. 短链接项目是你一个人做的吗?有多少行代码(这我哪记得)

3. 短链接项目是干什么的?和网络的长短连接是不是一回事?

4. Hash结构在数据量很大时会rehash,rehash会造成毛刺现象,redis底层是怎么做的?

5. Redis为什么这么快?

6. TreeMap和HashMap有什么区别?什么场景使用?

7. 常见的hash冲突解决方式有哪些?读写的最坏时间复杂度是多少?

8. 进程和线程有什么区别?线程共享进程的哪些资源?

9. 算法:一个序列有正有负,输出和为value的所有连续子序列。

光子

一面

面试官提前10多分钟就进入会议了,有点意外

1. 自我介绍

2. 介绍一下C++的指针和引用,什么时候改用他们

3. go的gc算法了解吗?(不了解)

4. 那介绍一下Java的gc算法吧

5. 介绍一下布隆过滤器的原理,使用它解决什么问题,一般是基于什么考虑去使用它

6. 介绍一下Redis的数据结构,比如zset底层实现

7. 介绍一下跳表的原理。如果我新增一条数据,跳表会如何变化?

8. 介绍一下redis的高可用原理

9. 介绍一下分布式锁的实现,除了基于redis还有其他的实现方式吗?

10. 介绍一下雪花算法,它是如何保证唯一性的?

11. 实习有用过pb和lua吗?

12. pb为什么性能更好有了解吗?

13. linux如何查看一个线程端口?

14. git平时使用的工作流程

15. git merge、 git rebase、 git fetch的区别

16. http和https的区别

17. 王者荣耀应该用tcp还是udp

18. 介绍一下tcp的拥塞控制

19. 用户输入一个网址到看到页面的详细流程

20. 平时有没有性能调优的实践?有没有一套详细的问题排查方案?cpu占用过高怎么排查?

21. 做题:k个一组链表反转

22. C++的虚函数了解吗

23. C++的vector底层实现有了解吗

24. 反问

技术栈不匹配,不会C++一直问C++,难崩。

阿里

AliExpress

简历面

一小时八股盛宴。反思:还是得通过口述的方式检查某个知识点究竟清楚还是只是有印象...

1. 介绍实习

2. 进程和线程的区别

3. 并行和并发的区别?我们常说的高并发单核实现还是多核实现?单核能否实现?(时分多路复用)

4. 解释一下什么是用户态和内核态

5. 解释一下什么是死锁?如何避免死锁?

6. mysql用的什么存储引擎?介绍一下索引?为什么使用B+树?

7. B+树叶子节点存的什么?聚簇索引与非聚簇索引?什么是覆盖索引?什么是回表?

8. 介绍一下mysql乐观锁和悲观锁的实现

9. 屏幕展示了一张表,口述sql(条件是两个等于一个大于),然后给定几个选项考察索引失效。请从底层数据结构角度解释为什么大于放最前面索引会失效?

10. 随着时间推移这张表逐渐加了十多个索引,索引过多会带来什么问题?

11. 你认为B+树层级应该控制在多少合适?

12. 计网中Mac地址有什么用?Mac地址通常长什么样?

13. 交换机通常包含几个Mac地址??

14. 了解ARP协议吗?它位于OSI的那一层?

15. TCP与UDP有什么区别?

16. JVM的垃圾回收主要工作在哪几个区域?分别采用什么GC算法?

17. 如果发现老年代频繁GC是什么原因造成的?

18. 介绍一下类加载的过程

19. 静态方法能够访问非静态变量吗?

20. Java支持多继承吗?一个类能继承多个接口吗?

21. Java抽象类和接口的区别?

22. 介绍一下你对Lamaba表达式的理解?它是jdk几出现的?平时哪里用的lamada表达式?

23. ArrayList为什么在使用时不用指定长度?

24. ArrayList底层实现是怎样的?如何理解动态数组?

25. RocketMQ架构

26. 生产者生产10条消息(a,b,c,d...),消费者能否按顺序消费?

27. 为什么要有消费者组?消息在组内是怎么消费的?消费数据是推还是拉?

28. 多个消费者组,mq怎么知道是哪个?(不记得是不是这样问的)

29. 介绍一下使用Spring的好处

30. 解释一下什么是控制反转?什么是依赖注入?

31. Autowire和Resourse的区别

32. 介绍一下Spring用到的设计模式?什么是责任链模式?如何实现责任链模式?

33. 为什么要有SpringBoot?什么是自动装配?

35. 反问

灵犀互娱

一面

1. 介绍一下实习经历

2. 数据量有多少?每个表数据量有多少?

3. RDS归档删除有了解是怎么做的吗?如果让你来实现你会怎么做?(引申一个八股:大数据量分页)

4. 为什么HBase可以支持这么多数据量的存储?HBase如何扩容?

5. 为什么说HBase随机写入性能好?MySQL对比HBase又差在哪里?

6. 常说MySQL单表数据量过大会影响性能,它是怎么影响的?

7. 单表数据量大概控制在多少合适?这个数值怎么得出的?

8. MySQL如何保证高可用的?

9. MySQL如果扩容要怎么做?数据迁移?一致性哈希?

10. 主流的数据同步器有了解过吗(他们增量数据和存量数据的同步原理)

11. MQ用的哪个?RocketMQ和主流的其他MQ有什么区别?

12. 为什么说Kafka适合流式日志的处理?为什么它性能高?

13. RocketMQ的可用性和一致性如何保证

14. Linux 排查命令,比如查看cpu占用较多的线程

15. Linux如何统计一个文件的行数、如何根据关键字筛选

16. SpringBoot自动装配原理

17. AOP(一个public方法、一个private方法,问public能否访问这个private)

18. MySQL是如何保证数据写入成功的

19. 介绍一下redo log的详细工作流程

20. 线程A查询Redis BigKey(数据量为s),线程B往BigKey新增一条数据,线程A会查到多少数据?

21. Redis分片集群,如果我新增一个master,会发生什么?

22. Tomcat和Netty了解吗?

23. 如果有100个请求,他们处理的都比较慢,你能推算出大概有多少个线程吗(不懂)

24.有玩过什么境外游戏吗?

25. 反问

蚂蚁

密算科技

一面

1. 自我介绍

2. 介绍存储迁移项目

3. schema长什么样,hbase怎么设计的

4. 项目中为什么选择rocketmq?

5. rocketmq对比kafaka有什么优缺点?

6. rocketmq如何保证消息不丢失?

7. 用户如果为了性能,消费端要做异步,你如何保证消费端消息不丢失?

8. hashmap读数据的时间复杂度

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

10. 现在有一个类继承hashmap,如何保证线程安全?

11. 读写锁是哪个类?使用读写锁的代码...

12. http的状态码有哪些?502和504有什么区别?

13. http和https有什么区别?

14. 介绍一下tls握手的过程

15. 介绍一下线程池的原理

16. 线程的状态有哪些?阻塞等待和时间等待怎么用的?

17. 有一个线程池,它已经执行完了100个任务,现在核心线程处于什么状态?阻塞的话谁阻塞了它

18. 解释一下开闭原则

19. 项目中是否有用到抽象类?为什么要使用抽象类?

20. Spring 的controller用过哪些注解?@Restcontroller是什么意思?有什么用?@requestParam和@RequestBody有什么区别?

21. 最近有在看什么书或者关注什么topic吗?

22. 看你笔试做的不错,平时有刷leetcode吗?

23. 反问

二面

1. 自我介绍

2. 拷打实习

3. 讲讲参加的竞赛,平时怎么合作,出现分歧怎么办?

4. 用过哪些语言?

5. 怎么学go的?

6. 有没有看过Java的源码?

7. 介绍一下AQS原理,有哪些子类?

8. 介绍一下volatile

9. 介绍一下共享锁和独占锁

10. 共享锁和独占锁是怎么实现的?

11. Java的GC了解吗?用过哪些垃圾处理器?(看我没有实际使用经验就没细问了)

12. 介绍一下AOP以及实现原理

13. 介绍一下IOC

14. spring是如何加载管理一个类的

15. 反问

#晒一晒我的offer##ATMD##牛客创作赏金赛##秋招面经##软件开发笔面经#
全部评论
青训营你当时组队做的项目还是一个人做的?
4 回复 分享
发布于 2024-10-20 12:03 陕西
校友牛的,字节是后端吗
4 回复 分享
发布于 2024-10-20 16:33 江西
字节青训营咋报的
2 回复 分享
发布于 2024-10-23 15:31 上海
太强了
1 回复 分享
发布于 2024-10-25 20:01 北京
佬,美团的有消息了吗?
点赞 回复 分享
发布于 2024-10-18 16:27 湖北
点赞 回复 分享
发布于 2024-10-18 17:04 上海
话说面试带着耳机怎么录音面试官的问题啊?
点赞 回复 分享
发布于 2024-10-18 19:00 河南
m
点赞 回复 分享
发布于 2024-10-19 14:52 湖南
请问大佬,青训营对找实习有帮助吗
点赞 回复 分享
发布于 2024-10-20 13:43 湖北
哥,你好强啊
点赞 回复 分享
发布于 2024-10-22 21:14 江西
佬 字节面试的难度怎么样
点赞 回复 分享
发布于 2024-11-10 21:26 上海
光子好难啊
点赞 回复 分享
发布于 2024-11-29 00:16 北京
太牛了
点赞 回复 分享
发布于 2024-11-29 16:37 天津
我的天,一场酣畅淋漓的八股文大战吧
点赞 回复 分享
发布于 2024-12-05 13:59 四川

相关推荐

去年的存货面试公司:字节【基架部门】面试岗位:后端开发面试问题:1.实习项目2.有哪些方案可以避免流量高峰造成的问题- 消息队列削峰填谷- 缓存预热- 负载均衡,分散请求- 限流和降级3.了解常用的限流或者降级的算法嘛?描述一下原理?固定窗口计数器:按照时间段划分窗口,有一次请求就+1,最为简单的算法,但是限流不够平滑且无法应对突然激增的流量。滑动窗口计数器:通过将窗口再细分,并且按照时间“滑动”来解决突破限制的问题,但是时间区间的精度越高,算法所需的空间容量就越大。漏桶:请求类似水滴,先放到桶里,服务的提供方则按照固定的速率从桶里面取出请求并执行。缺陷也很明显,当短时间内有大量的突发请求时,即便此时服务器没有任何负载,每个请求也都得在队列中等待一段时间才能被响应。令牌桶:往桶里面发放令牌,每个请求过来之后拿走一个令牌,然后只处理有令牌的请求。令牌桶满了则多余的令牌会直接丢弃。令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法。4.滑动窗口相对固定窗口算法解决了什么问题相比于固定窗口算法,滑动窗口计数器算法可以应对突然激增的流量。5.【手撕】字符串的z型变换6.操作系统,进程和线程的区别进程是操作系统资源分配的基本单位,线程是cpu调度的基本单位。进程是一个程序的动态运行实例,而线程是进程当中的一条执行流程。进程包含多个线程,线程从属于一个进程;各进程间相互独立,但线程不一定,同一个进程的多个线程可能相互影响。进程切换的开销显著高于线程切换。7.threadlocal的原理就是线程本地变量,如果创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作自己本地内存里面的变量,从而起到线程隔离的作用,避免了线程安全问题。ThreadLocal的底层数据建构就是ThreadLocalMap,它的key就是ThreadLocal的引用,值就是Object对象。8.用户的请求进来,用户的信息怎样在一个请求内传递?在web应用程序中,ThreadLocal可以用来存储当前请求的上下文信息,使得不同请求之间相互独立9.epoll?当调用epoll_create方法时,Linux内核会创建一个eventpoll结构体,用于存放通过epoll_ctl方法向epoll对象中添加进来的事件。这些事件都会挂载在红黑树中,如此,重复添加的事件就可以通过红黑树而高效的识别出来。而所有添加到epoll中的事件都会与设备(网卡)驱动程序建立回调关系,也就是说,当相应的事件发生时会调用这个回调方法,它会将发生的事件添加到rdlist双链表中。当调用epoll_wait检查是否有事件发生时,只需要检查eventpoll对象中的rdlist双链表中是否有epitem元素即可。如果rdlist不为空,则把发生的事件复制到用户态,同时将事件数量返回给用户。10.项目的代码结构是怎样的微服务架构,ddd11.流量是rpc进来还是http进来12.介绍一下rpc和http在使用场景上的区别rpc通常使用在分布式系统、跨语言调用、高性能服务中。http通常使用在网页浏览、RESTful API、文件下载等13.用rpc代替http会有什么问题???14.http底层连接可以基于连接池嘛15.了解golang嘛?了解golang的协程吗16.描述一下动态规划的核心思想?什么样的问题可以用它去解决?17.排序算法有哪些?挑选排序算法的时候要考量哪些?考量:时间复杂度、空间复杂度、稳定性、实现难度、数据规模和特性18.快排是稳定排序的算法嘛?哪些算法是稳定排序的?不是。稳定排序的算法:冒泡排序、插入排序和归并排序19.红黑树相对于普通的树有哪些特征?通常用来解决什么问题?20.mysql的事务隔离级别?21.读已提交和可重复读的底层区别?22.mysql有哪些日志?23.了解redolog吗?24.redolog的刷盘机制是怎样的?25.kafka和rocketmq在业务中使用场景上有什么区别?26.git中版本管理的模型是什么?Git 中的版本管理模型是围绕快照(snapshot)的概念构建的。每次提交(commit)都会记录一个当前所有文件的快照。快照包含了当时整个目录树的状态,包括文件内容和目录结构。27.git的常见操作28.git merge和rebase的区别`git merge` 合并后的历史记录保留了所有分支的历史,呈现出分叉后再合并的结构。`git rebase` 会将当前分支的提交按顺序应用到另一个分支的顶端,这相当于在另一个分支的基础上重新应用当前分支的更改。29.反问#软件开发笔面经##字节跳动#
查看28道真题和解析 软件开发笔面经
点赞 评论 收藏
分享
评论
55
292
分享

创作者周榜

更多
牛客网
牛客企业服务