写点什么

收好这份钉钉和抖音的客户端面经,真的很重要!,ndk 开发环境

用户头像
Android架构
关注
发布于: 1 小时前

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


  1. 自我介绍呗,还是一样,项目介绍,项目的优缺点对比

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

  3. 另外为什么使用 MVP,他的优势是什么,内存泄漏是什么样的。

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

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

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

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

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

  9. 一到算法题三值之和求目标值,没写暴力,因为大家都会写,但是浪费了很多时间,刚开始是通过二值求和的方式,但是想做成 O(n),其实不太可能,后面改成了 O(n^2)


字节跳动 -- 抖音部门




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


  1. 接口和抽象的理解

  2. 进程和线程的理解

  3. 各种单例创建的理解,以及 DCL 的同步机制为什么这么做,其他的设计模式知道的,以及应用场景。

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

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

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

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

  8. 对 http 和 https 的理解

  9. Broadcast 和 LocalBroadcast 他的一个区别

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

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


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


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

  2. 重点要讲 Handler 的内存泄漏,为什么会引起


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


内存泄漏?(源码角度分析)解决方案有哪些?(说了三种)


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

  2. 对 View 自定义的一个了解

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

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

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

  6. 还有整个的如果 Activity 突然断了,或者被 kill 了,如何对数据或者下载的位置进行保存

  7. ButterKnife 原理实现

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


字节抖音三面(面试时长 70min,有概率通,要等 hr)


  1. 问了项目架构,觉得项目有什么样可以升级的地方

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

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

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

  5. 问我觉得自己的优势是什么,说了我对一些框架的理解

  6. KotlinFlutter的一个了解程度的理解,还有为什么学习的一个现实原因,和学习方法。

  7. 数学题了,类似于斐波那契数列,但是关系式还没推倒出来。

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


最后


==


在面试自己心仪岗位的时候,想要通过面试,就避免不了刷题,我在面试之前就收集了一大波 Android 面试题和面经供自己参考。


有些面试题我会自己整理,还有些面试题只是收集,每个面试题都包含解题过程。



这部分的面试题包含


  • Java 基础知识?

  • Android 基础知识?

  • Android 基础面试题

  • Android 中高级面试题?


接下来的这份面试题,包含了我从网上收集各个大厂出现过的面试真题,同时包含面试题解答,五百道真题左右。

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
收好这份钉钉和抖音的客户端面经,真的很重要!,ndk开发环境