字节跳动 二面凉经

整体偏难,很多非常规问题,全程1.5小时。

1. 自我介绍
2. 项目中提到通过sdk的方式暴露给开发人员使用,但是如果你这个代码发生了变动所有其他人员都需要更新包,有什么方法让其他人非感知到地进行升级吗
3. 在调用配置中心的时候,客户端是怎么感知到服务端的配置发生了变化的呢?
4. 如果让你自己去实现,该怎么做,用哪种进程间的通信方式?
5. (我这里提到了消息队列的方式去拿)问 那这里是意思要用一个线程或进程去死循环查询这个队列吗?
6. 如果是线程的话,是怎么获取到这个地址的数据的呢?
7. 有没有接触过底层进程间通信的代码开发(问到这里我感觉可能已经凉了,我只是个sql boy啊)
8. 匿名管道和文件管道的区别(这个有点冷门了)
9. fork的时候是否会创建fd
10. 刚才提到的配置中心,服务端是怎么主动推送消息的?
11. 推送消息用事件驱动怎么去做?
12. epoll原理
13. 看你用到了redis,如果是多主节点,分布在不同的机房,同步规则是啥?
14. 写入的时候是只写最近机房的集群吗?其他机房集群有写入功能吗?还是只是读取
15. 两端实习中有没有遇到sql查询优化的问题?
16. 为什么会引起索引失效?最左前缀法则?
17. 从b+树的角度去讲一讲,如果插入节点的时候达到了页上限,树结构怎么调整的(b树的自旋,这块忘了)
18. 算法: lc301 删除无效括号 非常规hard题 没写出来 寄

整体上感觉都挺难的,尤其最后这个算法没见过而且还是个hard题,撕了25分钟没效果,寄。

#字节跳动# #java# #实习# #面经# #牛客创作赏金赛##后端开发#
全部评论
这是java岗的题?都没见过
6 回复 分享
发布于 02-27 15:34 安徽
这还是实习吗,这快赶上社招了吧
3 回复 分享
发布于 02-27 19:03 北京
佬,请问字节算法题是飞书里面去写吗,标准的acm模式吗
3 回复 分享
发布于 02-27 13:26 安徽
好难
点赞 回复 分享
发布于 03-24 00:33 吉林
这算法题有点
点赞 回复 分享
发布于 03-17 23:53 江苏
佬可以试试贝壳呢,主页有~
点赞 回复 分享
发布于 03-17 23:22 北京
多主节点不需要同步啊,集群是哈希槽均摊到多个节点的,只有主从复制才需要同步
点赞 回复 分享
发布于 03-16 21:35 湖北
mark面经
点赞 回复 分享
发布于 03-12 02:02 湖南
太吓人了,没几个会的
点赞 回复 分享
发布于 03-03 23:42 浙江
好难
点赞 回复 分享
发布于 03-02 23:37 北京
好难啊我去
点赞 回复 分享
发布于 03-01 23:58 广东
暑期实习吗
点赞 回复 分享
发布于 02-27 22:39 北京
好难
点赞 回复 分享
发布于 02-27 21:20 湖南
哥们你这第一个项目是动态线程池吗
点赞 回复 分享
发布于 02-27 18:16 广东
噩梦难度
点赞 回复 分享
发布于 02-27 15:56 黑龙江
13咋答
点赞 回复 分享
发布于 02-26 22:32 江苏
好难
点赞 回复 分享
发布于 02-26 22:23 湖南
sdk无感知那个应该怎么回答?
点赞 回复 分享
发布于 02-26 22:17 陕西
好吓人
点赞 回复 分享
发布于 02-26 21:12 山东
好家伙 这道题还是挺难的
点赞 回复 分享
发布于 02-26 20:57 北京

相关推荐

0.直接问是不是叫xxx,没有让自我介绍,哈哈主播还准备了呢1.问项目是什么?是否是从0到1自己实现的?Android端是自己从0到1实现的,后端是网上开源的,调的其他人的接口。2.项目中写了 采用 MVVM架构 功能迭代速度提高了百分之xxx,使用 Kotlin 减少了百分之xxx的时间成本 这些数据是如何得到的?对比之前写的MVP项目所用的时间得到的,编写MVVM项目所用的时间实际上是比第一个短的3.使用 Kotlin 降低的代码重复率是如何得到的?Kotlin的语***比java简单很多,代码量也会比较少4.我看你简历里写了内存泄漏,你是如何检测内存泄漏的?使用AS自带的内存泄漏检测工具5.这个工具是如何检测到内存泄漏的,具体的原理是什么?主播答了垃圾回收机制的一些东西,好像毫不相干...根部搜索法,从根部开始搜索对象引用链,没找到的对象就是可以回收的对象(应该还要说,如果对象可以被回收却没有回收,就是发生了内存泄漏?)6.内存泄漏的原理是什么?长生命周期对象持有短生命周期对象的实例。7.Android最常发生内存泄漏的是什么?Activity(主播开始乱答,不知道对不对)8.让你设计一个检测Activity内存泄漏的算法,你会如何设计?主播真的不会啊,但主播还是要说...在onDestory中判断一下?然后问主播具体一点呢?主播答不知道9.说一下java里面的引用类型?主播说String、List这些?哈哈,面试官尴尬的笑了,说不是,比如说强引用、弱引用这些主播开始回答:强引用:只要对象被持有,就无法被回收软引用:只要内存不够,对象就会被回收弱引用:只能存活到下一次回收前,对象就会被回收虚引用:其实不会真正的持有对象的引用,一般用于追踪对象的生命周期。10. 能说一下java的垃圾回收机制吗?首先要判断对象是否要进行回收,常用的算法有引用计数法,就是对象被引用一次就进行计数,为0就说明没有引用,可以回收;第二个就是根部搜索法,从根部开始搜索对象引用链,没有被搜索到的就是没有引用,可以回收;再者就是要进行垃圾回收,首先判断对象的类型,是新生代还是老年代,采用不同的回收算法,因为新生代的对象的生命周期一般比较短,而老年代的生命周期比较长,一般新生代的一般采用复制算法,而老年代则采用...(主播当时忘记那个名字了,没答出来),复制算法,主要就是把内存分为两部分,然后每次只对一部分进行回收,然后把存活的对象移动到另一部分;老年代采用的那个算法,主要也是把内存分为两部分,但是不是1比1分的,好像是1:1:8?然后每次只对1:1进行回收,然后把存活的移动到另一部分内存?这里主播不太记得了,主播答的太着急了,好多之前了解过的都没说出来11.看你简历里写了自定义控件,可以说一下View的绘制流程吗?主要是先进行测量onMeasure(),onMeasure中主要测量各种view的宽高,方便后面onLayout()进行布局摆放 然后进行布局onLayout(), 最近进行绘制onDraw()。又问具体是怎么测量的呢?主播又不知道了,因为主播没看过源码但主播还是选择说一点答,调用view自带的哪些getHeight(),哪些获得它们的宽高,然后进行计算?12.我看你项目使用的是MVVM架构,能否说一下什么是MVVM架构?MVVM架构是Android常用的架构之一,使用它能让我们的代码更加的简洁,它是由三层组成的,View层、ViewModel层、Model层,View层就是界面层,主要用于显示界面;ViewModel层主要用于处理View层和Model层的交互,使二者解耦,Model层就主要用于业务逻辑的处理,比如说网络请求这些。比如说,我们可以在Model层编写网络请求的代码,而后在ViewMode层进行调用,之后把数据放到LiveData里面,而后View层就可以监听这个LiveData实现数据的更新。13.常用的架构还有哪些?MVP和MVC14.能说一下MVVM架构和其余架构比较的优劣势吗?这里主播太紧张了,只说了MVP架构的劣势,面试官也没说什么,可能是主播答的太乱了,听不懂哈哈我的第二个项目xxx里面使用的就是MVP项目,感觉较大的缺点就是定义的接口会很多,比如说现在有两个界面同时都需要用到这个接口里面的函数,但是其中一个界面只需要这个接口里面的一个功能,但是还是要实现,就实现了他不需要的接口函数,就不符合设计模式里面的接口隔离原则15.看你项目里面使用了Retrofit,Retrofit是什么?Retrofit的实现原理了解吗?答,Retrofit是基于okHttp的又一层封装,本质上还是一个网络请求框架,主要是通过注解的形式来简化请求过程。主播没怎么看懂Retrofit的源码,所以如实说了不怎么了解源码说比较了解okhttp16.那okHttp的责任链是怎么实现的呢?首先是okhttp里面定义了一些默认的拦截器,从第一个拦截器开始,通过执行一个函数,通过索引来控制拦截器的执行过程,每个拦截器执行完自己的责任之后,就将索引+1,然后回调到原来的类,继续执行下一个拦截器的任务。这里主播答得比较乱,面试官好像没怎么听懂私密马赛17.能说一下tcp的四次挥手吗?tcp的四次挥手主要是用于断开连接的,第一次是由客户端发出,告知服务器我要断开连接了,第二次是服务器收到请求,告知客户端我收到你的请求了,但是由于服务器还有一些别的任务没有完成,所以还有再等一下才能断开连接,再发出第三次请求给客户端告知它可以断开连接了,而后第四次客户端就彻底断开连接了。(这里主播答的也是乱乱的,好紧张...)追问:少了第四次会怎么样?主播有点忘了哈哈,又开始乱说答,导致服务器资源无法释放?18.你觉得项目中比较有挑战的是什么呢?收藏功能的实现19.输入网址之后发生的一些列事情主播不太会,答了一点点,提到了DNS服务器,从DNS服务器中找到要发生的服务器地址,然后进行发送20.DNS主要实现了什么?主播不会21.说一下Java中synchronized(这个问题应该在前面,主播忘了位置了哈哈)被修饰的代码块,同时只能有一个线程进入...巴拉巴拉主播忘记了22.了解过java的acs吗?主播没听过哈哈,后来查了一下好像是一种对称加密算法然后手撕的算法主播都没撕出来一紧张就没什么思路1.一个生产者和五个消费者的模拟主播没思路,面试官说主要是锁同步的问题主播还是没思路,面试官人太好了,一再退让,说可以写伪代码写到一半,面试官看不懂了哈哈,让主播讲思路私密马赛生产者的任务是不断生产产品存到容器中,直到容器满消费者的任务是不断从容器中取产品,直到容器空或者当前容器被其他消费者占用2.螺旋数组的升级版大致是,给定一个数组,要求将数组 逆时针 螺旋填充为一个m*n的二维数组不出意外,主播不会,主播说做过类似的,但是没思路卡了十分钟左右,主播准备放弃(因为不好意思浪费面试官的时间),对面试官说没思路,面试官说之前写过的题有思路吗?主播开始答非所问,其实也答不出来,因为主播忘记了解法,大概只记得之前那道是先要判断循环填充的圈数,但是这道题是m可以不等于n的,所以主播不知道循环的条件,没有一点思路。主播太菜了私密马赛emmmm好像手撕的环节是在问问题的中间?然后就是聊天1.问职业规划2.问最近学习的新技术3.问实习最长时间4.问base意向是哪里5.问目前有没有别的面试6.问有没有考研的打算反问其实主播也不知道问什么好,哈哈1.现在项目主要是用哪些框架比较多答,和主流的都差不多,但是会有一些自己新的东西,大概是这样,哈哈,主播听不懂2.现在项目使用的语言都换成kotlin了吗?还是依旧使用java答,都是使用kotlin总时长差不多是50分钟好了,本次分享到此结束
点赞 评论 收藏
分享
评论
32
185
分享

创作者周榜

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