26届双非 字节跳动 Android端 一面凉凉经

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和MVC
14.能说一下MVVM架构和其余架构比较的优劣势吗?
这里主播太紧张了,只说了MVP架构的劣势,面试官也没说什么,可能是主播答的太乱了,听不懂哈哈
我的第二个项目xxx里面使用的就是MVP项目,感觉较大的缺点就是定义的接口会很多,比如说现在有两个界面同时都需要用到这个接口里面的函数,但是其中一个界面只需要这个接口里面的一个功能,但是还是要实现,就实现了他不需要的接口函数,就不符合设计模式里面的接口隔离原则
15.看你项目里面使用了Retrofit,Retrofit是什么?Retrofit的实现原理了解吗?
答,Retrofit是基于okHttp的又一层封装,本质上还是一个网络请求框架,主要是通过注解的形式来简化请求过程。
主播没怎么看懂Retrofit的源码,所以如实说了不怎么了解源码说比较了解okhttp
16.那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分钟

好了,本次分享到此结束#牛客解忧铺##牛客AI配图神器#
全部评论
感觉8的时候,就是想让你迁移一下LeakCanary的实现原理
1 回复 分享
发布于 06-06 11:42 湖北
友友有offer了吗,我已经面麻了
点赞 回复 分享
发布于 06-10 21:04 甘肃
mark
点赞 回复 分享
发布于 05-31 12:06 湖北

相关推荐

不愿透露姓名的神秘牛友
05-29 17:41
到了毕业的时候了,准备二战,原本的计划里面其实我的未来一直都有他的存在的,之前想的是他去哪里我可以努力陪着他去,我身边认识的一个男生也是为了他女朋友去的上海,其实分手之前我也想着努力去上海工作的,很早很早我就知道我家里人大概不会同意我和他有个结果吧,我和他的距离太远太远了,但是我想要是他坚定一点的话,我可以为了他让家里人同意,我可以不看这些最后和他走到结婚那一步的,只是没想到毕业季终究还是分手季了,其实回顾我和他在一起这三年多,我以为他会坚定的选择我,结果最后走到了分开的这一步,挺难过的吧,我总觉得两个人能磨合三年多真的很不容易,所以最后还是在争取,但是失败了结束了,只能说是我不好,是我一直没意识到我们的问题的严重性才走到了这一步,很遗憾,但是没办法,我真的很想他其实我一直挺幼稚的,我知道分开其实对我或者对他可能都是一件好事吧,都能更好地成长,我希望他以后的工作和生活都能顺顺利利的,即使没有我陪在他身边,我一直都很心疼他,我希望他平平安安的,校园恋爱其实真的挺美好的,没有经济什么的压力,只有两个人开开心心的,不知道未来会怎么样,但是我会在分开之后更加专注于自身吧,他真的很优秀很厉害,我相信他未来一定会顺利的。
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

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