面试遇到的问题

基本情况:本科毕业一年,面试职位:北京的Android开发职位。

        总结一下面试中遇到的问题,一共面试了4家公司。

        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)哪些手段进行图片内存优化

原文地址:https://www.cnblogs.com/riskyer/p/3358210.html