字节日常实习系统架构(一二面已offer)

系统架构一面:

较多八股

1. java的内存结构

2. gc垃圾回收会回收栈和方法区吗

3. 一个对象在堆和栈里面怎么分配内存(int和Integer),程序计数器是在栈上移动,怎么调用对象

4. java是值引用还是指针传递

5. 四种引用类型

6. 垃圾回收被判断为垃圾的对象还有机会吗

7. java的面向对象的特性

8. 接口和抽象类的区别, 接口内部可以实现类吗(内部类)

9. java的锁类型,java内部实现的锁,cas,reentrantlock,公平锁和非公平锁,sychronized锁的升级

10. thread local(没用过多线程)

11. 单线程和多线程的区别,线程和进程的区别

12. IO多路复用,redis里面IO多路复用怎么实现处理多个请求,如果redis放在多核的服务器上有用吗?

13. 线程和进程切换上下文开销为什么会更大,涉及到内核态和用户态的转换吗

14. 协程

15. redis的数据类型

16. 有序集合怎么实现,跳表和B+树的区别,B+树为什么适合mysql数据库

17. 数据和链表的区别

18. hashmap的底层数据结构,没了解过treemap,如果要你实现一个treemap怎么实现(红黑树)

19. 计网tcp和udp的区别,tcp的拥塞避免,udp的应用场景(视频的时候可以允许包的丢失,比如丢失一两个字)

20. 算法题:合并有序链表

 

3. java一个线程的执行都对应一个虚拟机栈,线程的方法执行对应栈帧的入栈和出栈,堆栈共用其实是将运行和存储分离,程序运行和上下文切换都是在栈中,栈的大小不是动态变化的,而一个对象的大小是不可估计的,所以栈中只存放基本数据类型,和对象的引用,这样对象存放在堆中更合适,线程执行的时候,只需要从栈中取的堆的引用就可以了。

8. 接口是不能实例化的,但是接口内和普通类一样可以定义内部类,这个内部类是可以实例化的

12. redis是单线程,redis并不适合多线程,单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),其他模块仍用了多个线程。一个是内存内的数据结构如果是多线程要上锁,要多很多复杂的操作,得不偿失,对内存的操作本来就很快了,多线程反而多了上下文的切换时间,如果部署在多核服务器上,官方的解释是可以在多核上开多个redis实例,实现分片集群

13. 线程的上下文切换一般在进程内部的虚拟地址切换,除了不同进程间的线程间切换,进程切换要切换硬件上下文,如果多核cpu可能还要涉及cpu转换,其实主要是因为进程是对应内存资源的基本单位,各个进程间的内存资源都不一样,切换麻烦,而同一进程下的线程切换只是在共享资源间切换,就方便许多。

16. B+树更矮,mysql需要对磁盘进行读取数据,B+树作为索引,对磁盘的IO次数更少,对磁盘的IO很费时,所以次数越少越好

 

系统架构二面

1. 有一篇数据库领域的A类文章,跟面试官聊了二十分钟

2. 聊完之后他问我最近在学什么,我说redis

3. 然后我从redis的底层数据结构,到五种对象,然后单机,多机,主从复制,哨兵机制,分片集群给他过了一遍,都是讲了一个概念,没深讲,差不多讲了十分钟吧

4. String的底层结构是什么?相比C的string有哪些优化

5. 跳表的实现

6. 分片集群的时候,如果一次性访问多个key,但是不在一个节点上,是怎么确保能取到正确结果的

7. 算法题:一亿个三维节点,怎么设计一个数据结构,让每次执行Topk(x,y,z,k)的时候能找到距离最近的k个点

 

二面完第二天约hr面了,hr面视频聊了十分钟就直接发offer了,不得不说字节的效率还是很高的,相比同时进行的hw,字节都拿到offer了,才开始约一面时间

#字节跳动日常实习##字节跳动##面试题目#
全部评论
老哥去哪投的简历啊 感觉问的问题还好、不难
2 回复 分享
发布于 2022-01-16 12:51
阿里云日志服务招实习,有意向可以投简历至xuyajun.xyj@alibaba-inc.com
1 回复 分享
发布于 2022-02-14 17:22
抖音部门的Java面试是不是要难一点啊😢 我看好多字节的Java面经难度都参差不齐的
1 回复 分享
发布于 2022-02-07 00:33
这个和我面电商的那个简直不一样,为什么没有系统架构捞我?😭
1 回复 分享
发布于 2022-02-01 21:10
一亿个三维节点,怎么设计一个数据结构,让每次执行Topk(x,y,z,k)的时候能找到距离最近的k个点 想问问最后一个设计题思路: 我思路(感觉不行):设计一个{x,y,z,value}带权值的数据结构,存集合按value自动排序,然后搜索最近k点也按value去搜索它周围的点吗(我想法是这样,然后具体value权值怎么算,也没想好)
1 回复 分享
发布于 2022-01-25 15:13
数据库A会 真牛逼
点赞 回复 分享
发布于 2023-03-06 15:07 台湾
系统结构也要问八股吗?我看岗位要求里面只有算法、数据结构和OS,呜呜呜呜
点赞 回复 分享
发布于 2022-03-15 10:25
第二个三维点要怎么做啊,除了遍历想不到其他方法了😂
点赞 回复 分享
发布于 2022-03-01 13:49
老哥是实习三个月还是两个月?
点赞 回复 分享
发布于 2022-02-25 21:54
老哥base在哪
点赞 回复 分享
发布于 2022-01-15 21:32

相关推荐

楼主计算机专业,北邮本+qs30研,6月毕业,无后端实习,由于方向改变准备国内校招,8月中才开始准备本科学的C,C++,舒适区是Python,但国内后端全是java和go,了解到java岗多所以选了java准备,基本上是从零开始学语法的程度,但现在越学越发现知识体系还是太庞大了,面试几次完全领会了什么叫 基础不牢地动山摇通用的那些数据库redis消息队列还好,但java和spring本身因为完全没实际用过,一偏离概念性的八股问实操就露馅,面试官也会委婉地问是不是没咋写过按照现在的程度,感觉秋招java应该是可能性不太大了?所以想着重准备春招,现在的问题就是:“在都约等于零基础的两门语言中,应该挑Java还是Go入门?”目前我能想到的:java好处是岗位广,大小厂央国企都有;坏处就是技术债太多,语言本身复杂,八股又多又深,很难在短时间内准备到能跟java舒适区的人竞争的程度;go的好处是语言现代简洁好上手(用惯了python真的很难接受java),目前来看八股比java还是要少很多,此外就是跟java相比和大家起点更接近一些;问题自然就是岗位少;此外听过一个说法就是所谓92用go更好因为简历不卡人?不太懂原因一些通用的东西比如 刷题 数据库 各种中间件,包括现在的几个java面试还是尽力准备,但之后的方向就得再考虑一下了想法非常局限!跪求牛友们指点!
猫头夜鹰:现在准备秋招已经来不及了吧,学java春招
点赞 评论 收藏
分享
09-11 19:58
门头沟学院 Java
项目拷打 1.谈谈对整个rpc远程调用的一些理解2.rpc框架的缓存层的更新策略和过期逻辑是怎么样的?(过期机制没有实现(踩雷))3.zookeeper回调失败了怎么办呢?(没有考虑到)4.你有了解过zookeeper大概能抗多少qps(不知道,就随便猜了个数比如1万)5.你还了解其他的一些服务发现的中间件它们的管理服务注册与发现的一些方法吗(简单说了nacos的轮询)6.说一下不同序列化协议的一些差别,以及为什么一个rpc框架为什么要那么多的序列化协议7.继续第6题,那么我们线上技术选型的时候该怎么去选这些序列化协议8.你本地缓存里的缓存数据是什么格式的(面试官补充:你存的这个value是通过json序列化缓存到本地的,还是对象本身缓存到本地的,还是通过一些压缩方式)9.假如说如果通过不同的序列化格式缓存到本地的话,他们的区别是什么(面试官补充除了这个还有什么深层次的区别以及应用上考虑的因素)?(这里我答的太唐了,直接说内容是不一样的)10.对微服务的理解你能谈一谈吗?11.既然微服务那么好,为什么还会有单体架构设计的存在呢(从软件体系结构上来讲)?(此处懵逼,我直接说易于开发,性价比高)12.微服务的一些劣势是什么呢及它的一些痛点?(从我的角度出发)13.我看你项目中聊到负载均衡,你能讲讲在计算机网络中(4层模型和7层模型的在负载均衡的区别或者应用上的区别)?### 八股拷打jvm调优你有什么思路吗 ?启动jvm的时候,可以指定一些jvm参数,那你怎么设置呢?OOM(内存溢出)有那些常见的场景呢?以及分别的解决方案大概是怎么样子?线上发生OOM,你有什么排查思路么?你能说说G1垃圾回收器的工作原理吗?java语言,如何判断两个对象相等呢?了解深拷贝和浅拷贝吗,如何实现深拷贝?http中post请求和get请求有什么区别?get请求用于更新数据能更新吗?如果可以为什么要用post呢?get请求可以携带body吗?http的状态码都有哪些?http和https的区别是什么?redis有哪些常见的数据结构?zset的底层数据结构是什么?跳表和哈希表的区别是什么?跳表执行插入和删除操作,哈希表执行插入和删除操作,底层是怎么做的?------------------------------------------------------------------------------手撕算法(两题都做不出来)leetcode 402. 移掉 K 位数字(原题改了一点存在前导零的情况但是不计数删除次数)leetcode 162. 寻找峰值(不可以使用暴力)-------------------------------------------------------------------------------//总结自己对项目的理解还不够,算法刚开始刷,基础不行,还需要继续努力
查看29道真题和解析
点赞 评论 收藏
分享
评论
13
131
分享

创作者周榜

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