春招面试总结(Android)

阿里(内推一面挂)

一面(大概13分钟左右)

1.问我最近在做什么项目,回答没做项目,学习算法,复习基础等(这里给自己挖了坑。算法没复习好)
2.讲一讲动态规划,什么问题适合用动态规划,大问题和子问题之间的关系,线性规划呢(子问题之间不是独立的,自底向上,最优子结构,重叠子问题)
3.知道的排序算法有哪些,最优的排序算法是哪个?(这个需要分清况,数据量大或者小,结合Arrays.sort()源码情况分析了一下)
4.http状态码(403重定向都答出来了,不挂我挂谁。)
5.http和tcp关系,https
6.触摸屏幕上的按钮会发生什么事件,事件分发
7.数据从手机上的客户端发到服务端经历了什么,过程是什么(当时觉得这个问题很抽象,不知道怎么答,只答了字节流字符流TCP三次握手等)

总结:放轻松,往自己的方向引导,比如项目等。最后问面试官我存在的问题:基础应该再深入、加强了解。


上海汉得(面试都通过了,但是部门不缺Android,最后没拿到offer)

一面(全程只聊项目,演示项目)

二面(14分钟)

1.各类框架:网络、图片
2.启动模式和应用场景
3.启动Activity方式
4.事件分发机制(这个每次都能说很久,拖时间0.0)
5.HashMap(建议看完大部分源码,必须很熟)
6.项目
7.Android 6.0新特性
8.内存泄露场景分析

总结:

SingleTop:收到消息时的页面,如QQ,十条消息总不能是十个页面

singleTop适合接收通知启动的内容显示页面。例如,某个新闻客户端的新闻内容页面,如果收到10个新闻推送,每次都打开一个新闻内容页面是很烦人的。

singleTask适合作为程序入口点。例如浏览器的主界面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会走onNewIntent,并且会清空主界面上面的其他页面。之前打开过的页面,打开之前的页面就ok,不再新建。

singleInstance适合需要与程序分离开的页面。例如闹铃提醒,将闹铃提醒与闹铃设置分离。singleInstance不要用于中间页面,如果用于中间页面,跳转会有问题,比如:A -> B (singleInstance) -> C,完全退出后,在此启动,首先打开的是B。


携程(内推一面挂)

一面(37分钟)

1.Java基础部分
2.char能否存储汉字
3.接口能否继承多接口
4.多线程实现方式(只答了两种,实际有四种,参考链接:Java实现多线程的四种方式)
5.JVM相关,GC(JVM答的太少,了解的很片面)
6.面向对象特性
7.多态实现原理:静态分派和动态分派参考链接:多态性实现机制)
8.抽象类和接口(区别没有答得很好)
6.堆栈、方法区
7.静态方法能否调用非静态方法(表达有问题,能还是不能,表述不清晰)

1.Android部分
2.启动模式
3.消息机制
4.事件机制
3.数据持久化(ContentProvider没答上来)
4.一共几个Context?ApplicationContext,getApplication(),getApplicationContext()区别?Context理解(没答完整)( getApplication()是用来获取Application实例的,但是该方法只在Activity和Service中才能调用;在一些其他的地方,比如说当我们在BroadcastReceiver中也想获取Application实例,这时就需要用getApplicationContext()方法)
5.fragment生命周期
6.自定义View流程
7.相对布局和线性布局效率,其他布局呢
8.谈谈自己的项目

总结:未通过原因,Java基础答的太差


腾讯(offer get)

内推一面(33分钟)

1.Java基础
2.JVM垃圾回收(注:内存模型和堆的分区是两个不同的问题)
3.Minor GC触发时间(当JVM无法为一个新的对象分配空间时会触发Minor GC,比如当Eden区满了。这时会把Eden区存活的对象复制到Survivor区)
3.方法区中的类信息会改变吗
4.多线程的理解、作用,线程池的作用:(a.减少在创建和销毁线程上所花的时间以及系统资源的开销b.重用线程,降低延迟 c.过适当地调整线程池中的线程数目,也就是当请求的数目超过某个阈值时,就强制其它任何新到的请求一直等待,直到获得一个线程来处理为止,从而可以防止资源不足。)
5.线程同步的方法,同步的作用(控制对共享资源的读写访问)

2.Android基础
3.Home键之后的生命周期、启动另外一个Activity的生命周期
4.内存泄露,弱引用使用时需要注意什么,是用Minor GC回收吗?
5.自定义圆的View属性需要注意什么?(padding,无margin,还有什么。wrap_content)
3.C++:智能指针

4.算法
5.归并排序,快速排序终止条件,left,right能否相等,如果所有的数都相等的情况快排分析
6.B树。(操作系统文件索引就是B树)

内推二面(33分钟)

1.随机向数组中插入100个不重复的数字,手写代码
2.MVC,MVP,MVVM
3.内存优化,性能优化
4.怎么学习的
5.启动线程,strat,run区别,start中是怎么调用run的
6.线程同步,线程安全 (线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。线程同步,同步就是协同步调,按预定的先后次序进行运行。在多线程编程里面,一些敏感数据不允许被多个线程同时访问,此时就使用同步访问技术,保证数据在任何时刻,最多有一个线程访问,以保证数据的完整性。线程同步也就满足了线程安全)
6.项目
7.有没有阅读开源代码(建议至少完整熟悉一个框架的源码,图片加载,网络请求等)

内推三面(48分钟)

1.基本类型和引用类型区别,使用场景
2.抽象类和接口区别
3.重载重写原理
4.框架,有没有了解过大型项目架构(平常可以看一些架构文章,推荐InfoQ)
5.内存泄漏
6.项目
7.Handler机制
8.进程间通信机制(Binder)
8.算法:如何对一篇文章中的单词排序,单词的每个字母都要排序(似乎可以用Trie树,当时并没有答上来)
9.finalize,finally,final区别

内推四面(卒,全程只问了两个问题,都答的不是很好,面试直接结束)

1.字符串去空格,不允许新开内存,只在原来的字符串操作。用c写
2.A,B两个人,有一筐苹果98个,每人每次可以拿1个或者2个,A先拿,然后B拿,一直循环,问A一定会拿到最后一次苹果的策略。

校招一面

1.TCP,UDP区别
2.TCP断开连接过程
3.排序算法(复杂度,稳定性)
4.设计模式(这部分自己由于有相关课程,比较擅长,讲的时候会结合类图、分析优缺点等)
5.类加载机制
6.多线程实现方式
7.synchronized和lock对比
8.线程通信方式(wait,notifyJava并发包)
9.Activity生命周期图(必须完整画出来)
10.性能优化
11.缓存实现方式
12.NDK
13.Binder
14.看过源码吗
15.热修复
16.注入

校招二面(1小时40分钟)

1.安卓系统架构(画图)
2.Binder机制
3.安卓系统启动过程
4.Activity启动过程(画图)
5.TCP,UDP
6.HashMap
7.Zygote
8.四种引用区别
9.性能优化,内存优化,Handler内存泄漏
10.ListView加载图片如何避免OOM
11.收到一个短信的过程
12.有哪些Systemserver,它和ActivityManagerService之间的关系
13.设计模式,Android中有哪些设计模式
14.C++虚函数,多态实现原理
15.Static关键字在C,C++,Java之间的区别
16.进程通信,各种通信方式之间优缺点
17.四大组件,ContentProvider使用方式
18.Linux查看文件命令
19.Linux文件权限
20.SELinux
21.快排,堆排序,希尔排序(给一个例子,需要写出每一次排序过程,这里需要对排序算法非常熟悉,因为给的数据例子有坑0.0)

校招三面(电话加面15分钟)

1.项目难点
2.性能优化,内存优化,内存泄露
3.GC算法
4.有没有看过开源UI库,你的github上有哪些项目
5.看过哪些安卓源码

面试官给的建议:多看源码、多看开源项目


CVTE(offer get)

1、2面

1.HashMap,hashCode
2.多线程
3.算法:找出出现次数第二多的数字,如果有多个,则输出多个
4.设计模式
5.项目架构图,技巧:问我项目的时候可以扯到MVC,MVP,MVVC架构
6.算法:字符串数字输出整数,"-12133313"输出整数,包括数字,char[i]-'0';(48)
7.进程间通信机制,AIDL生成的源码

HR面

1.性格优缺点
2.印象最深刻的事情
3.如果拒绝CVTE会因为什么原因
4.职业规划

总结:最好对公司的产品能有较深刻的认识

招行信用卡中心(只有一面,卒)

1.手写SQL分页查询、删除脏数据,只保留第一个数据
2.Java异常体系
3.根据银行卡前三位或四位或五位确定银行卡的种类(使用trie树,当时没答上来)

华为(一面卒)

1.只问了项目、成绩、获奖

总结:面试全程都没问我技术,都是我在说,后面一直在问我成绩,获了什么奖,在什么时间获得的,挂的原因可能是项目不合他胃口吧(同学都过了一面,就我一个人回学校了...)


滴滴(offer get)

内推一面

1.os(select/epoll)区别
2.工厂模式、单例模式
3.protected,final
4.数据库引擎,mysql的引擎innodb和其他引擎区别
5.数据库索引原理,数据库联合索引ABC,只查询AC可以吗
6.int,long在32,64位操作系统大小
7.冒泡排序,快排最好时间复杂度
8.其他问题,工作和生活冲突了怎么办等
9.http,tcp分别属于哪一层,数据从客户端传到服务端的过程
10.http状态码403,404,304,500,502

内推二面

1.删除文件(可能为文件夹),写伪代码
2.写一个队列的生产者消费者模式
3.进程线程区别,了解协程吗(差点当成携程了.)
4.数据库左链接、右链接
5.软件开发过程理解
6.面向对象和面向过程理解
7.drop,delete,还有一个啥没听清truncate,这三者的区别
8.冒泡排序,快排最好时间复杂度
9.一致性哈希算法


搜狐一面(后面没消息了):

1.广播有几种
2.service启动方式
3.Activity A跳转到B的生命周期调用
4.HashMap,HashTable,CocurentHashMap,ArrayMap
5.GC机制
6.数据持久化方式
7.内存泄露
8.四种引用区别
9.事件分发机制
10.Android多线程实现方式
11.数据库几种连接区别
12.图片加载框架:Fresco,Picasco
13.volly优缺点

头条一面 50分钟 卒

1.线程同步方法(关键字,并发包)
2.wait/notify,notify方法和notifyAll方法区别,notifyAll方法唤醒的线程,怎么决定哪一个线程得到运行
3.HashMap(要很熟悉),put过程,get过程
4.现在key为double类型,需要将key的整数类型当成同一个key应该怎么做(提示:重写方法)
5.内存泄露分析
6.进程间通信方式(别忘了BroadcastReceiver)
7.A跳转到B的生命周期调用,如果A的onStop方法方法发生在B的onResume方法之前会发生什么现象,如果B是singleTask又是什么情况?会调用B的哪些方法
8.service运行在什么线程
9.Handler内存泄露原理(message.target = handler,所以真正原因是由于message造成的),解决方法,一个线程可以有多个Handler吗。
10.handler的sendMessage方法和postRunable方法区别
11.HandlerThread
12.设计一个图片加载框架,LRUCache原理
13.看过第三方库的源码吗
14.排序算法,时间复杂度,快排为什么是NlogN
15.完全二叉树高度

16.弱引用和软引用

美团一面

1.HashMap、数组、链表

2.排序算法,Collections.sort源码(三个支点的快排以及改进后的归并排序)

3.二叉完全树、红黑树

4.段、页内存分配

5.银行卡算法

6.进程间通信、Binder机制

7.https、tcp/ip、http1.1,1.2,2.0之间的区别

8.多态原理

9.包装类型和基本类型区别

10.GC算法

11.voltile和synchronized关键字区别

12.equals和==区别

13.四种引用

14.一个activity中弹出一个对话框的生命周期调用

15.onNewIntent,singleTop和singleTask区别

16.事件分发机制

17.手写代码实现一个栈

#阿里巴巴##腾讯##去哪儿##滴滴##字节跳动##广州视源电子科技股份有限公司##安卓工程师#
全部评论
大佬
点赞 回复
分享
发布于 2017-05-18 22:02
大佬
点赞 回复
分享
发布于 2017-05-18 22:10
联易融
校招火热招聘中
官网直投
恭喜大佬,大佬最后面委会加面了?
点赞 回复
分享
发布于 2017-05-18 22:12
恭喜大佬!同mig移动端!
点赞 回复
分享
发布于 2017-05-18 22:32
选滴滴新锐还是腾讯
点赞 回复
分享
发布于 2017-05-18 22:49
大佬
点赞 回复
分享
发布于 2017-05-18 23:02
大佬看来也很坎坷啊
点赞 回复
分享
发布于 2017-05-18 23:03
厉害!
点赞 回复
分享
发布于 2017-05-18 23:25
大佬,你Java 和Android 都看的什么书
点赞 回复
分享
发布于 2017-05-19 10:21
大佬求照顾,求内推
点赞 回复
分享
发布于 2017-05-22 19:37
大佬
点赞 回复
分享
发布于 2017-06-14 22:18
头条内推码4EXU9YH 投递链接:https://job.toutiao.com/campus/
点赞 回复
分享
发布于 2017-09-06 08:14
大佬
点赞 回复
分享
发布于 2017-09-06 09:32

相关推荐

12 184 评论
分享
牛客网
牛客企业服务