美团Android三面面试经历

作者: 6b440373157d | 来源:发表于2018-03-07 14:58 被阅读3610次

    之前在阿里实习,回来后只参加了美团的面试。最后有幸拿到了阿里的转正offer和点评平台的offer。这里简单地把我在美团面试过程中记录的一些问题分享一下,总体来说基础问题还是比较多的,希望对大家有帮助。

    美团一面

    1. 介绍一个项目经历

    2. 创建线程的方式

    3. 线程池有什么优势

    4. 怎么停止一个线程

    5. 锁的类别 方法锁 对象锁等区别

    6. 重载和重写 比如 method(String s) method(Object o) 两个方法,调用method(null)会出现什么情况

    7. Activity生命周期 Activity A -> B 生命周期变化

    8. View事件分发机制

    9. ListView里的item有图片,当图片加载成功时可以接收事件,不成功时整个item接收事件,实现方式。

    10. 自定义View 自定义attr xml可以定义相同属性吗

    11. Jni

    12. 屏幕适配相关问题

    美团二面

    1. 介绍实习经历

    2. Object的方法有哪些 wait notify hashCode equals ... 3.HashMap实现原理与hashCode equals一起分析,如果冲突较多怎么办 做了哪些优化

    4. 连接字符串方式,StringBuilder, StringBuffer。有没有看过编译后的指令和普通连接的区别

    5. String类的特性

    6. 文件流关闭的时机

    7. GC相关 包括如何确定对象无用 回收算法

    8. 了解GC对开发有什么用 内存泄露等

    9. 内存泄露的情况 使用什么工具检测 工具对比 有没有了解实时监测框架

    10. 子线程能更新UI吗 为什么不能 会出现异常吗

    11. Activity之间通信有哪些方式

    12. Intent可以传输什么类型的变量 有大小限制吗

    13. 本地广播和普通广播区别

    14. git svn区别 git pull 和 rebase区别

    美团三面

    1. 介绍实习经历

    2. JVM和DVM或ART有什么区别

    3. Dex和Class区别 Dex做了哪些优化

    4. Binder原理

    5. 了解linux下的其他进程通信方式吗 管道 SystemV...

    6. 为什么选用Binder,Binder为什么只复制一次

    7. 应用层有哪些跨进程方式 AIDL ContentProvider Socket ...

    8. 系统级别除了Binder还有哪些跨进程方式? Zygote通过Socket监听来fork新的进程,native crash发出信号kill process ...

    9. 插件化组件化 阿里Atlas 360的DroidPlugin技术(项目用到了)对比

    10. 动态化方案 了解Weex吗

    11. 锁用过哪些? 区别是什么? 自旋锁和重入锁有了解吗

    12. View事件分发

    13. 怎么拦截事件

    14. 标签流怎么实现

    15. 自定义View里的性能优化

    16. 如何计算图片的所占用的内存

    作者:IrvingQ

    本文来源于牛客网

    ——————————

    牛客网(www.nowcoder.com)

    - 互联网名企笔试真题

    - 校招求职笔经&面经

    - 程序员求职实习信息

    - 程序员学习交流社区

    相关文章

      网友评论

      • 自由世界再相见:今天面试完,就是这些题
      • 230bc86f0361:不去不去怕了怕了
        6b440373157d:@slimshady_2d3e 别怕别怕,你可以的
      • 343ca2bbcb58:子线程能更新UI吗 为什么不能 会出现异常吗
        这个问题有待商权,作为面试题这里可能有坑,其实非主线程也可以操作View。
        343ca2bbcb58:@Android雏鹰 其中LauncherView是Activity
        343ca2bbcb58:@Android雏鹰 线程更新UI的前提是你这个ViewRootImpl是在该线程中创建。下面代码你可以研究一下。
        final String mainName = Thread.currentThread().getName();
        new Thread(new Runnable() {
        @Override
        public void run() {
        Looper.prepare();
        TextView tx = new TextView(LauncherView.this);
        tx.setText("主线程为:" + mainName + "; 当前线程为:" + Thread.currentThread().getName());

        WindowManager windowManager = LauncherView.this.getWindowManager();
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
        200, 200, 200, 200, WindowManager.LayoutParams.FIRST_SUB_WINDOW,
        WindowManager.LayoutParams.TYPE_TOAST, PixelFormat.OPAQUE);
        windowManager.addView(tx, params);
        Looper.loop();
        }
        }).start();
        暴走的咸鱼_:@小肥阳看简书 大佬 想请教一下子线程如何更新ui 目前我只知道子线程中调用runOnUiThread的这个方法可以更新。但这也是回到主线程操作ui
      • 不羞不止:做了一年的安卓,这个面试大部分还是没问题的
      • 一切不如学习:不是毕业生的要求吧,毕业生的话我觉得这太难了。。。
      • sidney_c:我今年22岁,开着兰博基尼LP-700,在北京、上海各有两套全款别墅,没有靠父母,没有靠朋友,全特么靠我自己一人想象出来的。
      • 随心飞翔_58ca:基础的很,是工作三四年人的面试题,或者是刚毕业的。一两年的感觉这题做不了
      • f6eb221858f2:突然感觉自己和大厂的程序员不是一个世界
        6b440373157d:@茴香豆的第五种写法 感谢指正~
        茴香豆的第五种写法:注意用词,是大公司
      • Persisten:看了一下,我觉得我也能进,,,😀
      • 何时夕:不吹不黑 这个难度正常 都是基础 大厂都这样
      • 小桃花扇:感觉有点难,还是我太菜了啊
      • 年成:不像是应届生的题目
      • LeviWGG:总体来说偏基础,关注一些前沿技术,不太难,难的是得到实习机会和面试机会。
      • 艾伦oy:打了一剂预防针 :smiley:
      • 昊昱2018:这个是招聘应届毕业生的吗,通过了工资没有12K不要去了
        唯夜:@_deadline 是这个水平,我也面试了,是自己太菜
        _deadline:@刘义圆87 我觉得这是18k的水平,是不是我太菜了😂
      • 别人家的天才:好难啊😂

      本文标题:美团Android三面面试经历

      本文链接:https://www.haomeiwen.com/subject/gffdfftx.html