记一次 Android 面试

作者: 香辣牛肉面 | 来源:发表于2018-07-20 14:36 被阅读1757次

    最近老同事给内推了链家网的 Android 职位,由于时间仓促,加上近半年多一直处于忙碌地开发状态中,还没能复习便接到了电话面试。

    虽然大部分问题都答上来了,原理性的问题基本都把大体流程说出来了,但是时间间隔太久不少具体细节记不太清了,描述得不够详细,因此并没能达到面试官的期望值。

    对于自己的表现,基本在自己的预期中,谈不上好,也谈不上太差,还算中规中矩,只是一面都没过,自己还是挺失落的(自己真的是有点自信过了头,觉得不复习也能轻松过一面 o(╥﹏╥)o )

    之前在内推的简历前还特意对一些项目的功能实现加了些描述,因为功能其实挺复杂的,需要结合很多知识点,并且自己做了最大化的优化,遗憾的是面试官竟然没有问到任何一个跟项目相关的问题(这点跟我面试别人的时候完全不同,我喜欢根据项目去拓展问题)。

    总的来说面试的问题并不是太难,但是需要静下心来花时间好好复习,趁着面试刚过去两三天,还能记得大部分面试问题,抽了些时间将电话面试中的问题做了下整理(后续会补上答案),方便自己后续复习,也希望能帮助到大家。

    题目整理

    1. StringBuilder 和 StringBuffer 区别

    StringBuilder 跟 StringBuffer 一样,都是用来处理可变的字符序列 , 区别在于 StringBuilder 是线程不安全的 ,而 StringBuffer 是线程安全的
    在运行效率上,StringBuilder 比 StringBuffer 要高, 因此在不考虑线程安全的情况下,推荐使用 StringBuilder。

    1. String 在 jvm 中的设计原理

    深入理解Java:String

    1. synchronized Lock 区别

    详解synchronized与Lock的区别与使用
    深入研究 Java Synchronize 和 Lock 的区别与用法

    1. java 中 sleep() 跟 wait() 区别,项目中 Thread sleep 的应用场景
    • sleep() 属于 Thread 类
      线程调用此方法后,会休眠一段时间,休眠期间,会暂时释放cpu,但并不释放对象锁
    • wait() 属于 Object 类
      释放占有的对象锁,线程进入等待池,释放cpu,而其他正在等待的线程即可抢占此锁,获得锁的线程即可运行程序
    1. sychronized 锁住方法后方法能被中断吗?

    不能被中断,Lock 可以被中断

    1. java 中 final 修饰方法和修饰类的作用

    2. ArrayList 和 LinkedList 区别

    1. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
    2. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
    3. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
    1. ArrayList 的实现原理,是否允许数据重复

    Java集合---ArrayList的实现原理

    1. Java 动态代理 Proxy 类的使用

    详解java动态代理机制以及使用场景(一)

    1. Java的反射机制,原理,应用场景,getDeclaredField和getField 的 区别

    2. java 单例设计模式,双重检测写法中两个判空的原因

    3. Android 整个界面布局,父子组件的绘制流程以及单个子 View 的绘制流程

    4. Android 事件分发机制原理相关代码,如何处理父子布局的嵌套滚动

    5. 自定义 View 中,onMeasure 中 MeasureSpec 的 Spec 有几种类型, 以及他们的作用,在其值为 EXACTLY 的情况下, 当子 View 超过父 View 大小时, 返回的宽高值是什么,是否会超过父布局

    6. Activity 的启动渲染流程, AMS, ActivityThread 相关概念

    7. Android 解析 XML 有几种方式? LayoutInflate 是如何解析 XML 并创建对象的(面试官是想问这里用的反射的方式创建的对象)

    8. Android 中代理模式的应用场景

    9. Android 中 Binder 的原理机制, 其中 ServiceManager 传递给 Client 的进程是否为真实进程

    10. Android 中 Handler 的原理机制

    11. Android 中 Service 的概念, IntentService 和 Service 区别,在 IntentService 中是否需要手动终止 Service, Service 的使用场景

    12. Android 中跨进程通信的方式, 应用场景, aidl 相关概念

    13. Dalvik 和 JVM 的区别

    1.Dalvik指令集是基于寄存器的架构,执行特有的文件格式——dex字节码(适合内存和处理器速度有限的系统)。而JVM是基于栈的。相对于基于栈的JVM而言,基于寄存器的Dalvik VM实现虽然牺牲了一些平台无关性,但是它在代码的执行效率上要更胜一筹。
    2.每一个Android 的App是独立跑在一个VM中的。因此一个App crash只会影响到自身的VM,不会影响到其他。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。

    1. pathclassloader, dexclassloader 区别

    DexClassLoader和PathClassLoader的区别

    1. Android 插件化的实现原理机制

    2. Android 热修复的主流框架对比及实现原理

    3. 一个界面中需要请求多个接口,所有接口数据获取后再进行界面渲染,请问如何来实现

    4. RxJava 中 merge, zip 的实现原理

    5. 自定义 View 中如何实现圆形图片

    6. 说说你常用的图片框架以及实现原理(glide, fresco)

    7. Android 中 65535 问题中 MultiDex 的实现原理

    8. Android 中内存泄漏的常见场景(我回答了项目中遇到的非静态内部类/匿名内部类,Handler,异步操作引用了 Context,面试官多次询问是否还有其他场景后补充了自定义 View 中 TypeArray 使用后未调用 recycle()方法也会泄漏)

    9. Android 中如何开启新的进程,Manifest 中 process 参数命名加 “:” 什么作用

    10. 如何快速将一个单向链表反序操作

    11. 冒泡排序的实现

    相关文章

      网友评论

      • yanerly:和我一样耶 刚去探探面试完 简历都没看 直接现场出题 第一个问题就是单例和锁 都是基础 但是都答不上来 太偏原理了
      • 05a0a831f115:是不是大公司都爱问rx和retrofit啊😔
        05a0a831f115:@香辣牛肉面 记不住,也看不懂人家为啥要这么设计😭
        香辣牛肉面:@Android蒻鸡 现在大部分公司都会问吧
      • 树叶乘风:我想拜师😬😬😬本人零基础。
      • nodzhang:大佬工作几年了?
        香辣牛肉面:@洋洋_de7e 20k到30k吧
        d16b48817da9:@香辣牛肉面 薪水范围多少啊
        香辣牛肉面:@nodzhang 八年
      • 小县城公务员:你好!我们是程序员大咖旗下专注于程序员生态的公众号程序员大咖(微信号 CodePush)。我们很赞赏你的文章,希望能获得转载授权。授权后,你的文章将会在公众号程序员大咖、程序员共读、源码共读、Java编程精选、iOS开发等渠道发布。我们会注明来源和作者姓名。
        非常感谢~~~
        小县城公务员:@香辣牛肉面 十分感谢~
        香辣牛肉面:@源码共读 好的
      • 布吉岛原住民:电话面试都要问这么多的啊
        香辣牛肉面:@平凡的lily 嗯
        平凡的lily:@香辣牛肉面 还以为现场写,电话面试就是把实现过程说一下么?
        香辣牛肉面:是啊,面试的前说20分钟面试,结果面了一个半小时,然后凉凉了:sob:
      • 布谷鸟也会编程:果然大型公司问的都是较为底层的东西,还要继续加油呀。。。
      • 当个海贼多好:略懂一点
      • 往后Yu生:不好意思 一道都不会:joy:
      • NIOAG37M:面试难度一般吧😄
      • luchefg:给面哥大佬递茶
      • cyixlq:如果能同时把答案一起贴上来就不错了
        香辣牛肉面:最近有点忙,后续会补上答案的
      • kaeronlyyou:大佬,你這個面試的是多牛逼的啊,10個問題我有一般不會
      • 因帅被判刑:给面哥大佬递茶

      本文标题:记一次 Android 面试

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