基本情况:本科毕业一年,面试职位:北京的Android开发职位。
1.搜狗:
(1)5种基本的Layout:relative,linear,frame,absolute,table.
(2) wait和sleep的区别:wait释放锁,但是sleep不释放。
(3)单例模式的实现
(4)算法题:代码实现一个字符串如abcd的全部排列。
(5)两种方法注册broadcaseReceiver,及其区别。
(6) 索引的优化
(7)String常量池
(8)用asynctask实现一个音乐播放器,需要实现播放,暂定,进度提示等功能。
(9)Service是否在UI线程中,OnstartCommand是否有可能阻塞主线程
(10)android消息分发机制
2.奇虎360
(1)hashtable和hashset的区别,hash映射的实现原理。
(2)https和http协议的区别
(3)静态内部类和匿名内部类‘
(4)jdk1.5和1.6的新加特性
(5)4中luncmode的区别。
(6)对于handler和looper的理解
3.百度
(1)hashcode和equals相关,hashcode的源码实现。
(2)dp,px和屏幕密度的关系
(3)消息传递的三个方法:onTouch,dispathcTouchEvent,interceptTouchEvent的理解,及源码
(4)view中绘画相关的源码:draw的实现,dispatchDraw等
(5)View中animation的源码实现
(6)wait和sleep哪个会消耗cpu资源
(7)如何实现,在一个电子书展示页面,按下音量大小控制键来实现翻页
(8)重写控件实现一个歌词滚动播放效果,说出关键代码实现
(9)httpclient的使用情况
(10)handler和looper的实现源码
4.腾讯:
(1)算法题居多,笔试:
逆序一个有序链表;消除两个双向链表中相同元素;一个字符串,如"abcd",向左平移N位;1亿个数字,找出第N(N<10000)的数字,注意效率。
A,B两个二叉树,判断是否有包含关系。
代码实现这个问题:文件A中存取一堆人的ID和年龄,文件B中存了一堆人的ID和名字,AB中都是根据ID升序排列的。请实现在文件C中写入A,B中排序和合并的情况。注意,A,B中所有的数据量很大,超过物理机内存容量。
(2)如何进行低版本机器适配。
(3)Adapter的优化
(4)java的反射机制
(5)java多态性:子类对象指向父类引用
(6)java垃圾回收的机制
(7)哪些手段进行图片内存优化