双非渣渣安卓校招面经(阿里腾讯百度美团大疆英语流利说等……)
秋招总结:
内推一面:
20:10电话打来,正在做阿里笔试(于是和面试官约好一个小时后打来),内推那么久都没个电话,都已经转笔试了,都以为没有面试机会,这个时候居然打来了。
21.14准时打来。
什么时候开始学Android的?
dvm的内存管理知道吗?
答:不知道。
那jvm呢?
内存溢出,内存泄露。
asyctask和thread区别?asytask默认开几个线程?
65535问题出现的原因知道不?dvm角度
点击一个laucher的启动流程。
application什么时候启动的?
怎么开启多进程?
一个进程怎么启动另外一个进程?aidl
你平时用什么图片框架?原理知道不?怎么设计一个图片框架,要注意哪些?
Java四种引用。
平时用网络框架用哪些,这个原理知道不?
listview与recyclerview的区别?
tcp,udp位于osi七层参考模型的哪一层?
tcp与udp区别?
进程与线程区别?
https知道不?https的建立连接的过程?
get,post区别?
你后端数据哪里获取的?
用什么库解析数据?gson的option参数啥的(这个完全不知道)
我看你项目用了热修复,tinker原理知道吗?
插件换肤怎么做的?
怎么解决滑动冲突?
hook过activty的启动流程?
还有一些问题忘记了,大部分就这些…面了63分钟55秒。
腾讯(复试卒)
初试:
看你简历应该对listview很了解。
说说recyclerview和listview的区别吧?
用到哪些设计模式?
做过哪些性能优化?
长生命周期的对象有哪些?
tcp流量控制?
进程和Java虚拟机的关系?
c 怎么样?,搞过acm吗?
linkedhashmap和hashmap,treemap的区别?
复试:
说一下你最自豪,最有成就感的项目。
string,stringbuilder,stringbuffer的区别,性能比较。
知道哪些动画,具体应用场景?有没有用过什么动画库?答用过lottie,答了一下怎么用?
我们所有的动画是否都可以让UI设计好了导成json呢?
答:这个库不是所有的效果都能实现,不能实现交互。
那怎么让lottie实现交互?
用贝塞尔曲线干嘛?应用场景?
对着我手机桌面一个效果(就是桌面清理垃圾的火箭喷火的效果)开始问,怎么实现?
数据结构与算法怎么样?我说一般,然后让我把知道算法时间复杂度,空间复杂度写出来。
项目中用到哪个算法?
一个很大的文件或者视频,一个服务器存不下。我们要获取这个文件怎么办?
存储十万条数据(键值对)到内存,怎么搞?这个答得最不好,写出来。开始说用hashmap存储,后来觉得这个应该比较耗时,又乱扯了多线程,线程池,然后面试官让我写一下。然后面试官问我这样写会有什么问题?
线程池有哪几种?
wps一面:(1小时多)
你暑假是在美图实习对吗?做过的项目能说一说吗?
Android里面有哪些动画?view动画和属性动画的区别?他们实现的实现原理?实现原理的区别?
怎么去加载一个dex里面的activity
wps二面(卒)(一个半小时多,跟面试官还聊的挺开心,答的感觉也挺好,最后居然挂了,连个通知都不给)
美图对你的评价?
大四允许实习吗?
1、对容器的理解?
2、对多线程的理解。
3、view和viewgroup的区别,viewgroup的绘制流程
4、热更新了解吗?
5、okhttp源码看过吗?volley源码看过吗?
6、工厂模式。
美团提前批一面:
进程与线程的区别。
io操作放哪?每次做这样这样一个操作都要new一个线程吗?答用线程池,都用过哪些线程池?
tcp/ip4层结构啥的?输入一个网址过程
求一个不完全三叉树叶子最多的层,求深度。
访问控制权限的理解public,protected,default,private。
判断线程是否销毁。
arraylist和likedlist区别。
对现在网络结构的理解,tcp三次握手,最后一次没有握手成功会,连接会建立吗?
数据库主键(听成了组件)的概念?说只会增删改查。
描述增删改差。
算法:找出一个三叉树节点数最多的层。
美团提前批二面(北京现场面)。
说下你对互联网的看法。
为什么想加入美团?
讲讲自己怎么学的?为什么没有看官方文档。然后推荐我多看官方教程。
Java虚拟机
拿张纸写了几个单词,APP,stack,process。
一个app能有多个进程吗?
那多个app能在同一个进程里吗?
service有几种开启方式。
一个activty bindservice后,开启另一个activty ,又bindserivce,然后退出一个activty,service会销毁吗?
美团广州霸面:(卒)
10.19下午6点知道广州那边可以霸面,然后连夜坐高铁就过去了,感谢广工的张志豪大晚上过来接我,请我吃鸡,又陪我去到处去面试,本来就不指望能有机会,也没啥准备,,去的时候Android面试官已经不在了,美团的工作人员都很和气,然后又帮我打电话让面试官过来了,虽然最后还是没有过,面试官也给了我很多建议,很友好的一次霸面,面完当天准备回去到长沙,到高铁车站,发现都没票了,不得已又在广州逗留了一晚。
自我介绍。
常见的设计模式在Android源码中和开源库的运用。
进程和线程的区别?进程间通信的方式,线程间通信的方式。notify和wait的原理。锁的原理?
Java和Android异步的方式?
线程不安全会造成什么问题。
什么是原子性?举个原子操作和非原子操作的例子
tcp/ip应用层有哪些协议?
https是怎么加密的?怎么攻击https?
http是无状态的怎么理解?如果要让它有状态呢?(应该是答长连接,当时答错了)
http头有哪些?
翻过墙吗?怎么***?
答用VPN,VPN原理知道吗?
有去自己搭建网站不?有抓过包吗?
我看你说看过hashmap源码?你知道Android里面一种性能较高的map吗?arraymap。原理是什么?
二分查找的复杂度。
解决hash冲突的方法有哪些?除了链地址法和开放地址法还有吗?(再hash,建立一个公共溢出区)
快排的时间复杂度,最坏时间复杂度,快排只能递归实现吗?不用递归行吗?最好最坏时间复杂度。
dvm和jvm区别,65535问题怎么解决?为什么会有65535问题?
答dex分包,多个dex怎么加载?
除了Android,什么专业课学得最好
数组实现一个循环队列,给8分钟实现。
最后有什么要问的?我说没有了。
最后面试官说:"你没有问题问,但是我还是有一些话要跟你说,我这个人很直接,你应该知道没有下一轮面试了,我也是刚毕业几年,也是这么走过来了,所以你的心情我也能够理解,但是不能够降低要求,你的表达还有肢体语音不太协调,有些紧张,回去多练习怎么说,再就是不要问你一个问题,就把所有相关的问题都答出来,掌握的面还是挺广的,你很勤奋,这么远从长沙过来。"最后走的时候说了"你的简历我留一份,今天的面试就到此结束了,最后还问我"是第一次来广州吗?我说是的,然后他说"可以去玩两天"。
美团外卖补招:(26分钟左右)
补招一面:
封装组合控件给其他项目开发人员使用?
适配有问题吗?
后端是自己做的吗?
性能优化?
自我介绍。
项目里面做的觉得有难度的地方?
hook和插件换肤:
hashmap的结构;
类的加载机制,类加载流程。
静态代码块和非静态代码块的区别?
Java虚拟机内存分配,gc算法有哪些?复制算法,存活的对象超过survoir空间咋办?
怎么学习?
看过哪些源码?activtity启动流程
看过哪些开源库源码?
volley,eventbus。
软引用和弱引用有什么区别?
说说eventbus的原理。
进程保活:
双进程怎么做?一个进程怎么知道另一个进程有没有被杀死?
性能优化:
手里还有哪些offer?
volatile知道吗?
单例模式说一种你觉得最好的?
说了静态内部类式?
为啥静态内部类式式线程安全的?
软引用和弱引用区别。
怎么检查内存泄露?
怎么判断单链表是否有环?
数据库
读取一个很大的xml文件,有几十万条数据,怎么读?要注意怎么?写入数据库,怎么写,要注意什么。
大疆终面:(卒,武汉现场终面,这站最后一个,估计20分钟左右,问的比较水,但答的不太好)
觉得最拿的出手的项目,最有成就感的项目?
我讲了插件换肤。
换肤对用户是透明的吗?
如果是自己new的控件能换肤吗?
fragment用的多吗?需要注意什么?_?。
你最擅长那块,有什么经验能说一说吗?
对大疆的了解?
还有什么要问我的
百度(二面卒)
说下在美图做的项目?你主要负责什么?
自我介绍?
事件分发?
mvp用过吗?那你用的mvc?那你怎么解决业务逻辑与UI的解藕?
view的事件分发。
进程和线程的区别?
看到我写了拦截activty启动流程,然后问了这个。
说一下滑动冲突的处理。
求101到200所有的素数。
最后还有什么问我的?
百度二面:(一个小时几分,卒)
view的事件分发?
view的绘制流程?(说到一半,中途突然断网)
最Android什么熟悉。
写过简单的eventbus?这个应用场景是什么?用它有什么好处?如果不用eventbus呢?
activty的启动流程?
Android里面你最擅长的是那一块?
做过什么自定义控件?有没有去做相关的封装。
做的项目的难点,讲了hook。
然后问过程中有没有遇到什么问题?
写个快排。
进程线程区别?
进程通信的方式?
activity和其他组件的通信方式。
Serive在主线程吗?会发生anr吗?
说说view事件分发进制
requestLayout会影响整个view树吗?
动画会去Measure,Layout,Draw吗?
怎么判断是否能找到这个类?一个类怎么加载进来的?类加载机制。
类信息会被垃圾回收吗?他在方法区,几乎不会被回收。
说说你最引以为豪的项目。
b站终面:
自我介绍:
介绍你在美图实习做的项目。
语音这块怎么弄的?语音上传的什么格式,怎么识别,怎么返回结果?
然后问了我做的一个音视频播放器的项目。
3gp和…(啥格式)之间怎么转换?因为实在不知道,一脸懵逼
一个项目中有很多很多if else有什么问题?
视频编码怎么做的?解码是个什么原理知道不?
eventbus用的啥数据结构啥的?
还有什么要问的?
英语流利说一面:
操作系统:大端小端,short,int啥的。
事件分发。
实习项目。
熟悉的设计模式。
YY初试:(武汉现场,接近1个小时)
Java虚拟机内存分配,gc算法。
activity启动流程。
实习项目。
内存泄露泄露的防范与排解。
图鸭一面:63分钟
Java里面的内部类,说一说。
volatile知道吗?
说到了非静态内部类会导致内存泄露,说了内存泄露的解决。
Asyctask的源码?
Android四种启动模式,具体应用场景说一说。
怎么让启动的activity在一个新的任务栈里。
retrofit用过吗?
hashmap结构讲一讲,get过程?
看你简历你应该是对网络框架做过一些封装,能具体说下吗?
看过volley吗?volley的用什么做的缓存。
支持restful吗?
说说http,put请求用过吗?
ioc的注解框架。运行时注解和编译时注解。编译时注解怎么用知道吗?建议去看processor对框架进行改造。
动画做过吗?说说Android里面的动画。属性动画变化的过程。插值器和估值器?
布局优化,过度绘制
Hook具体说一说。
设计模式熟悉吗?说说熟悉的设计模式。
***模式怎么用的。
对你这个插件换肤还挺感兴趣的,能说一下吗?
二面三个面试官轮番问:(被虐)
面试官一:
你是有打比赛吗?
1、找工作的打算?
2、int值实现反转。可能溢出吗?
面试官二:
你现在找工作倾向于大公司还是小公司。
倾向于公司做什么的?
socket用的多吗?
material design。
handler消息机制了解吧!一个线程要往另一个线程发消息。
说说aidl。
jni,binder机制。
三级缓存,内存缓存lru知道吗?
遇到问题怎么解决?看过Android的那些书?都看完呢?
2、
做过视频类的项目吗?
对哪方面感兴趣?对音频感兴趣吗?对机器学习感兴趣吗?
还有什么要问我的?
项目架构。
MVP?
拦截activity启动流程?hook是啥?Instrumentation,Hook了没?
如果启动的aitivity在不同的进程呢?
怎么开启多进程?
多进程怎么通信?
进程客户端被杀死,服务端怎么将它拉活?
内存泄露?
浅拷贝深拷贝?
设计模式
常用的容器类?
hashmap的put过程?负载因子为啥不为1?
闪银一面:(只记得这些,还有很多的记不起来了(很多都是没听说过的概念,所以也记不住),本来实习僧瞎投的,没想到问这么变态,Android一点不问,我看这是根本不打算招人吧)
全程恁数据结构算法,操作系统,数据库,Linux,网络
自我介绍:
看些什么书?有没看官方的文档?
怎么科学上网?有没有自己搭过科学上网的服务器?
平时用到啥算法?
快速排序,归并排序
求质数最好的方法?为啥?
在很多字符串中,怎么查找一个字符串?时间复杂度
怎么设计hash表?
操作系统:(问题不止这么多,还有些问题不记得了)
软链接硬链接,LRU,然后发来一个图片(就是Linux的可读可写可执行啥的,还有其他看不懂),问啥意思?
数据库熟不?SQL语句?
网络:osi七层参考模型、tcp/ip四层分别干嘛的?tcp三次握手,tcp/udp应用场景?
二叉树知道吗?
写代码: 怎么判断一个二叉树是否是平衡二叉树?
写了一个版本,然后让优化,又写了一个版本,又说还能优化
今日头条一面:(内推投的没有消息,实习僧瞎投的一投就收到好几个面试通知,1个半小时,中间网络卡的要死)
说说http协议。
状态码?200和206区别,302?
说说Java多线程。
说说线程池以及线程的管理,join,wait,notify。wait和sleep的区别
线程的实现方式。
同步的方式?
thread和runable的区别,什么时候用thread,什么时候用runable?
volatile?
说说view的绘制流程。
说说bitmap的处理,
怎么计算图片的大小?
还有些忘了…
京东一面:58分钟
c/c 熟吗?
有没有做过c/c 的项目?
说说美图的项目,做了啥?难点?
问了另一个项目:
做过哪些性能优化?
夜间模式是自动的还是手动的?
加载大图多图不出现oom,三级缓存。
哪些项目上线了,能下载的?
service有哪两种注册方式?(只有一种,面试官自己记错了)。
activity启动模式?
网络熟吗?一般网络请求什么格式?
看过哪些开源库?
jni原理熟悉吗?使用流程?jni用as还是es?jni只能调用c吧?
什么时候能来实习?
今后想做哪个方向?
问了个学校的比赛,几个题,什么题型?
学过哪些课程?
你在美图实习的团队有多少人?
团队工作流程?
学校是211吗?答:不是211。一本还是二本?
还有什么要问的?
问了有几轮面试,他说只是对我简单了解,具体还是要和其他人商量,看业务是否他们匹配?如果匹配会有HR通知,然后还有两轮技术面,最后是否进来,由部门老大决定。
(HR打电话让去北京面试,答去不了,最后还说是实习的,可以看实习表现决定转正,然后HR说还想来的话就给她打电话)。
Java的反射和类型机制?
tcp的拥塞控制?
结构体和类的区别。
结构体的变量是私有的还是公有的?
结构体里面有类吗?
类里面的变量默认是私有的还是公有的?
挂断和其他人商量。
HR:
自我介绍。
父母不让来北京怎么办?
项目情况?
实习情况?实习最有成就感的。