好未来
一面:
1. 自我介绍 (介绍自己的学习过程)
2. 介绍项目
3. MVP结合项目介绍
4. EventBus介绍(建议结合项目)
5. 算法: 输入一个字符串,求全排列的个数,例如: aabbcd 输出 6 计算方法,利用了数学上的全排列: 4!/ (2!* 2! )
一面问的很简单,算法那块写了好久,建议大家介绍的时候结合项目介绍
二面:
1. Listview 面试官只问了是否用过listview ,在这里需要说 listview的原理、优化、和他类似的Recyclerview,讲两者的区别,Recyclerview的原理,优化
2. Android中的网络请求框架用过哪些?
3. 内存泄露遇到过哪些 怎么解决
4. 介绍项目用了哪些框架 讲一个熟悉的
5. Android中的四种启动模式 (建议结合例子讲,或者项目中的应用)
6. 关于数据库的,我本身数据库不好,面试官说,计算机专业的应该数据库都会,然后没问,但是主动给面试官讲了Android中的 SQLite数据库
7. 项目中做了哪些优化?
8. 和别人意见不统一,怎么处理? (我一般说界面设计的时候,APP主题色选取的时候)
9. 项目中遇到最大的困难是什么? (我一般说 开始写时学习起来比较困难,比男生上手慢之类的,但是,自己通过自己的努力还是解决了问题)
10. 你为什么想来好未来? (每一个公司面试到最后都会问,为什么想来我们公司,还是建议大家去面试之前先了解一下公司,我一般是在去面试的车上,搜一下公司的文化之类的,一定要表现的是自己看中公司的文化,技术氛围等)
CVTE
一面:
1. 自我介绍
2. Volley框架原理,内部如何实现请求优先级
3. MVP结合项目讲,和MVC区别,建议再看一下MVVM,有被问到过 (这些框架因为我简历中有写到)
4. 知道哪些设计模式,面试官让将工厂模式,(结合例子)
5. hashMap的源码
6. 线程池的介绍,用过哪一种?为什么用这个?
7. 算法:二分查找
二面:
1. 介绍项目
2. 画项目整体架构图 (建议搜一下这个怎么画,被问好几次,还是不知道)
3. 设计模式,又让讲工厂模式
4. 设计一个微波炉:有三个条件: a. 带壳,带皮的不能加热 b. 加热期间不能取 c. 方便以后扩充, 没有固定答案,但是一定是从一个宏观的角度去看、
5. 算法:二分查找
6. Fragment
7. 项目中遇到什么问题
美团
一面:
1. 简单自我介绍
2. Hashmap hashtable区别,hashmap源码? 如何使hashmap线程安全
3. Java中的锁 Java中的异常分类 堆排的思想 对象锁 类锁 四种引用
4. Android进程之间通信 (IPC)
5. Git命令 (主要是 本地 缓冲区 远程仓库之间的那几个命令,一定要搞清楚) 当时没有想起 reset命令
6. 为什么第二个项目用Git,第一个用SVN (即,Git和svn的区别)
7. 熟悉哪些设计模式,手写单例模式,我当时写的是双重校验锁的单例模式,因为这个涉及到 Volatile 关键字,还有为什么进行两次判断,这块就可以说到两个线程竞争资源。
8. Java的内存模型? 说到了内存屏障,指令重排序(涉及到 Volatile)
9. Java中的内部类 , 为什么匿名内部类只能访问外部类 final修饰的变量 ?
10. 如何去判断一个对象是否回收?即 引用计数法 和 可达性分析法,什么对象常被作为 GC Root结点? 垃圾回收算法?
11. 算法:将十进制转换为七进制?
12. 项目是否遇到过内存泄露?怎么解决的?
13. 画项目架构图,又一次难到了我,画出来面试官都笑了,真尴尬。
14. Px,dp,sp的关系
15. Android 数据存储方式 进程回收的优先级
二面:
我是面Android的,但是二面面试官是搞IOS的,面试官人很nice,我不会的会给提示,加密那块也给我讲了许多他的见解。
1. 一面面试官问过什么 我老实的就把一面一面面试官的问题都说了,然后面试官说 那差不多了,咱就看基础吧。。。 基础竟然说的计算机网络,我的弱点啊
2. 问了几个笔试题,面试官开始说计算机网络的时候,我就说只是跟着学校的课程走,面试官说没事,然后就开始了
3. ISO七层模型,每一层的作用,有哪一些协议? 路由器 交换机 之类的工作在哪一层?
4. TCP UDP的区别
5. http的状态码
6. http协议的首部有哪些? 在客户端怎么使用http协议?
7. 和https的区别?
8. SSL加密过程
9. https的交互过程
10. 加密算法,对称非对称是指什么?有哪些?
11. MD5是做什么的?
12. 关于加密问了许多,当时答的不是很好,有一些想不起来了。
13. 算法:交换二叉树的左右子树,,是所有的左右子树都交换 (剑指offer上面的题)
14. 算法:一串正整数 特征: 先增后减,求最大值 ,注意时间复杂度 (这种题一般都用二分查找解)
三面:
三面有些像压力面,只记得面试官说过,说他负责美团的整个APP,我不小心就撞枪口上了,这个撞枪口真的是撞了好几次。
1. 简单自我介绍
2. MVP框架结合项目介绍?不觉得你的项目中用MVP模式合理吗?
3. 设计模式我讲了观察者模式,并结合项目中的eventbu进行讲解
4. 项目中遇到的问题,我说了webview的内存泄露,然后撞枪口了,面试官说他最近在研究webview,然后讲完webview的内存泄露处理方法,
Webview为什么会发生内存泄露?为什么其他view不会?
5. 有没有又听说过webkit ,是webview的底层,当时懵了。
6. 项目中搜索怎么实现的 有没有做到热词搜索?怎么实现的? 有没有做屏幕适配?
7. Listview,RecyclerView原理,应用,优化,区别
8. 要用listview实现不同的对话界面,即多种item如何实现? 我说复写 getItemViewTyPe()方法进行判断,面试官说很多种item,这样判断是不是代码量太大,我说动态加载布局,因为所有在xml代码里实现的布局都可以用JAVA代码实现,貌似这个不是最好的答案,我没有想出来。
9. 项目中遇到的滑动冲突是怎么解决的?
10. 项目中的优化? 对框架的看法?
11. 如果让你去建一栋楼,形状不定,怎么预算建完这栋楼需要多少块砖,这个题没有固定的答案,主要一个人解决问题的思路。我面试最怕这种题。
12. 生活,学习中遇到最大的困难是什么?
13. 和别人意见不和怎么办?
14. 怎么看待考研和就业? 如果你美团没有过,会去考研吗?
我觉得我三面主要看反应能力,我三面能过可能就是简历上的东西面试官比较感兴趣,虽然不停的撞枪口,但是面试官人还是很好,有一种思维开拓的感觉。
四面:(HR面)
1. 自我介绍 (这个自我介绍就要偏向生活,性格方面)
2. 平时的兴趣爱好
3. 家是哪里的,对于去外地家里的意见,意向城市
4. 有没有讨厌的人讨厌的事
5. 有没有男朋友
6. 参加过哪些组织,活动?
7. 与其它人意见不和怎么办
8. 你看中一个公司的什么?
9. 什么情况下你会离开公司?
10. 你为什么想来美团?
11. 未来5年内的计划?学习规划?
12. 生活学习中遇到最困难的事情?怎么解决的?
13. 有没有拿到其他家的offer
有一些想不起来了,建议大家搜一下,HR面常见问题,提前准备
58同城
一面:
面试官不是做Android的,而且58的面试时根据技能点打分的,比如数据库,C语言,操作系统等,
1. 有没有遇到内存泄露?
2. Java中的异常处理?分为哪几种?常见的异常?
3. http状态码
4. 对C语言掌握怎样? (猜面试官是搞 C底层的)
5. 数组,链表的区别
6. 项目中如何进行网络请求?说到了Android中的网络请求框架,貌似面试官不感兴趣。
7. 数据库 我直接说我不是很了解
8. 算法: 两个绝对路径,求相对路径。例如 c\\d\\e\\a.txt c\\d\\w.txt 求两个的相对路径 原理就是字符串的匹配差不多。
9. 还有一些想不起来了。
二面:
1. 项目介绍
2. HashMap的源码
3. Listview 原理
4. 算法:给定数组,将正数放在后面,负数放在前面,注意时间复杂度,(利用快排的思想,前面找正数,后面找负数,找到交换)
5. 算法:第一个表里有 id 姓名 第二个表里有 id 成绩
将表进行合并为表3 id 姓名 成绩
(用hashmap存,利用id进行匹配,匹配成功后在表3中添加,表1,表2中删除)
6. 如何减少服务器的压力? (缓存)
HR面:
是一些基本问题,这个大家自己百度+现场发挥就差不多了,基本不会有问题。
京东
一面:
1. 快排的思想
2. Activity的四种启动模式
3. JAVA中的锁,sychronized和 Lock的区别 异常的分类
4. Java中的集合分类 final finalized finally 实现多线程 如何让hashmap线程安全
5. Equal 和 ==的区别 深拷贝和浅拷贝 JVM ART Dalivik的区别
6. session和cookie 如果浏览器禁止使用cookie,怎么判断当前用户?(sessionId)
7. HTTP HTTPS
8. 线程池 线程池在哪里用? Asynctask 讲源码
9. Volley的取消请求怎么实现
10. 单例模式作用
11. 进程与线程的区别(建议结合例子) Android进程间通信 操作系统进程间通信
12. MVP在项目中的使用,说到了一个问题,现在给忘了,好像是关于长链接的问题,建议大家自己看看,
13. 异步网络请求完毕如何主动更新界面? 更新ui的方式 Handler的原理
14. View的事件分发机制
15. 动画的分类
16. View的绘画流程 因为当时讲到recyclerview,问那个分割线是如何画出来的,如何确定它的位置。
17. 缓存是如何做的 (LruCache) APP的优化方式?
18. JAVA中的多态,有几种IO流,之间如何转化,实现多线程的方式
19. JVM的内存结构和内存分配
20. Intent 与intentfilter的区别,service的介绍
二面:
京东的二面感觉很偏产品,面完都懵了,感觉很随心,面了20分钟。
1. 介绍项目,有没有做适配是否参与界面设计,就是项目做的时候关于产品定义,一些选择之类的。
2. 有没有喜欢的APP,看一种一个APP的什么(感觉面试官看中的是用户体验,流畅度)
3. 反正一个技术都没说,下来也忘了。
HR面:
常规问题。
有一些不全,给忘了,想起来会再补充,感觉基本是按简历来的,建议大家《剑指offer》,《Android开发艺术探索》 《群英传》 《JVM虚拟机》这几本一定要看。写在简历上的知识点就要会,每一个都可能成为提问的话题。建议大家提前准备。祝好运咯。
关于校招的心得体会,另外整理了一篇文章:点击打开链接
这里有一个我觉得很棒的几个链接的地址
http://gold.xitu.io/entry/579052d1128fe100568f2515
http://gold.xitu.io/entry/57adf02ec4c97100546ebc3a