美文网首页
2019-06-03 面试题

2019-06-03 面试题

作者: ben大福 | 来源:发表于2019-06-03 13:29 被阅读0次

    遇到的面试题

    1,实现一个CAS(乐观锁)的方法

    参考 :https://www.jianshu.com/p/db5c964a61ee
    https://blog.csdn.net/qq_35571554/article/details/82892806
    全称compare and swap,通过cpu指令实现锁同步,java中concurrent基本都使用了CAS机制,操作类是sun.misc.Unsafe类。比较交换。对象可以用AtomicReference类都在atomic包下。还有一种实现锁机制方法 ReentrantLock。

    参考:https://blog.csdn.net/u011202334/article/details/73188404
    AbstractQueuedSynchronizer是很重要的一个类

    2,Dex的组成,为什么每个dex会有65536的限制

    参考 :https://juejin.im/entry/5a330ecff265da430e4f3108
    invoke-kind (调用各类方法)指令中,方法引用索引数是 16 位的,也就是最多调用 2^16 = 65536 个方法,这就是 DexFormat 中 MAX_MEMBER_IDX 为 0xFFFF 的原因。

    3,手写消费者生产者模型

    主要在于生产者插入的时候有锁控制线程和消费者获取的时候锁控制线程
    https://www.jianshu.com/p/a42b89287359

    4,SPI到字节码注入,优缺点

    spi:https://www.jianshu.com/p/b8eac304e183
    字节码注入:ASM,JavaAgent https://www.jianshu.com/p/f108f7cde54a
    spi缺点 1,不需要的类也会实例化 2,获取某个实现类的方式不够灵活,只能通过Iterator的形式获取,不能根据某个参数来获取对应的实现类。

    5,插件化的原理,Activity的启动流程,hook点

    6,为什么线程池的数量是cpu核数+1

    7,app的包体积优化,lint、proguard、andresguard原理,字节码注入,删除R.java的变量,删除access001方法,压缩图片资源和使用redex等

    8,图片压缩原理,以及在transform阶段进行的必要性,讨论的还挺激烈

    相关文章

      网友评论

          本文标题:2019-06-03 面试题

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