概述
笔者黑白 盘算 机专业 ,15年毕业 不停 在小公司,以为 完端赖 自学已经到了本身 的天花板,然后想进大型互联网公司发展,以是 年前辞职 ,放弃了年末 奖,年后就直接来的北京,口试 的公司有稳固 的大公司 ,也有创业型公司,有些创业型的公司口试 质量也挺高的,不输于一些大公司 ,下面会说到 。
技能 储备 底子
不管是Android底子 还是 Java底子 以及常见的数据布局 ,这些是无原则地必须要纯熟 把握 的,尤其黑白 盘算 机专业的同砚 ,口试 官一上来肯定是问你底子 ,要是底子 表现 不好 很轻易 被扣上底子 不踏实 的帽子,常见的就那些 ,只要你平常 认真思考 过根本 上口试 是没太大题目 的。
算法
根本 上每家公司都会有算法题,我当时 是看了左程云的《程序员代码口试 指南》,重点看了数组跟链表,二叉树没有去刷算法题 ,对于二叉树的把握 在于三种根本 的遍历以及在排序算法中堆排序中用到的二叉堆,然后每道算法题都先本身 去实现,先写思绪 ,然后本身 去实现一遍,然后再看看答案,记取 答案的思绪 ,第二天再重新按照答案的思绪 实现一遍,这种结果 非常好,我没有去刷很多 标题 ,而是想通过这种方式去分析常见的算法题,以是 我不大发起 去刷算法题,起首 作为客户端开辟 ,涉及不到很多 的算法,第二,口试 的时间 考的算法大部分 都是很根本 的数组组跟链表构成的,末了 算法这个东西是个无底洞 ,个人以为 没须要 去刷题,刷题大概 对小公司有效 ,但是大公司更看重你办理 题目 的本领 。
假造 机
JVM
对于Java ,加载的是Class文件,一样平常 会问到Java运行时的内存分配,类加载机制以及GC ,实际 上背面 两个问地比力 多,尤其是GC相干 ,每每 连合 四种引用出题 ,末了 会通过这个来引出内存泄漏 相干 的一些题目 。
DVMART
Android的假造 就DVM以及ART是对JVM做了一些优化,加载的是dex文件,对Class字节码做了一些优化 ,这个内里 着实 挺复杂的,我只知道一些根本 的概念 。
ClassLoader
这个着实 要是问起来着实 是有很多 东西的,假如 是Java相干 着实 还好,会问你类加载机制 ,但是Android内里 除了Java的类加载机制之外,还会引出插件化跟热修复。
JNI
根本 上轻微 大点的公司都会问到,不外 我的答复 始终如一:我只能看懂C的代码 ,项目中没有效 过JNI,固然 这个属于加分项,由于 我当时 的选择是把我用过认识 的东西研究地滚瓜烂熟 ,而不是在本身 平常 很少打仗 到的东西上面搞个一孔之见 。
Binder
Binder系列,各种AMS,WMS,PWS,常问到的有APP的启动流程 ,然后两个Activity相互跳转的时间 的生命周期,Activity的生命周期 。
心态
不要想着什么都会,那样不实际 ,比如 说我对Binder机制以及热修复,插件化这块儿确实相识 地比力 浅近 ,也跟高德,爱奇艺等公司的口试 官聊过这个话题 ,这些属于加分项,不会影响到终极 的口试 结果 ,尚有 就是算法 ,口试 最多考一道大概 两道算法,以是 没须要 在这方面花太多的时间,把握 好常见的数组跟链表 ,二叉树/堆相识 一下,根本 就够了,公司看重的是你办理 题目 的本领 ,你把原理把握 好,常见解 根本 上都没什么题目 。
当你底子 知识OK,本身 用过的东西的明白 地有深度 ,办理 题目 的本领 OK,假如 口试 官想要你,那么他会去找你的长处 ,反之他会去找你的缺点。以是 假如 你想进某家公司 ,那么你就按照他们的要求去面,就算面不上那么也没什么,只能说不符合 ,然后查漏补缺继承 面,不要由于 某一次大概 反复 的不顺就否定本身 ,有些公司的口试 官就是喜好 装 ,而且还是 大公司的 。
学历很紧张 ,我的学校只是个平凡 一本,相对一样平常 ,以是 投了很多 着名 互联网公司简历都过不了,就连好大夫 在约请 我口试 的时间 特意问了我是不是统招一本,任何行业都看重学历 ,不但 仅是IT,那些说学历不紧张 的根本 上都是一些学历比力 好的大概 是在Android比力 火地谁人 阶段开始搞地Android,他们这批人每每 会以为 在03年跟18年参加 的阿里的难度是一样的,那些以为 学历不紧张 的可以去看看张雪峰老在《演说家》中的演讲 ,不要说什么3年以后公司就不看学历了,学历是一辈子的事变 ,那些高考可以或许 碾压你的人 ,出了社会只要他们乐意 ,还是 能碾压你,你积极 ,你冒死 ,别人也不会睡大觉等你。
科班很紧张 ,假如 你本科学地黑白 盘算 机专业 ,任何一个口试 官大概 HR都会以为 你底子 不可 ,你必要 花很多 的时间去精力 去补底子 ,然后再花时间跟精力 在HR不Pass掉你简历的环境 下摘掉底子 不可 这顶帽子。
工作配景 很紧张 ,假如 你有大公司配景 给你背书,雷同 的岗位,你进入的门槛比有大公司配景 的人要高地多,假如 你有大公司配景 ,不管是口试 官还是 HR都会在你口试 前给你打一个较高的基天职 ,这个是很有利于你通过口试 的 。
不外 上面都是既定的究竟 ,你没法改变 ,以是 当我意识到这些题目 的时间 ,我只能去不绝 地提拔 本身 的本领 ,去花更多地代价去得到 一个口试 机遇 ,去证明 本身 的本领 进而进入到一个比力 好的平台。
口试 公司 火币网(Offer)
口试 机遇 来自于V2EX
一面:
怎样 开启多进程 ?应用是否可以开启N个进程 ?
Activity的启动模式 、任务 栈以及利用 场景?
Volley可否 举行 数据量很大的哀求 ,比如 说加载100M的图片?
手写快速排序
Volley的优缺点
final修饰一个对象,可否 调用对象修改属性的方法
子线程中怎样 利用 Handler
怎样 举行 单位 测试,怎样 包管 APP稳固 。
口试 官是Android的负责人 ,比力 有亲和力,看起来比力 幽默, ,然后先从我的笔试题开始聊,聊地最多的是进程 ,他问我应用能不能一上来能不能开多个进程 保活,对于这个题目 我知道肯定是不能的 ,由于 本身 平常 确实没有在项目中开多个进程 ,然背面 试官态度很好地分析了下说,由于 多进程 起首 会有多个Application ,数据会被初始化多次,其次进程 间通讯 比力 贫苦 ,尚有 一个就是每个进程 有单独的假造 机 ,多个进程 就会比力 占内存,确实是如许 ,这些我有些印象 ,但是平常 确实没有认真思考 过这些题目 ,然后问我有没有效 过Binder,我说只是写过几个Demo ,然背面 试官就说这个就不问了,就开始聊一些我简历上以及我会的东西,比如 说Volley的优缺点,然后提出了一个题目 说Volley可否 下载影戏 以及加载大图片 ,我当时 根据我看的源码说可以,由于 Volley本身 是不支持下载的,必要 自界说 Request才华 实现这个功能 ,然后假如 是读流到磁盘是没题目 的,他说不可 由于 Volley是在内存中举行 操纵 的,我当时 跟他争了下 ,我说Volley原生不支持下载功能,只能自界说 Request,包罗 上传也是必要 自界说 的 ,然后他感觉我有些不快,说读流确实是可以,但是ImageRequest去加载大图片的时间 ,也是在内存中读取的,这个时间 就会有题目 。不外 我想了下确实是如许 ,如许 的话确实会出现OOM,接着口试 官就问了一个底子 的题目 ,比如 说final一样平常 怎么用,final修饰对象的话可以或许 调用修改属性方法等,末了 让我写了个快排。
二面:
TabLayout怎样 设置指示器的宽度包裹内容?
公差为1的等差数列求和 ,怎样 优化
本身 的上风 在那边
注解怎样 获取,反射为何耗性能?
Java的GC机制,分代采取 战略
Binder机制:ServiceManager什么时间 注册的?
int,long的取值范围以及BigDecimal ,数值越界了如那边 理 惩罚 ?
ConcurrentHashMap的原理,分的段数是多少?
APP是怎样 适配的?
Android中怎样 查察 一个对象的采取 环境 ?
最大一次线上Bug处理 惩罚 步伐
口试 官问的Java偏多一下,同时也问地很深很细 ,关于Binder问到了一个题目 就是SM是什么时间 注册的,这个完题目 我美满 是 懵逼的,然后给我出了一个算法题 ,就是公差为1的等差数列求和,当时 我用了一个很笨的方法,就是用递归实现的,由于 当时 口试 官不是直接说的等差数列 ,说的是假如 输入0,返回0,假如 输入1 ,返回1,假如 大于1就依次累加,之前头脑 定势了 ,没有想到这是个等差数列,然背面 试官问我能不能优化,我当时 想到了高斯 ,然后把首尾相加,做了一步优化,厥后 着实 是感觉没法优化了 ,口试 官给我写出了谁人 等差数列的前n项和,不外 当时 口试 官给我出了这个标题 ,返回值是int,我当时 留意 到int大概 会越界 ,然后说应该返回long,估计是这个细节大概 感动 了口试 官,然后我们就从int,long,到String ,double以及BigDecimal,说了很多 ,由于 之前在项目中盘算 代价 的时间 确实出现过精度丢失的环境 ,以是 我对这块很熟,以是 也聊了很多 ,聊到屏幕适配 ,ConcurrentHashMap所分的段数,末了 问了我最大的一次线上Bug是怎样 办理 的,尚有 在Android中怎样 查察 一个对象的采取 环境 ,谁人 确实不知道,厥后 想想应该通过ReferenceQueue能观察到,由于 平常 没有想过这个题目 ,以是 被问到的时间 很轻易 懵逼 ,不外 团体 表现 还可以。
三面:
APK的巨细 怎样 压缩
APP的瓦解 率,多渠道包
本身 做过的APP用户量
可否 担当 加班
口试 官是火币的大前端负责人,问了我一些项目开辟 流程上的东西 ,雷同 APK的巨细 怎样 举行 压缩,怎样 查察 APP的瓦解 率,以及多渠道包 ,然后聊了下薪资以及可否 加班等,大部分 都是一些非技能 性的题目 ,第二天火币网就给我Offer了 ,固然 厥后 我没有去这家公司,还是 挺感谢这家公司的,给我后续的口试 增长 了很多 信心。
蛋壳公寓(Offer)
口试 机遇 来自于拉勾网
一面:
MVP怎样 管理Presenter的生命周期 ,何时取消网络哀求
用过的框架及原理
天猫的Tangram布局 ,vLayout原理
我告诉他我在本身 写图片加载框架的时间 踩过的坑,然背面 试官也说了他在利用 MVP的过程中碰到 的管理Presenter的生命周期过程中的探索,由于 之前我的一个项目采取 的是MVC ,当时 是用的RxLifecycle举行 管理的生命周期,在MVP中我是在BaseActivity中同一 把哀求 取消掉了,然后他说了他的办理 方式 ,确实很有探索精力 ,我也学到了很多 东西,末了 简单 说了天猫的七巧板布局 ,大部分 还是 在聊项目中的一些细节 。
二面:
APP的启动流程
回形打印二维数组
Java为何引入泛型,泛型边界
常见的Java数据布局
ArrayMap跟SparseArray在HashMap上面的改进
Java的四种引用及利用 场景
Webview性能优化
口试 官是移动端负责人,然后问了我APP的启动流程 ,这个我说我没怎么深入研究过,口试 官也没说啥,然后继承 问了一些Java底子 ,Java引入泛型的缘故起因 ,泛型边界 ,聚集 框架,末了 问到了SparseArray以及ArrayMap。末了 说到了内存采取 ,然后带出了GC以及四种引用,由于他们的项目中很多 地方用到了WebView,以是 他问了一些WebView的跟JS举行 交互的题目 ,末了 还聊到了WebView的性能优化,感觉口试 官确实对WebView比力 相识 ,不外 我也以为 没什么 ,毕竟 这块不是我善于 的地方,口试 官也表现 明白 ,然后末了 出了一道算法题就是回形打印二维数组 ,团体 来讲他们着实 还是 侧重 于项目,也观察 了底子 ,团体 感觉他们的技能 还是 很好的。
GrowingIO(Over)
口试 机遇 来自于Android Weekly
一面
Binder机制
ClassLoader的明白
Arouter的原理
组件化原理 ,组件化中路由的实现
热修复跟插件化的原理
线程池的几个参数的明白 ,四种线程池的利用 场景
常用的计划 模式,手写DCL单例模式
进程 间为什么不能直接举行 通讯
应用跟体系 之间通讯 什么时间 用Socket什么时间 用Binder
口试 官问地都是Android底层的东西,有些还涉及到了Android的Hook插桩技能 ,口试 完,我以为 本身 跟只傻狗一样,什么都不会 ,问了有10来个题目 ,唯一的两个应用层的题目 由于告急 也没有答好,一个是线程池原理 ,一个是DCL单例少写了个非空判定 ,别的 的题目 真的是答地很水,由于 前面的底层知识了答复 地很不好 ,以是 对本身 应用层的发挥确实是有影响的,以是 盼望 各人 在口试 的时间 心态肯定 要平和,牢记 不要紧 张 。由于他们项目在底层采取 了很多 关于IPC之间的东西 ,以是 根本 上必要 对底层很相识 的工程师,我本身 也感觉确实答复 地力有未逮 ,而且我是给他们CTO直接发的简历,忽然 间以为 不好 意思 ,答复 地挺垃圾的。
二面
口试 官是做IOS的,根本 上是处于谈天 的状态,反正聊地很开心的 ,然后对我评价很好,他说他不懂Android,但是能感受到我的技能 好奇心,听了还是 很开心的,反正根本 上没怎么聊具体 的技能 ,重要 是聊了聊IOS的Hook以及热修复相干 的技能 ,问他们是怎么实现的,由于 我知道IOS在这个上面比Android要复杂一些 ,反正团体 就是很放松。
三面
三面是产物 总监,根本 上就是谈古论今了,让我说说对Android以及IOS的见解 ,我说谷歌将来 肯定会在人工智能上干掉IOS,然后他说为什么,我说由于 谷歌把握 了搜刮 的大数据,Android产物 接入的本钱 低等等 ,然后我跟他说我盼望 产物 在计划 原型的时间 必要 思量 一下Android跟IOS两个平台的差别 ,不能一刀切,他说是应该如许 ,但是有很多 时间 必要 保持平台同等 性就必要 做一些妥协之类,末了 着实 还聊到了锤子,聊了聊对老罗以及锤子的见解 ,产物 总监说锤子的发布会每场他都会看,然后他还给他家人买了一部坚果Pro,反正想着肯定会挂掉 ,索性就不那么拘束了,就是一种很放松的状态 。
附近
附近 是CTO面,当时 有点告急 ,CTO很闻名 流 风度,一上来主动 跟我握手,当时 我有些告急 ,手心都出汗了 ,他说我是不是很热,我说是的。然后说本身 从网易出来之后就开始创业了,不停 是在做进步 企业生产服从 相干 的产物 ,如今 做的GrowingIO也是的,然后问了我很多 题目 ,重要 是我在上一份工作中的发展 跟收货 ,将来 的规划等等,以及在项目中碰到 题目 是怎样 举行 团队协作的,问地很细 ,可以看地出来公司对这款产物 非常器重 ,像滴滴企业版,陌陌等都是他们的客户 ,感觉这家公司会发展很不错,末了 我也问他为什么会实行 做那么多产物 而不是专注于某一款产物 等等,然后他也给了具体 的解答。
没有给我Offer的缘故起因 在于我的薪资大概 开地过高,一面根本 上是处于被镌汰 的局面 ,但是我跟背面 的口试 官都聊地很好,晚上还在那儿吃了顿饭,末了 CTO还跟我聊了好久 ,我以为 他们应该是以为 我可以作育 ,但是薪资要低偏高,以是 就终极 放弃了我 ,由于 对于创业公司,我的薪资都开地高一些,不管结果 怎么样 ,还是 挺感谢这家公司的,盼望 他们发展地越来越好 。
昆仑智启(Offer)
口试 机遇 来自于拉勾网
一面:
Debug跟Release的APK的区别
软引用跟弱引用的区别
ConcurrentHashmap的原理
Listview跟Recyclerview的区别(革新 ,缓存 ,各自的利用 场景)
对谷歌新推出的Room架构
动画的两种实现:setX跟setTranslationX区别
变乱 分发:Activity跟window依次到viewgroup
Volley源码,优缺点
Picasso传入的Activity跟Application的context的区别
一面还是 只要从简历上入手,然后问地相对来说比力 简单 ,口试 官应该跟我年限差不多 ,更多地在于很多 东西怎么去利用 ,比力 侧重 于一些细节,不外 团体 来说表现 地自我感觉比力 满意 ,由于 根本 上都是问我会哪些东西,然后从我会的角度出发,一步一步来举行 深入交换 。
二面
数据库的升级 ,表布局 的修改
常见的排序算法,手写二分查找,二分查找的复杂度分析
点击APP图标启动APP的大抵 流程
SplashActivity中举行 初始化MainActivity的参数 ,Splash没有初始化,AMS直接启动了MainActivity怎么办
计划 一个多线程,可以同时读 ,读的时间 不能写,写的时间 不能读(读写锁)
计划 断点续传,怎样 判定 服务端是否支持断点续传
Binder机制:Binder内核地点 的进程 是怎样 找到到Server跟Client举行 通讯 的
对JNI是否相识
组件化的原理,组件间通讯
口试 官看起来履历 比力 丰富 ,方向 于Java这一块,应该是从Java转的Android,看上面的题目 着实 就可以或许 看出来 ,问到的Android很有深度,一上来就搞了个APP的启动流程以及AMS,谁人 读写锁确实不会 ,之前没听过,当时 是要我实现这个功能,我用了很多 种方法去实行 ,但是终极 没有到达 预期的结果 ,然背面 试官就问我知不知道读写锁,我不知道 ,然后他就没有再穷究 了,固然 这是一家小公司,但是我能感受到对一个非科班出身 的程序员的恭敬 ,再次表现 感谢。
京东
口试 机遇 来自于Boss直聘
京东抵家 (电面)
GitHub上面的开源项目
一个线程可否 创建多个Handler ,Handler跟Looper之间的对应关系
ArrayList跟HashMap是够线程安全,怎样 包管 线程安全
Volley返回数据量比力 大的哀求 时怎么办
ListView跟RecyclerView革新 数据原理,利用 到的计划 模式
适配怎样 做 ,有没有适配过全面屏
Fragment跟Activity的通讯 方式,你知道几种?
电话口试 之后就挂掉了,第2个题目 答复 地不是很好 ,由于没试过一个线程能创建几个Handler,以是 不太确定,末了 还是 对Handler机制相识 地不敷 深刻 ,别的根本 上答地还可以,全面屏没适配过,末了 就没接洽 我了 。
京东商城(电面)
内存泄漏 的种类
ActivityA启动ActivityB时生命周期的变革
AMS是怎样 管理Activity的
JVM中的GC采取 机制
常见的跨进程 通讯 方式 ,AIDL的实现原理
APP以及Activity的启动流程
Hook以及插桩技能
接洽 我的是京东上海的部分 ,然后说他们重要 是做底层的,以是 问了一些底层的东西,第2个题目 ,我就之前没碰到 过,然后Hook插桩这些,很显然不会 ,然后就凉凉了。
京东金融(Offer)
一面:
从长度为m的int数组中随机取出n个元素,每次取的元素都是之前未取过的,怎样 优化
https是怎样 包管 安全的 ,证书怎样 校验
Android的署名 机制,APK包罗 哪些东西
是否碰到 过OOM,怎样 办理
是否做过逆向
对JNI相识 多少
手写单例(DCL)
是否写过so文件
热修复原理 ,怎样 举行 dex更换 的
看口试 题着实 就可以发现,京东金融是方向 于安全这个范畴 的,最背面 试官也跟我说 ,我进去之后会往移动安全工程师方向发展,最开始的谁人 算法,没答好,当时 我的思绪 实际 上是筹划 取一个数组就把数组中的元素给置空 ,但是由于是int数组,以是 没法置空,当时 就在这儿想了一会儿 ,然背面 试官给出的答案是直接删掉这个元素就可以了,但是性能较差,假如 思量 性能则可以直接跟尾部元素举行 互换 ,然后下次随机的范围减1就可以了。剩余的题目 答地着实 还可以。
二面:
简单 说下项目
内存泄漏 ,怎样 检测以及检测的原理
逆序一个字符串,不能调用String的reverse方法(观察 编码风格)
组件化原理 ,模块化机制
没有给权限怎样 定位,特定机型定位失败,怎样 办理
同步跟异步机制(是业务上的 ,不知道他想问什么)
线程池中核心 线程数跟最大线程数怎样 界说
二面的话问的题目 比力 通例 ,根本 上跟之前的公司重合度较高,没有难度,重要 比力 注意 应聘者办理 题目 的本领 ,特别 是像谁人 权限适配,我之前做过权限适配,以是 谁人 题目 答复 地他挺满意 的 。
美满 天下 (Over)
口试 机遇 来自于拉勾
一面:
StringBuffer跟StringBuilder之间的区别
并发相干 ,各种锁
View的绘制流程,变乱 分发
Hashmap,Arraymap,SparseArray
四种引用
MVP跟MVC的区别
LV跟RV之间的区别
Service相干 ,startService以及bindService
Fragment差别 于Activity的生命周期
生产者斲丧 者题目 :一对多,多对多环境
常见的计划 模式,并选择一种形貌 一下
Scroller的利用
看过口试 题可以或许 知道 ,一面比力 重底子 ,也是一些重复性很高的题目 ,不外 美满 的口试 官大概 比力 注意 细节 ,很多 题目 你只要平常 思考 过了根本 上是OK的。
二面:
Gradle生命周期
JavaAndroid关于Classloader源码分析
Python的class文件
DCL中Volatile的作用,怎样 防止反射实例化单例对象
抽象类可否 实例化,理论依据是什么?
怎样 通过Gradle设置 差别 较大(20%差别 )的多渠道包
class文件怎样 转化成dex
Service先start再bind怎样 关闭service,为什么bindService可以跟Activity生命周期联动?
JVM相干 ,DVM以及ART是怎样 举行 优化的 ,具体 步调
长毗连 常见的库,短链接
静态同步锁与平凡 同步锁的区别
直接在Activity中创建一个thread跟在service中创建一个thread之间恩区别
二面的口试 官是北大毕业 的,问的题目 都比力 深入 ,涉及到了很多 Java跟Android的细节,厥后 才知道,他知道我底子 还可以 ,之以是 问到背面 的那些题目 是由于 想给我定级,当我说我相识 Gradle的时间 ,口试 官问我是否相识 Gradle的生命周期 ,当让我写一个DCL的时间 ,问我Volatile的作用是什么,怎样 防止单例被反射实例化 ,DVMART是怎样 对JVM举行 优化的,Class文件怎样 转换成Dex文件,反正就是你会的肯定会让你表达出来,你不会的你也没法装下去。
高德—汽车奇迹 部(Over)
口试 机遇 来自于Boss
一面:
View的生命周期
View的绘制流程跟变乱 分发
Activity跟Window之间的关系
对C跟JNI是否认识
热修复原理 ,插件化是怎样 举行 加载插件的
Java中的锁,各种同步方式之间的区别
ANR在四大组件中的时间,场景
OOM ,怎样 克制
内存泄漏 原理,怎样 克制
MVC跟MVP之间的区别
ListView针对多种item的缓存是怎样 实现的
Android绘制二维跟三维的View的区别
是否相识 硬件加快
ListView是怎样 实现对差别 type的item的管理的
口试 官问了很多 底层的实现场景,有深度也有广度 ,在跟他交换 的时间 ,可以或许 很显着 地感觉到本身 在很多 题目 上没有做过太深入的实行 ,不外 团体 感觉还可以 ,根本 上本身 的本领 是完全发挥出来了,很多 题目 他问地特别 细,比如 说ANR题目 ,问到了在四大组件中ANR的时间是多少,尚有 ListView的缓存对于多种Type是怎样 实现的,很多 题目 你只知道概念是没有什么用的,都必要 本身 的明白 ,不外 像硬件加快 这种题目 ,确实没有细想过,我也不会去细想 ,以为之前在传统公司是不大概 偶然 间跟精力 相识 这些东西的,只能说北京本身 来晚了,但是来对了 ,劈面 试官知道我是第一次来北京的时间 ,还跟我开顽笑 说会不会干几个月又跑了,末了 一面面完之后还让我留了他的电话 ,说北京租房子挺贵的,要是有什么题目 的话可以给他打电话,感动ing 。
二面:
Android中IPC方式 ,各种方式优缺点,为什么选择用Binder
主流的热修复框架流派,原理,是否研究过classloader源码
Android为什么要计划 两种classloader ,为什么不消 一种,通过type来区分
Bundle转达 数据为什么必要 序列化
手写一个快排,分析原理
广播传输的数据是否有限定 ,是多少,为什么要限定 ?
Activity启动时生命周期是怎样 回调的?
MVP.MVC.MVVM之间对比分析
组件化通讯:有几种通讯 方式,Arouter原理
插件化加载流程 ,原理
关于反射肴杂 ,耗性能的办理 方式
天猫七巧板布局 原理
热修复流派,原理
口试 官的题目 根本 上是没有离开 过Binder ,热修复以及插件化,不外 我确实,由于告急 ,快排写地也出了点题目 ,心中千万 头羊驼咆哮 而过,尴尬地一比,当聊到组件化的时间 ,我以为 这个是我的上风 ,然后说了一大堆本身 通过反射的实现,然后他说反射会在肴杂 的时间 出题目 ,尚有 就是性能上的题目 ,本身 研究了那么久的东西,在他这里没有看到丝毫的代价 ,确实也比力 失落,不外 他们是做车机的,确实必要 对底层把握 地比力 纯熟 ,想着十有八九是凉凉了。
高德—舆图 奇迹 部(Over):
口试 机遇 来自于Trinea内推
一面:
RecyclerView的itemdecoration如那边 理 惩罚 点击变乱
单例模式怎样 修改数据
android变乱 转达 ,非常细
多线程
一面口试 官大概 比力 忙,没有问太多的题目 ,重要 聊了聊我GitHub上面的开源项目,当时 这个聊了好久 ,然后说了他们项目中也采取 了ItemDecoration的列表联动,然后就问了我如那边 理 惩罚 ItemDecoration的多个点击 ,末了 聊到了变乱 分发机制,重要 是在ListView内里 嵌套一个Button以及在ListView内里 嵌套一个ScrollerView让我说一下变乱 在dispatchTouchEvent,onInterceptTouchEvent ,onTouchEvent中的转达 过程,口试 官先让我说,我只是说了大要 流程 ,然背面 试官又给具体 地分析了一遍,分析地非常具体 ,确实让我受益匪浅 ,本身 对变乱 分发的明白 又更加进了一步。
二面:
JVM内存分布,Classloader
静态署理 跟动态署理
线程的生命周期
是否用过DataBinding
是否打仗 过JNI
对热修复跟插件化相识 多少
对RN相识 多少
二分查找
说下多态
编译期注解跟运行时注解
线程跟进程 间通讯
Android中的IPC
java中的转达
equals跟==
Picasso的存储
项目中的难点
项目中用到了哪些第三方
MVC,MVVM,Clean架构
抽象类跟接口的区别,接口的默认修饰符
二面口试 官问了很多 底子 方面的东西 ,问地特别 细,重要 是观察 Java底子 ,感觉口试 官是想跟我探究 一下比力 新的技能 框架 的,但是像DataBinding以及Glide这些我都没有效 过 ,以是 就问了我很多 底子 的知识,团体 感觉还可以,确实有些底子 没有把握 好 ,深度也有些短缺
掌阅科技(Over)
口试 机遇 来自于Boss
一面
Canvas.save()跟Canvas.restore()的调用机遇
程序A可否 吸取 到程序B的广播?接入微信付出 的时间 ,微信是怎样 跟当出息 序举行 通讯 ?
对Java.nio相识 多少
ConcurrentHashMap是怎样 实现分段锁?
如今 必要 遍历SD卡下全部 的文件打印出后缀名为.txt文件名称,怎样 进步 时间服从 ?
为什么复写equals方法的同时必要 复写hashcode方法 ,前者雷同 后者是否雷同 ,反过来呢?为什么?
Android4.0~8.0之间大的变革 ,如那边 理 惩罚 ?
说一下Measurespec这个类
ViewHolder有什么用?
Gradle的Flavor可否 设置 sourceset?
线程池核心 线程数一样平常 界说 多少 ,为什么?
Intentservice有什么用
弱引用什么时间 被采取
Android中提供了哪些类来资助 处理 惩罚 线程
http的状态码,常见的哀求 头,http缓存协议https怎样 加密
多进程 的优缺点 ,多线程的优缺点
热修复怎样 修复资源文件?
有没有碰到 64k题目 ,为什么,怎样 办理 ?
httpUrlconnection跟httpClient有什么区别
掌阅团体 的口试 质量比力 高,但是口试 官给我的感觉有点过于自大 ,就像第5道算法题,我当时 确实没有想到除了遍历之外该怎样 优化,然背面 试官说可以开多个线程 ,我当时 听了就以为 很无语,但是他给出的来由 是O(n)的算法不能优化,只能开多线程 ,我说纵然 不能优化,也是可以在O(n)的底子 上举行 加快 的,比如 说用遍历完一遍 ,做个缓存,做个标记 ,假如 该目次 下没有发生变革 下次可以直接读缓存之类的 ,开多线程这种操纵 我个人以为 确实算不上优化,末了 这个题目 不了了之 。而后尚有 一个题目 就是他说在复写equals方法的时间 要复写hashcode方法,但是当时 我说没须要 ,假如 是本身 界说 的一个类 ,只必要 比对对象的唯一属性,比如 说界说 一个门生 对象,我只必要 判定 门生 的ID是否相称 就行了 ,也就是只必要 复写equals方法,没须要 复写hashcode方法然后局面 又很尴尬,我厥后 想了下大概 他想表达的是在聚集 类中存储的对象必须要同时复写equals跟hashcode方法感应该是说地已往 的 ,但是当时 没有这个条件 ,我以为 在复写equals方法的时间 不肯定 要复写hashcode方法,加上前面的谁人 算法题 ,大概 本身 当时 感情 也不是很好,以是 沟通上确实出现了一些题目 。
我记得掌阅是在Boss上面举行 投递的,当时 是跟掌阅科技的移动端负责人黄剑举行 沟通的 ,着实 最开始知道黄剑是在跟包建强老师一起做一个自界说 的ListView的时间 ,谁人 时间 在性能优化的时间 在还在同一个微信群内里 讨教 过他题目 ,以是 对掌阅的印象着实 挺好的,但是这次口试 确实体验不是很好。
马蜂窝(Over)
口试 机遇 来自于Boss
一面:
两个非根本 数据范例 数组: array1=[x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,×11] array2=[x6,x3,x10,x5] 盘算 结果 :[x6,x7,x8,x9,x1,x2,x3,x4,x10,x11,x5],写出你的算法
类的初始化过程
点击变乱 穿透原则
线程池利用 的是哪一种 ,利用 原则
LeakedCanary原理
LinerLayout跟RelativeLayout的绘制原理
Android新版本的一些新特性6.0,7.0,8.0
类的初始化次序 依次是(静态变量、静态代码块)(变量、代码块)构造方法
一面口试 官问地都是底子 ,但是有些有难度,比如 说谁人 LinearLayout跟RelativeLayout相对布局 ,我当时 只答复 了LinearLayout必要 丈量 一次,而RelativeLayout必要 丈量 2次,然后假如 只嵌套一层首选LinearLayout ,假如 多层必要 利用 RelativeLayout,但是当具体 问到RelativeLayout两次都丈量 什么的时间 我没答上来 。尚有 谁人 算法题。末了 实现了,用数组实现的 ,但是我感觉应该是树,但是对树不认识 ,以是 用的就是数组。
二面:
看了看项目提了题目 怎样 举行 优化
怎样 实现马蜂窝中的一个动画结果
软键盘顶起布局
组件化通讯 方案
二面感觉有点没怎么发挥好 ,由于 口试 官起首 问了问我GitHub上的开源项目,但是他找了几个题目 ,问我怎么优化,然后又在我项目内里 发现了几个题目 ,问我怎么优化,很显着 那些题目 都是他是比力 纯熟 的,而且都是自界说 View相干 以及性能优化方面的 ,末了 又拿了马蜂窝APP内里 的一个滑动动画问我怎样 实现,根本 上都是在问自界说 View,根本 上二面就是问了这几个题目 ,每个题目 都扩展了很多 ,但是都是View相干 的,没有涉及到其他的知识点 ,大概 他们的对于自界说 View这块要求比力 高,同时也要分身 到性能调优,团体 来说 ,自界说 View确实不是我的刚强 ,末了 还聊到组件化,他们如今 也在做组件化,我说了我的方案 ,貌似他不是很满意 ,末了 也能感觉到发挥地不可 ,以是 被Pass掉了 。
尚有 一个细节就是 ,一面面完,当时 二面口试 官不在,是第二天过来复试的 ,第二天来了签到之后又等了将分钟,然后他们说签到机坏了,当时 感觉挺不好 的 ,不外 当我二面的时间 在那边 等口试 官的时间 ,马蜂窝的一个员工,年龄 挺大了 ,然后看到我的访客牌,单独给我倒了一杯水,确实挺感动的,这个员工不是他们的欢迎 职员 ,让我肃然起敬,然后他就继承 上班了,团体 发挥很一样平常 ,不外 那儿的环境 确实特别 好,很有风格。
爱奇艺(Offer)
口试 机遇 来自于拉勾
一面:
聊聊RecyclerView,动画 ,缓存,数据绑定底层是怎样 实现的。
聊了聊我的开源项目实现原理
View在屏幕中的移动底层是怎样 实现的
Binder跟Socket之间的区别,什么时间 用哪一个 ,Binder的底层实现
Activity,Window跟View之间的关系
setContentView都干了啥
Activity的启动模式
MVC跟MVP之间的区别
算法:将一个有序数组去重得到一个新数组(空间复杂度为O(N))
爱奇艺确实要求比力 高,口试 标题 难度特别 大,让我说RV的时间 ,我说了很多 ,但是口试 官感觉都不太满意 ,然后问地特别 细,涉及到了AMS跟WMS ,这些题目 我答复 地一样平常 ,除此之外,都答地还可以 ,最背面 试官说可以看出我有些东西研究地比力 深,但是没有捉住 关键点。
二面:
LruCache底层实现
Hashmap的hash算法
Bitmap在decode的时间 申请的内存怎样 复用,开释 机遇
注解怎样 实现一个findViewById
Android是怎样 学习的
sycronized关键字的类锁对象锁 ,怎样 包管 线程安全?
重入锁跟sycronized关键字之间的区别
除了notify尚有 什么别的方式可以唤醒 线程
说说你对Context的明白
二面感觉比一面要简单 一些,但是也有几个题目 我没答上来,劈面 试官说如安在 Bitmap解码的时间 复用申请的内存 ,我也是第一次知道原来这里可以复用,然后我提出了本身 的疑问,说假如 复用的话 ,那么什么时间 采取 ,他说fresco有本身 的采取 机制 。末了 尚有 Context的明白 ,我只是看过郭霖的博客,有点影响 ,确实想不起来了,也是有些尴尬,包罗 谁人 用注解实现一个findviewbyid ,也是有看过,但是没有完备 的思绪 ,末了 支支吾吾地答复 了一点 ,除此之外,别的还好。
三面:
Listview的adapter是什么adapter,怎样 复用。
RV是怎样 布局 的
算法:怎样 从1T的无序数组(长度为n)内里 找出前k大的数据 ,复杂度要求为O(logN)
由A启动BActivity,A为栈内复用模式,B为标准 模式 ,然后再次启动A大概 杀死B,说说A,B的生命周期变革 ,为什么
三面口试 官应该是技能 总监 ,第一个题目 就把我难到了,我凭感觉说是BaseAdapter,但是转念一想,不对 ,ListView还支持ArrayAdapter,然背面 试官笑着说让我归去 看看源码,接着问了RecyclerView怎样 绘制的 ,我当时 说了比力 多,但是都没说到点子上去,口试 官末了 给我耐烦 地分析了下 。给我印象最深的是谁人 算法题 ,口试 官开始问我有没有搞过ACM我说没有,然后他就说看你不黑白 科班的,就出个简单 点的 ,然后出了两道算法题,一题是实现一个链表,别的 一个是写一个快排,但是我感觉口试 官对非科班的有些私见 ,然后我就说这个太简单 了,我说你就把我当做科班的,然后说我盼望 可以或许 跟科班的做一样的标题 (厥后 想想本身 有点飘) ,然背面 试官就出了上面那道算法题, 我一看到O(lgn),感觉凉凉了 ,想着快排最多也是O(nlgn) ,以是 当时 想了好久 ,也没实现 ,然背面 试官给了我提示,说知道快排原理么,然后我在脑筋 内里 过了一遍快排 ,忽然 想到了办理 思绪 ,然后跟口试 官说了我的想法,就是用改良的快排,他微笑着表现 承认 ,然后末了 说怎样 去找到标定元素,我说用随机数,他说随机数不太好 ,然后问了我数学怎么样,我说还行,他说可以采取 正太分布 ,找到线性分布的谁人 中心 点,确实是可以如许 ,由于 没有规律的数据是可以看做正态分布的 ,也就是符合线性回归的。
美团(Over)
口试 机遇 来自于内推
1.APP启动流程
2.Webview内存泄漏
3.组件间通讯 ,怎样 转达 对象
4.Arouter原理
5.怎样 取消一个网络哀求
6.两个activity之间来回 切换的生命周期变革
7.进程 间怎样 通讯 ,Binder机制
8.内存泄漏 及优化
9.自界说 view以及变乱 辩论
10.线程池参数及界说 ,多线程是否肯定 会高效
11.电量优化
美团实际 上面了三面,但是口试 题跟前面的口试 官很多 重复的,以是 就只写了上面几道标题 ,团体 口试 感觉都答上来了 ,但是问的有些题目 确实没打仗 过,比如 说Webview的性能优化,电量优化等 ,末了 HR反馈的环境 是底子 很好,项目履历 不敷 。
猎豹移动(Offer)
口试 机遇 来自于Boss
笔试
请例举Android中常用布局 范例 ,并简述其用法以及排版服从
区别Animation和Animator的用法 ,概述其原理
Thread,Looper,MessageQueue,Handler ,Message每个类的功能以及这些类之间的关系
怎样 加载NDK库?如安在 jni中注册native函数,有几种注册方法?
操纵 体系 中进程 和线程有什么接洽 和区别?体系 会在什么环境 下会在用户态好内核态中切换 。
假如 一个APP内里 有多进程 存在,请罗列 你所知道的全部IPC方法
请画出MVC、MVP模式的差别
对于Android APP闪退 ,大概 的缘故起因 有哪些?请针对每种环境 简述分析过程。
笔试题,我答地感觉一样平常 ,由于 我口试 的是猎豹移动的Clean Master,以是 偏底层一些 ,不外 团体 还好,而且笔试题在口试 过程中根本 上不怎么问,只是做一个参考。
一面:
listview跟recyclerview之间的区别 ,然后上拉加载的时间 分别应该如那边 理 惩罚
项目中用过哪些技能
同步平凡 方法跟static方法之间的区别
不消 锁怎样 包管 int自增安全
内存为什么会发生泄漏
做过的性能优化,原理
DVK跟JVM之间的区别
有没有diss过产物 司理
平常 看什么书
为什么学python
项目中用到过哪些技能
盼望 在项目中扮演 什么样的脚色
一面口试 官重要 是从宏观的角度上对待 业务,产物 ,由于 大概 看了我的博客跟GitHub,对我的技能 有一个大抵 的相识 ,然后问了一些底子 的东西 ,就进入了二面 。
二面:
Sycronized原理
ReentrantLock原理
静态内部类为什么能包管 单例,JVM是怎样 实现的
ART跟DVM做了哪些优化
View是怎样 绘制到屏幕上的
写一个快排,偶然 间限定
二面口试 官问地特别 深 ,一上来就是各种原理 问了很多 原理的原理,比如 说Sycronized原理,View怎样 绘制到屏幕上去,这些对于我来说确实比力 难 ,然后还问到了AQS, CAS的底层实现,答地一样平常 般,我根本 上对于JMM的相识 就是类锁对象锁 ,指令重排序等
三面
GitHub上的开源项目是怎样 实现的
将来 的职业规划
碰到 题目 怎样 办理
为什么没有本身 搭建SS 三面是猎豹移动的产物 总监,没有问技能 上的题目 ,根本 上如实答复 就行了 ,没有那么多的套路,朴拙 即可。
摩拜(Offer)
口试 机遇 来自于拉勾
笔试:
本身 带电脑,他们提供一个接口 ,实现一个瀑布流,必要 思量 动画,内存管理等 ,可以上网搜,限时90分钟
当时 我去的时间 出了个以外,HR给我的WiFi我没法连GitHub,当时 想着用本身 封装的ImageLoader ,没想着直接用第三方,在利用 RecyclerView的时间 依靠 也没法添加,以是 最开始时间都浪费了 ,直到一面口试 官下来,给我毗连 了他们的员工wifi,我才华 添加依靠 ,尴尬的一比,不外 到末了 时间到了还是 没有实现预期的结果 ,口试 官末了 问我 ,我说了我的思量 ,他说只是想看看我办理 题目 的本领 ,完全可以用第三方 ,没须要 本身 实现,不外 对我的态度还是 表现 承认 的,然后开始一面。
一面:
深拷贝浅拷贝
输出一个聚集 {A,B,C,D}的全部子集
自界说 View及留意 事项
怎样 主动 化摆设 打包发包流程
JNI是否相识 过
内存采取
classloader
对热修复以及插件化相识 多少
微信付出 宝付出 调用时上层是怎样 封装AIDL的
怎样 给一个app瘦身
根本 上在之前的口试 都有涉及到,依然是问我会的东西 ,一点点深入,第9道口试 题我记得在掌阅口试 的时间 谁人 口试 官说微名誉 地是广播,但是摩拜的口试 官说微名誉 地是start ActivityForResult ,这个我决定以后本身 去深入研究下,看看他们到底是怎样 实现的,别的题目 都是比力 常见的 。
二面:
怎样 实现一个推送 ,极光推送原理
说说Http协议,以及Tcp/Udp
常见的计划 模式,怎样 实现一个观察者模式 ,假如 必要 有序关照 观察者,该怎样 操纵
实现一个图片加载框架应该思量 哪些
线程池有哪些参数,应该怎样 计划
性能优化是怎样 做的
Java为什么要推出HashMap ,它是怎样 办理 hash辩论 的
JVM内存分配,编码时怎样 留意 内存泄漏
Binder机制原理
摩拜问地都是很常见的题目 ,我能感觉到口试 官在问我题目 的时间 并不在乎我对这个题目 把握 地有多好,而是更加关注我对待某个知识点的态度 ,更多地赋予口试 题一个场景,而不是空谈理论,是我比力 喜好 的口试 官。
三面:
为什么重复造轮子 ,本身 去计划 一些框架的缘故起因
怎样 包管 线上项目标 稳固 性
本身 之前做的项目标 规模
聊了聊他们如今 在做的项目
三面口试 官跟我聊了聊一些新技能 ,尚有 就是我本身 为什么要重复造轮子,我说为了包管 项目标 稳固 性同时可以或许 更好地去定位题目 ,然后聊了聊他们如今 在做的项目,团体 感觉特别 好。
口试 之外
上面说地都是一些硬气力 ,下面简单 说些本身 在口试 过程中总结的一些口试 之外必要 留意 的东西
比力 紧张 的口试 安排在下战书 3点左右 ,由于 北京这边的互联网公司根本 上都是10点左右上班,那么很有大概 上午面不完,下战书 接着面 ,以是 3点的话可以给你当天的第二家留有更多的缓冲时间
大公司的口试 只管 安排在前面,由于 大公司的流程特别 多,Offer审批时间较长
口试 前肯定 要跟HR沟通好,当天尽大概 一次性面完 ,假如 不能面完就改时间,尽大概 不要分两次面,除非环境 特别 。
家中只管 放一些零食水果之类的 ,早上可以吃一点再去口试 ,由于 假如 口试 排地满的话,上午面完之后就得急着赶往下一家 ,以是 我有好几天都是只在晚上吃了一顿饭,特别 尴尬的时间 偶然 间 在口试 的时间 肚子在咕咕地叫 。
跋文
除了上面提到的公司之外,我还口试 了大家 车(Boss直聘) ,以及58同城(Boss直聘)**而且也都收到了他们的Offer,由于他们口试 的次序 排在背面 ,而且口试 题跟之前的口试 题有很多 共同点 ,以是 就没有放出来,别的 还口试 过快看漫画,面了两轮,然后CTO必要 改天面 ,我内心 着实 比力 反感这种公司的,由于 作为口试 者跑一趟本身 就很辛劳 ,以是 厥后 复试我就没去 ,尚有 一家是青橙科技也是必要 我去复试,太远了,而且当时 手里已经有了Offer就没去 ,至心 盼望 这些招人的公司可以或许 在一天内把流程能走完,毕竟 像一些大公司在跟我沟通口试 的时间 都会约定个时间能把全部 的口试 流程走完。别的 尚有 一家是豆果美食,口试 官没怎么聊技能 ,根本 上都是在谈人生,谈抱负 ,末了 相互 加了微信 ,然后当时 问我有没有别的Offer,我也知道本身 不会去那边 ,然后就说爱奇艺给我Offer了,大概 他也知道我不会去了 ,厥后 就没有关照 复试什么的,不外 感觉他比力 自大 ,至少比我自大 。
固然 本身 这次没有进入到BAT等一线互联网公司 ,头条,滴滴尚有 陌陌的简历都被刷了,跟那些大佬比起来确实内疚 很多 ,感觉没啥须要 写这个口试 履历 ,但是总以为 写出了可以帮到一些人,由于 本身 之前在技能 的蹊径 上也迷茫 过 ,从最初的Android小白,当时 看郭霖,张鸿洋尚有 主席的博客学习 ,然后在迷茫 的时间 看主席尚有 VB的知乎Live,也认识 了很多 小搭档 ,在技能 上给了我很多 资助 ,让我可以或许 对峙 走到本日 ,同时也感谢每一个给我口试 机遇 的口试 官,Android之路还会一如既往的走下去,盼望 这篇文章可以帮到一些人 ,就像当初帮到我的那些文章一样 。
各人 都在看