过去几个月里面的几家大厂,均拿到 offer,最终去了腾讯。总体感受:
- 每个大厂问项目问得特别细,虽然下面的面经都只用了一句话去概括,但在实际面试过程当中,项目这一块占了整个面试流程的很大一部分,相反纯技术问题的占比都比较小。
- 面试题几乎类似,比较简单,也很常见,这些已经整理在Github,如果你有需要完整版,可点击传送门直达!
腾讯3面
一面:
1.mvp mvvm区别 mvvm中的databinding如何刷新view的 2.跨进程通信方式,binder机制 3.leakcanary原理 4.内存优化和工具,APK瘦身 5.get和post的区别,浏览器中输入一个地址然后展示出页面这个过程中做了哪些操作 6.断点续传和下载的原理 7.glide缓存原理,lru算法 8.动态代理原理
二面:
1.java虚拟机 2.内存优化 3.arraylist hashmap linkedhashmap 4.binder 5.surfaceView和view 6.AMS WMS 7.APK瘦身 8.锁(死锁的场景和解决方案) 9.算法 两个字符串 比较最大的公共字符串 ,主要是思路 (面对问题,以大化小)
三面:
1.http优化 okhttp多路复用 2.硬币兑换问题 [算法] 3.车的通过问题,一条路上,30分钟内看到有车通过的概率是90%,那么5分钟之内概率是多少 4.图的展现形式 5.全球货币转换功能的代码 6.给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度
哈罗
1.app的启动流程,activity是在哪里创建的,application是在哪里创建的?与AMS是如何交互的 2.view的创建过程 3.apk打包过程 aar中是否含有R文件 v1 v2 v3签名有什么区别 4.图片资源放在不同的文件夹中,加载出来的内存占用分别是多少,为什么会这样? 5.HashMap实现原理,扩容的条件,链表转红黑树的条件是什么?
网易
- HashMap扩容原理,为什么要2的指数幂容量,如果输入17会是多少容量?
- CurrentHashMap 读写锁是如何实现的?
- List加锁要如何加?
- app优化 内存优化 cpu使用率优化
- 如何设计一个类似于微信朋友圈的首页的功能,UI 数据等方面
- 如何设计一个无限数据的气泡显示聊天内容
- 5个G数据,如何在500M内存的情况下实现排序
- 大文件在传输过程中要考虑哪些问题,如何保证大文件的一致性
- JSbridge 是如何实现js和native联通的
- 如何做到单个信号源,多个页面响应
字节(飞书)
1.多线程加锁的几种方法 2.垃圾回收机制 3.类加载的双亲委派机制 4.c++中,构造函数的调用顺序,析构函数是否需要virtual 5.JNI的注册方法有哪些 6.函数指针如何写?
阿里(零售云)
1.贴着项目经验问了IM模块 2.app优化,内存优化、流畅性优化、包大小,如何评价一个app优化的好不好 3.Activity启动模式、生命周期 4.Fragment生命周期 5.ClassNotFound的有可能的原因是什么 6.项目中的亮点有哪些
面经参考解析
以上所有问题的答案都有相应的解析文档参考,网上也有一些类似的面试题总结的文章,但这份绝对是数一数二,剩下你了去网上一个个找的时间!每个知识点都有左侧导航书签页,看的时候十分方便, 这些已经整理在Github,如果你有需要完整版,可点击传送门直达!
内容展示
无论是你短期内想提升 Android 内功实力, 突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会有所收获。这套指南,我根据面试时经常被问到的几个方向,划分了 8个模块来展开:
为便于你理解,我会采用“知识点 + 项目实践”的讲解方式, 侧重总结工作上的实践经验,并和你分享一些疑难问题的解决思路,让你在以后的工作中,能够有方法论的指导。
经验总结
这是我在工作、面试中学习并总结到的一些知识点, 都是一些比较典型的、面试常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结, 你也可能会出现逻辑混乱的情况,从而错失工作机会。
有些知识点不经常使用就会忘记,但是面试还会问,对此,我也是深受其害,所以我决定将这些遇见的问题整理下来,分享出去,帮助更多的人,我们共同进步。 所谓“温故而知新”,没事的时候多翻看一下这些知识,没准就会有新的收获。你没时间整理的东西,我都帮你写好了。
|