字节跳动android面试题,Android面试题持续更新:面试大厂请收好这份钉钉和抖音的面经!...

6e9274cfb66e56d3e0abc0f989bc041d.png

今天分享下钉钉远程面试经历的一个分享和一些心得,但愿对你们可以有所帮助。面试

阿里巴巴 -- 钉钉部门

阿里钉钉一面(面试时长80min)算法

自我介绍,对本身项目的介绍,架构图呈现

由于说本身之后的发展方向是音视频,因此问了我用过哪些现有框架

项目中的一些优化问题,MVC -> MVP,Handler的内存泄漏状况分析等,对MVP和MVVM的理解。

项目中的第三方库选择的问题,由于简历中写了我对第三方库选择的问题,好比选ObjectBox和greenDao的问题,图片加载框架问题

HashMap和HashTable,引伸ConCurrentHashmap的深刻,version1.7和1,8的区别,以及高并发下HashMap发生的问题

四大启动模式,以及场景对应

Handler的机制介绍,不存在消息时的IdleHandler的运做机制,为何不能在子线程初始化问题

设计模式中的单例介绍,使用场景(Okhttp的Seesion存储等等),在线编写

快排算法

OkHttp的源码分析,及总体架构的流程图绘制

四大组件的完整介绍,及深刻,答了IntentService、LocalBroadcast

四大引用的问题和MVP框架相结合进行回答

网络中的响应码对大致进行回答,具体回答了200、40四、500、304等

View绘制流程问题,如何不使用xml,来实现中间位置的定位

事件分发机制流程讲解,以及如何实现单击事件和长按事件的断定

关于为何选用mqtt协议的问题,优点,原理等等(没答上来,只说针对性作过测压,以及oceanlink和mqtt的对比)

阿里钉钉二面(面试时长30min)设计模式

自我介绍,优缺点的,以及将来但愿的发展方向

目总体介绍,如何作到分压啊之类的问题

若是给我阿里、腾讯、头条、谷歌的offer的一个选择(不掺杂地域性的问题),首先直接否认了google我就的一个企业的商业模式进行分析。

我对钉钉这个产品的理解,个人回答是就的是钉钉前身的对标项目微信,已经后期转型的商业模式做出的分析,最后给出的个人结论是一个企业性质的办公软件

给出了钉钉一个mac平台的关于共享屏幕的耗CPU的问题

让我提问,提的是关于音视频发展方向的问题,具体是一个发展空间。

阿里钉钉三面(面试时长60min,有几率通,要等hr)安全

自我介绍呗,仍是同样,项目介绍,项目的优缺点对比

对MVC和MVP的理解,还有Handler的内存泄漏问题具体是什么,解决方案知道有什么,空数据的时候Handler的阻塞问题,可是我仍是没在Looper的源码中找到,这里让我好好再看一下。

另外为何使用MVP,他的优点是什么,内存泄漏是什么样的。

http的长链接和短链接这两个概念,怎么去理解。我把它理解为持久化链接是什么,而后对http的3个版本的主要区别作一个介绍

http一整个流程,什么Baidu.com输入,通过了什么。比较简单的问题了,必答内容DNS、TCP的三次握手、四次挥手,固然我再答一些IP路由、链路还有物理层的内容

RecyclerView的一个复用机制,和ListView的一个区别在哪里

HashMap、ConcurrentHashMap、Hashtable的问题,数据结构,线程安全啊之类的问题了,固然仍是考了version 1.7和1.8。

一个app的启动流程,冷启动和热启动,我说底层我不太了解,只知道会有AMS去调一些东西,可是具体内容不知道,后面就是一些初始化和Activitiy生命周期问题了。

一到算法题三值之和求目标值,没写暴力,由于你们都会写,可是浪费了不少时间,刚开始是经过二值求和的方式,可是想作成O(n),其实不太可能,后面改为了O(n^2)

ba392bc32845943a543870f2578f2232.png

字节跳动 -- 抖音部门

字节抖音一面(面试时长50min)微信

接口和抽象的理解

进程和线程的理解

各类单例建立的理解,以及DCL的同步机制为何这么作,其余的设计模式知道的,以及应用场景。

MVP和MVVM的理解,P层它主要作什么工做,你如何实现的M、V、P三层的通讯。

Handler的工做流程,Handler可否在子线程初始化以及用什么方案来替代Handler的在子线程初始化。

JVM的组成成分,以及你对四大引用的理解

四大启动模式的启动方式以及场景分析,如过一个按钮对应页面跳转,如何点屡次只进行一次跳转,两种方式回答

对http和https的理解

Broadcast和LocalBroadcast他的一个区别

Static变量他的用处是什么,具体应用场景。

一道两个链表的相加问题。思路+伪码实现(这里和阿里不同,由于是牛客的平台,其实编码体验没有特别好,面试官让我用伪码来实现思路就能够了)

字节抖音二面(面试时长70min)网络

先自我介绍,问项目,老样子的MVP、MVC的理解,Handler中的内存泄漏

重点要讲Handler的内存泄漏,为何会引发内存泄漏?(源码角度分析)解决方案有哪些?(说了三种)

为何个人库中的MVP要基于范型实现,实现思路,还有泛形擦除(主要说了公共逻辑抽离这一块的内容)

对View自定义的一个了解

基于对网盘的理解,让我分析上传、下载这两块的内容,让我来作,会作什么样的处理,启发内容见下文:

关于上传方面:定时上传和马上上传两方面的分析,针对的是数据量的大小

关于下载方面:线程安全(voliate / sync),线程池的使用,参数理解等等,断点重传的问题,应该怎么去进行实现。

还有整个的若是Activity忽然断了,或者被kill了,如何对数据或者下载的位置进行保存

ButterKnife原理实现

一道深度遍历和公共节点寻找的题(给出了复杂度极高的方案,面试官给了好的方案,可是问题停留在了公共节点寻找)

字节抖音三面(面试时长70min,有几率通,要等hr)数据结构

问了项目架构,以为项目有什么样能够升级的地方

泛型擦除,通配符的问题,主要作了extends和super的回答

从哪里了解的objectBox,和greenDao相比以为他有什么样的优势,性能有进行过测试嘛(只看过官方数据),图像加载框架的选用。

从内存泄漏问题推倒到jvm的深层次问题,可达性分析的GC Root有什么,虚拟机栈和堆的关系,方法是怎么实现的。

问我以为本身的优点是什么,说了我对一些框架的理解

对Kotlin和Flutter的一个了解程度的理解,还有为何学习的一个现实缘由,和学习方法。

数学题了,相似于斐波那契数列,可是关系式还没推倒出来。

用循环的方式去实现一个先序遍历,说的一些方案不用写代码。

以上就是钉钉和抖音的面试经历,若是有什么我没有思考到的地方或是文章内存在错误,欢迎与我分享。架构

最后

今天分享的面试题就到这里,仍是那句话,有些东西你不只要懂,并且要可以很好地表达出来,可以让面试官承认你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工做当中你压根不会用到它,可是你要知道它是什么东西。并发

无论怎么样,不管是什么样的大小面试,要想不被面试官虐的不要不要的,只有刷爆面试题题作好全面的准备,固然除了这个还须要在平时把本身的基础打扎实,这样不论面试官怎么样一个知识点里往死里凿,你也能应付如流啊~app

最后这里是关于我本身的Android 学习,面试文档,视频收集大整理,有兴趣的伙伴们能够看看~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值