字节基础架构日常实习 一二三面+hr面

9.16更新醉汉题的两种证明
--------------------------------------------------------------------
9.13 offer
———————————————————————
9.10又想起一点,继续更新。官网状态面试已完成。
———————————————————————
9.8更新了一些想起来的内容与Hr面
———————————————————————
本人写Java的,虽然字节用Golang但是还是问了很多Java的内容,现在基本只记录一些印象深刻的题和算法,其他都是八股。

一面8.31 1h 主要问基础:
查找大量数据之间的几行数据怎么做快(走索引)
B树和B+树的区别,为什么不用B树做索引(可以从IO,连续读取,查找稳定几个方面答)
Redis持久化机制
RDB fork的子进程干了啥
Aof重写Fork的子进程在干嘛
Redis集群cluster模式
哨兵为啥要三个(拜占庭容错)
Spring IOC AOP和用到的设计模式
同一包下相同类不同版本怎么加载(ClassLoader+Class类)
类加载机制,双亲委派
其他都是些Java八股,忘的差不多了,写了三道算法题,两道智力题
1.二叉树右视图
2.快排
3.链表反转

1.烧绳子,一根绳子烧完1h,计时1h15min(先拿两根,一根烧一头一根烧两头,两头烧的绳子烧完时30min,此时点燃一头烧的绳子的另一头,烧完后45min,然后再拿一根绳子两头烧+30min)
2.醉汉坐飞机,100个座位随机找一个坐,最后一个人能坐到正确位置的概率(没答上来,面试官引导说只有两个座位呢?答曰1/2,如果三个座位呢?答1/3*1+1/3*1/2+1/3*0=1/2,当时觉得很神奇)
给个代码的证明
public class Main {
    public static void main(String[] args) {
        int correct = 0;
        for(int i=0;i<1000000;i++){
            if (function()){
                correct++;
            }
        }
        System.out.println("循环1000000次正确率: "+(double)correct/1000000);
    }
    public static boolean function(){
        int[] seat = new int[100];
        Arrays.fill(seat,-1);
        //醉汉0开始坐
        int random = (int)(Math.random()*100);
        seat[random]=0;
        //正常人1开始坐
        for(int i=1;i<100;i++){
            //如果自己的位置没人坐就直接坐下
            if(seat[i]==-1){
                seat[i]=i;
            }else{
                //否则重新找一个没人的位置坐
                random=(int)(Math.random()*100);
                while(seat[random]!=-1){
                    random=(int)(Math.random()*100);
                }
                seat[random]=i;
            }
        }
        return seat[99] == 99;
    }
}
//循环1000000次正确率: 0.49979
数学证明,使用递归的思想



二面9.3 1h 问题深入一点:
MySQL索引
线程池参数和任务执行流程
ThreadLocal
TCP状态
Docker怎么打包成镜像
K8s相关
Nginx负载均衡怎么做,有哪几种方法,怎么实现的
hash节点宕掉了怎么办(病急乱投医,答了取模哈希挂了server少了就定位全错,换成一致性哈希)
分布式相关,一致性哈希(没具体学过但是好像和学过的分布式中的DHT是一样的,答了chord算法,FingerTable以及资源定位的流程)

算法: 01组成的字符串,求01连续并个数相等的子串个数,如001110 有0011,01,10,01,双指针来做,比较巧妙

三面9.7 45min 问项目问实习:
介绍实习中的项目,聊了聊天
Docker怎么分配资源 (只会docker run配置参数不知道具体实现,然后就问了cgroups)
Linux cgroups (Linux的物理资源隔离机制)
K8s (只知道是负责容器编排)
项目中有用过mongo,问Mongo怎么加索引,答没加过
MySQL 索引
B树和B+树 (答了存储位置,关键字和指针的个数,顺序查找,磁盘IO等等)
Redis底层数据结构 (sds与C的char数组区别,有什么优势; quicklist ziplist; skiplist时间复杂度,为什么不用红黑树)
Redis 热key (虽然只是听说过但是他让我联想,最后答出了主从复制集群,读从机)
Java stream 字符流字节流 (没用过)

算法题: Maximum Volume 依旧双指针

面完收到hr面通知

Hr面9.8 25min:
公司介绍
面试体验
跨考经历
城市选择
多久入职
学习方法
业余爱好

总的来说算法题不难(相较暑期来说),字节面试八股相对来说不多,会根据简历来提问,每个人的问题大相径庭,目的是想了解你知道的知识知道的有多深,如果你能结合一些课程知识让面试官知道你不是背的,会比较加分。最重要的是联想其他的知识,如集群和分布式的理论知识,知道命名,容错,一致性等概念基本上能回答所有集群相关的问题,如Kafka,Elasticsearch等组件的容错机制(副本,切片)与Hdfs几乎一致。总的来说面试官水平很高,自己也有些运气成分。

#实习##面经##基础架构工程师##字节跳动#
全部评论
RDB fork的子进程干了啥----这个肯定要答出,写时复制机制. Aof重写Fork的子进程在干嘛----父进程缓存写命令
3 回复 分享
发布于 2021-10-12 19:20
我大概懂了,只有一个人是醉汉,还是n个人全都是醉汉?
2 回复 分享
发布于 2021-09-25 10:01
醉汉坐飞机那个,是我没看完题意吗?我觉得分母是n个人n个位置排列An_n;分子是第n个人坐到第n个位置上,前面n-1个人排列A(n-1)_(n-1)。分子/分母=1/n,这样计算有什么问题吗?
2 回复 分享
发布于 2021-09-25 09:55
算法题问得蛮多的
2 回复 分享
发布于 2021-09-07 20:11
醉汉那个是不是因为没有验证,无论前面多少人坐下,其实都不知道到底坐对没,所以最后一个人也是 百分之一,只是他是被动选择而已,但概率并没有区别
1 回复 分享
发布于 2021-09-14 19:19
科软xd路过,三面后六天了,oc你赶快来呀😣
1 回复 分享
发布于 2021-09-13 01:25
我也是这学期研二想投字节日常实习,但你的那些问题我都答不上来😶
1 回复 分享
发布于 2021-09-10 08:23
厉害 本科生?
1 回复 分享
发布于 2021-09-07 18:53
那道飞机坐座位你确定是1/2?  我算出来是1/100,我的思路,100个人做一百个座位的方案有100!种,我们假设第一百个人做对位置,其余99个人我不管,那么就把那第一百个人的位置预留出来,前99个人的坐法我不管,那么就是99个人坐99个位置,有99!种坐法,那么第一百个人坐对位置的概念为99!/100!=0.99,坐错位置的概率1-0.99=0.01
点赞 回复 分享
发布于 2022-02-23 16:33
厉害了,好多东西我听都没听过
点赞 回复 分享
发布于 2022-02-18 22:10
老哥,https://codetop.cc 的字节题库准吗
点赞 回复 分享
发布于 2021-12-07 22:01
三面的算法是啥啊,Maximum Volume 是leetcode题吗
点赞 回复 分享
发布于 2021-10-28 09:35
请问楼主,基础架构工作时间?
点赞 回复 分享
发布于 2021-10-08 10:23
老哥我咋感觉基础架构和java开发问的东西差不多
点赞 回复 分享
发布于 2021-10-04 10:29
老哥是马上就去还是寒假实习呀
点赞 回复 分享
发布于 2021-09-14 21:01
科软hxd太强了,感觉问你的东西我好多都不会
点赞 回复 分享
发布于 2021-09-14 11:25
比我问的难多了,我研三秋招,也是上海基础架构😂
点赞 回复 分享
发布于 2021-09-11 11:32
大佬是要去北京实习吗
点赞 回复 分享
发布于 2021-09-11 09:39
科软xd?
点赞 回复 分享
发布于 2021-09-10 02:26
太强了。。。楼主大三还是研二
点赞 回复 分享
发布于 2021-09-09 17:34

相关推荐

字节搜索二面挂当天被捞1、自我介绍2、你提到了用户的关注与取关,你用户关系服务是怎么设计的?(定义了关注表与粉丝表,两个表内容一致)3、你怎么保证两个表内容一致的?(目前是通过事务保证的,后面其实还可以通过订阅&nbsp;binlog&nbsp;伪从来保证一致性)3、如果是大&nbsp;V&nbsp;的情况,你有考虑到吗,做了哪些处理应对这种高并发(Redis&nbsp;缓存+二级缓存,冷热数据分离)4、分布式&nbsp;ID&nbsp;你都用来生成什么&nbsp;ID&nbsp;的?(笔记&nbsp;ID,用户&nbsp;ID,用户&nbsp;ID&nbsp;用的号段模式,笔记&nbsp;ID&nbsp;考虑到雪花算法自带的时间戳可以实现冷热数据分离,发布久远的笔记不缓存在&nbsp;redis,后由于点赞系统采用咆哮位图高效判断,但咆哮位图基本只能存储&nbsp;32&nbsp;位,遂也改为号段模式生成,生成效率基本没差多少)5、那你说说点赞系统怎么设计的?为什么改为咆哮位图了?(先是采用&nbsp;Set&nbsp;数据结构判断,后因为满足高并发需求,Set&nbsp;模式占用内存太多,又改用布隆过滤器实现,大大降低内存占用。但布隆过滤器在判断存在时存在误判,需要从数据库进行二次校验。后改用咆哮位图,既能高效判断点赞与否,内存占用也大大降低)6、那你讲一下咆哮位图的机制,为什么有你说的这些优点?7、MySQL&nbsp;了解吧,你讲一下&nbsp;MySQL&nbsp;的索引(一顿吟唱)8、说一下聚簇索引和非聚簇索引的区别9、联合索引再说一下,如何定义联合索引最好?(设计成覆盖索引)10、联合索引的顺序重要吗?(顺便再说一下索引下推)11、算法1:二叉树展开为链表12、算法2:根据层序遍历建树反问
查看13道真题和解析
点赞 评论 收藏
分享
评论
16
138
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务