• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

阿里腾讯百度网易美团Android面试经验分享拿到了百度腾讯offer

android 搞代码 4年前 (2022-03-02) 27次浏览 已收录 0个评论
文章目录[隐藏]

根本状况

2021届普通本科,Android开发岗。

此文次要是2020年秋招面试教训汇总,最终拿到了百度、腾讯的offer。

次要包含阿里三面,腾讯四面,百度三面,网易三面,美团一局面完。

阿里(由师姐内推,2面后挂)

阿里技术一面-35min

自我介绍

Android

  • 有没有遇到OOM问题(有遇到内存透露问题)
  • Handler机制
  • ThreadLocal
  • Activity启动到加载View过程
  • View绘制过程
  • LinearLayout (wrap_content) & TextView (match_parent) 最终后果???
  • OKHttp(1\. 为什么抉择它? 2\. 性能理解不?3\. 外部有哪些设计模式)
  • 理解EventBus嘛?

设计模式

  • 用过哪些设计模式
  • 观察者举例

网络

  • HTTP & HTTPS区别

其余

  • 为什么抉择飞猪
  • 业余问题
  • 加入的较量

阿里技术二面-1h挂

自我介绍

我的项目

  • 为什么抉择OKHTTP框架
  • 加载图片框架?(学一下Glide)
  • JSON解析框架?(学一下Gson,FastJson)
  • 技术选型?
  • 页面个数?
  • OSS上传凭证怎么设计缓存?怎么加密?(加密算法??)
  • 还有哪些项目能够说的?

Android

  • Activity生命周期?启动通明Activity生命周期?按Home键生命周期?
  • 后盾杀死APP后怎么复原数据?
  • 一个APP能够多过程嘛?
  • ListView和RecyclerView区别?
  • RecyclerView卡顿怎么排查?
  • RecyclerView怎么实现多Type?
  • RecyclerView的ItemView层级过深怎么优化?
  • Android多过程?
  • 怎么设计Android线程间通信?
  • Handler机制?子线程能够用Handler吗?
  • ANR?

Java

  • private protected public 关键字的用法区别!!!
  • 接口,抽象类区别?抽象类要不要实现接口的办法???
  • Map的线程平安?读多写少选哪个汇合?(CopyOnWrite,不懂原理没敢说)

网络

  • HTTP/HTTPS区别
  • TCP理解么?握手与挥手过程?
  • 长连贯?
  • push怎么实现?

腾讯

提前批一面-35min

我的项目介绍

  • 实现的性能,基于OKHTTP实现网络申请

HTTP(s)

  • 介绍下HTTP协定
  • HTTPS公钥裸露怎么办
  • HTTP分段上传文件怎么保障正确
  • HTTP缓存

Java

  • 过程 线程区别
  • 子线程间通信
  • 解决死锁的方法,怎么判断产生死锁

算法题

  • 奇数偶数数组,从新排序保障程序不变,奇数在前偶数在后
  • 2数/3数之和

提前批二面-30min-挂

自我介绍

我的项目介绍

  • 我的项目梳理
  • 图片压缩算法? 聊聊对于Android图片压缩那点事儿
  • Bitmap JPG区别 图像处理:JPG、PNG及BMP的区别?
  • 断点重传?怎么动静确定范畴?Android 实现断点上传文件
  • 断点下载?CRC原理 文件校验MD5、SHA1、CRC32、sha256、cksum

设计模式

  • MVC长处毛病
  • MVP中的MVC的C实现在哪
  • 单例模式的饿汉与懒汉的抉择,应用场景Java单例模式的不同写法(懒汉式、饿汉式、双检锁、动态外部类、枚举)

HTTPS加密形式

腾讯正式批测开一面-25min

  • Crash
  • ANR怎么解决
  • 设计世界杯32强对战数据结构
  • 2个球 100楼找那一层摔下来会坏
  • 测开具体工作

腾讯正式批测开二面-1h

我的项目

  • 聊细节

Android

  • 图片,语音大内存数据的性能排查,定位?
  • Handler内存透露问题
  • ART Dalvik区别?
  • GC机制?
  • CountDownLatch原理?

算法题

  • 不应用for查找数组最大值?

闲聊

  • 自我劣势

百度

百度一面-1h

自我介绍

我的项目介绍

  • 编码标准有用吗?

Android

  • Android四大组件安全性
  • Activity启动模式
  • IntentFilter匹配规定,action和category区别?
  • Handler 阻塞为什么不卡死?
  • 点击事件散发机制,onTouchEvent返回false? dispatchTouchEvent返回false?
  • Looper
  • 对象池,手写对象池实现
  • ContentProvider原理
  • sp反对跨过程么?怎么解决跨过程,怎么实现进程同步
  • 帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决防止卡顿(多线程读)
  • Bitmap内存复用限度条件
  • 线程工夫片调配原理

百度二面-45min

我的项目

  • 梳理我的项目
  • 难点
  • 技术框架

算法题

  • 手写二分法
  • 电梯状态机设计

优缺点

  • 长处
  • 毛病
  • 业余

百度三面-45min

技术

  • 最长公共子串
  • 类加载机制
  • okhttp原理
  • 热修复原理

其余闲聊

  • 长处毛病
  • 大学遗憾
  • 组织哪些流动
  • 长期保持的事件
  • 业余去向

网易

网易技术一面-1h

自我介绍

我的项目介绍

  • 华为解bug印象最深的

Android

  • TouchEvent传递过程? onTouchEvent返回flase怎么办?
  • 怎么设计缓存
  • Android数据长久化
  • 数据库怎么批处理(原理)
  • SP支不反对多线程?SP怎么实现多线程
  • View绘制过程
  • Handler音讯机制

Java

  • B线程怎么实现期待A线程实现工作
  • 线程怎么完结工作 Java完结线程的三种办法
  • Java哪些办法反对中断
  • 设计一个无限资源的申请
  • 怎么设计对象池(对象的存与放回)
  • 线程池的线程什么时候创立
  • Java中的锁
  • 可重入锁性能

口试题

  • 两个数组替换一个值,让和相等,找到这两个值

网易技术二面-1h

自我介绍

华为实习

  • 参加的我的项目
  • 解的bug
  • 参加的编程标准说一下
  • Lint工具?

设计模式

  • 单例模式
  • volatile关键字原子性

Android

  • 过程间通信形式(与linux过程间通信区别)
  • Socket怎么验证安全性
  • 播送(全局 本地区别)
  • 怎么实现文件的多过程通信(A过程改了文件怎么告诉B过程读取)
  • 二级缓存怎么设计(网络 数据库 view间关系)

View

  • Activivty生命周期
  • onSaveInstanceState onRestoreInstanceState区别,调用机会
  • 播送注册应该在Activity哪个生命周期里
  • 怎么统计onCreate的次数
  • Fragment与Activity区别
  • Fragment生命周期治理
  • Fragment与ViewPager怎么做到反复加载
  • View绘制过程 MeasureSpec的三种模式
  • Framelayout LinearLayout ReativeLayout怎么做到View在右下
  • margin padding区别
  • gone invisible的区别
  • requestLayout、invalidate与postInvalidate区别
  • Android动画 怎么勾销循环动画 repeat模式
  • drawable与view区别 有哪些drawable

网易技术三面-50min

自我介绍

我的项目介绍不用说太细

Android

  • 图片传输过程中URL加上默认大小如果是wrap_content怎么办
  • 图片相干缓寸,编码,内存复用
  • svg (其余图片格式)
  • drawable mutate理解不
  • okhttp 桥接拦截器和缓存拦截器
  • 设计自定义DNS解析器
  • 打点零碎设计:写文件过程中会有buffer,此时过程被杀怎么办,怎么设计日志零碎 打点日志被用户篡改怎么办,保障日志安全性
  • 磁盘内存映射原理
  • 有没有看过开源打点框架
  • 平时开发有没有遇到过资源复用
  • 最近理解啥Android新动向不
  • 本人学习打算

美团现场一天面完

自我介绍

我的项目

  • 实习我的项目
  • 我的项目最难点
  • 技术抉择
  • OSS STS凭证设计
  • Lint工具是编译期的嘛?原理?

场景题

  • 美团首页设计?
  • RecyclerView多Item的难点?

设计模式

  • MVP MVVM应用场景

HR

  • 有什么offer当初?
  • 抉择offer根据?
  • 上海破费高?
  • 怎么解决沟通问题?

倡议

  • 多看源码,包含Java层的代码在JVM中的实现源码:如synchronized的实现源码,Android Framework的源码更好意识Android层的实现,Android开源库源码(OKHttp,Retrofit,RxJava,EventBus,Glide,Gson…,更好的学习优良开源库源码,做到用的熟,懂原理)
  • 多问本人为什么,比方两个技术点优缺点别离在哪,各自的应用场景(如单例模式下饿汉与懒汉的优缺点,应用场景),这样能力更符合理论利用开发,针对不同场景应用不同技术点
  • 及时复盘总结面试中遇到的问题,分为两方面,一是晓得但不能深刻的,这种须要持续多看多总结,另一种是没接触过的,这种能够先理解下,万一面试又遇到了,能够答复下理解到的,之后再去深刻总结(毕竟工夫无限,不可能八面玲珑,只能一直学习总结)

最初

本人如果有想要去的大公司,肯定要晋升好本人,让本人的能力和素质与公司匹配的上,我也始终置信,机会永远是留给有筹备的人。

在秋招面试前我也筹备了很久,刷了很多大厂面试题,知识点整理出来分享给大家,算是一个感恩回馈吧:

Java相干

1.容器(HashMap、HashSet、LinkedList、ArrayList、数组等)

2.内存模型

3.垃圾回收算法(JVM)

4.垃圾回收机制和调用 System.gc()的区别?

5.类加载过程(须要多看看,重在了解,对于热修复和插件化比拟重要)

6.反射

7.多线程和线程池

8.设计模式(六大根本准则、我的项目中罕用的设计模式、手写单例等)

9.Java 四大援用

10.Java 的泛型

11.final、finally、finalize 的区别

12.接口、抽象类的区别

如有须要全套面试题+解析,间接划到文末收费支付哦~

Android 相干

1.自定义 View

2.事件拦挡散发

3.解决过的一些性能问题,在我的项目中的理论使用

4.性能优化工具

5.性能优化 (讲讲你本人我的项目中做过的性能优化)

6.Http[s]申请慢的解决办法(DNS、携带数据、间接拜访 IP)

7.缓存本人如何实现(LRUCache 原理)

8.图形图像相干:OpenGL ES 管线流程、EGL 的意识、Shader 相干

9.SurfaceView、TextureView、GLSurfaceView 区别及应用场景

10.动画、差值器、估值器(Android中的View动画和属性动画 – 简书、Android 动画 介绍与应用)

11.MVC、MVP、MVVM

12.Handler、ThreadLocal、AsyncTask、IntentService 原理及利用

13.Gradle(Groovy 语法、Gradle 插件开发根底)

14.热修复、插件化

15.组件化架构思路

16.零碎打包流程

17.Android 有哪些存储数据的形式。

18.SharedPrefrence 源码和问题点;

20.sqlite 相干

21.如何判断一个 APP 在前台还是后盾?

22.AMS 、PMS

23.Activity 启动流程,App 启动流程

24.Binder 机制(IPC、AIDL 的应用)

25.为什么应用 Parcelable,益处是什么?

26.Android 图像显示相干流程,Vsync 信号等

如有须要全套面试题+解析,间接划到文末收费支付哦~

源码了解

Glide :加载、缓存、LRU 算法 (如何本人设计一个大图加载框架) (LRUCache 原理)

EventBus

LeakCanary

ARouter

插件化(不同插件化机制原理与流派,优缺点。局限性)

热修复

RXJava (RxJava 的线程切换原理)

Retrofit (Retrofit 在 OkHttp 上做了哪些封装?动静代理和动态代理的区别,是怎么实现的)

OkHttp

算法与数据结构

  1. 工夫复杂度 / 空间复杂度
  2. 罕用的排序算法有哪些?
  3. 字符串反转
  4. 链表反转(头插法)
  5. 如何查找第一个只呈现一次的字符(Hash查找)
  6. 如何查找两个子视图的独特父视图?
  7. 无序数组中的中位数(快排思维)
  8. 如何给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
  9. 二叉树前序、中序、后序遍历
  10. 最大 K 问题
  11. 广度、深度优先搜索算法
  12. String 转 int。外围算法就三行代码,不过临界条件很多,除了判空,还须要留神正数、Integer 的最大最小值边界等;
  13. 如何判断一个单链表有环?
  14. 100 亿个单词,找出呈现频率最高的单词。要求几种计划;
  15. 链表每 k 位逆序;
  16. 镜像二叉树;
  17. 找出一个无序数组中呈现超过一半次数的数字;
  18. 计算二叉树的最大深度,要求非递归算法。
  19. String 形式计算加法。

网络

1.网络框架比照和源码剖析

  1. 网络七层协定有哪些?
  2. Http 和 Https 的区别?Https为什么更加平安?
  3. HTTPS的连贯建设流程
  4. 解释一下 三次握手 和 四次挥手
  5. TCP 和 UDP的区别
  6. Cookie和Session
  7. DNS是什么?
  8. DNS解析过程

10.HTTP报文构造

11.HTTP与HTTPS的区别以及如何实现安全性

12.如何验证证书的合法性?

13.https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有理解?

14.client如何确定本人发送的音讯被server收到?

15.谈谈你对WebSocket的了解

16.WebSocket与socket的区别

17.谈谈你对安卓签名的了解。

18.请解释安卓为啥要加签名机制?

19.视频加密传输

20.App 是如何沙箱化,为什么要这么做?

21.权限管理系统(底层的权限是如何进行 grant 的)?

如有须要全套面试题+解析,间接划到文末收费支付哦~

Kotlin 相干

1.从原理剖析Kotlin的提早初始化: lateinit var和by lazy

2.应用Kotlin Reified 让泛型更简略平安

3.Kotlin里的Extension Functions实现原理剖析

4.Kotlin系列之顶层函数和属性

5.Kotlin 兼容 Java 遇到的最大的 “坑”

6.Kotlin 的协程使劲瞥一眼

7.Kotlin 协程「挂起」的实质

8.到底什么是「非阻塞式」挂起?协程真的更轻量级吗?

9.资源混同是如何影响到Kotlin协程的

10.Kotlin Coroutines(协程) 齐全解析

11.破解 Kotlin 协程

Flutter相干

  1. Dart 当中的 「..」示意什么意思?
  2. Dart 的作用域
  3. Dart 是不是单线程模型?是如何运行的?
  4. Dart 是如何实现多任务并行的?
  5. 说一下Dart异步编程中的 Future关键字?
  6. 说一下Dart异步编程中的 Stream数据流?
  7. Stream 有哪两种订阅模式?别离是怎么调用的?
  8. await for 如何应用?
  9. 说一下 mixin机制?
  10. 请简略介绍下Flutter框架,以及它的优缺点?
  11. 介绍下Flutter的理念架构
  12. 介绍下FFlutter的FrameWork层和Engine层,以及它们的作用
  13. 介绍下Widget、State、Context 概念 – Widget

14.简述Widget的StatelessWidget和StatefulWidget两种状态组件类

15.StatefulWidget 的生命周期

16.简述Widgets、RenderObjects 和 Elements的关系

17.什么是状态治理,你理解哪些状态治理框架?

18.简述Flutter的绘制流程

19.简述Flutter的线程治理模型

20.Flutter 是如何与原生Android、iOS进行通信的?

21.简述Flutter 的热重载

①「Android面试真题解析大全」PDF残缺高清版+②「Android面试常识体系」学习思维导图压缩包——————能够我的【Github】浏览下载,最初感觉有帮忙、有须要的敌人能够点个赞


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:阿里腾讯百度网易美团Android面试经验分享拿到了百度腾讯offer

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址