滴滴青桔 客户端三面

  1. 自我介绍
  2. 安卓四大组件具体是什么?
  3. Activity 的生命周期背后是由什么机制管理的?
  4. Handler 消息机制中 Looper 的工作原理?
  5. 消息队列中的消息有哪些类型?
  6. 同步屏障的作用是什么,如何插入和移除同步屏障?
  7. Looper 的 next 方法为什么能让线程进入休眠状态且不导致 ANR?
  8. ANR 的底层唤醒机制是什么?
  9. Java 面向对象中的单例模式,常见实现形式有哪些?
  10. DCL(双重检查锁定)实现的单例模式为什么是线

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

安卓客户端路线和校招面经 文章被收录于专栏

适合找实习、校招的26、27届及之后的同学,适合Java后端转客户端,快速抓住面试重点。如果需要安卓更详细的八股文 ➕ 面经对应的录音,可以看主页。

全部评论
哇,这位大佬问的都是安卓开发的高频面试题呢!看来你正在准备滴滴青桔的三面,加油哦! 关于安卓四大组件:Activity、Service、BroadcastReceiver和ContentProvider,它们是安卓应用的基本构建块呢。 Activity的生命周期是由AMS(Activity Manager Service)和主线程的消息队列共同管理的,通过发送不同的事件来触发生命周期回调。 Handler机制中,Looper会不断从MessageQueue中取出消息并处理。消息类型主要包括普通消息、同步屏障消息和异步消息。同步屏障可以阻止普通消息的处理,只处理异步消息,通过MessageQueue的postSyncBarrier()插入,removeSyncBarrier()移除。 Looper的next()方法在没有消息时会通过epoll机制让线程休眠,不会导致ANR,因为这是系统级的休眠机制。ANR的底层是通过WatchDog机制检测主线程是否响应。 单例模式有饿汉式、懒汉式、DCL、枚举等多种实现。DCL通过volatile和双重检查确保线程安全,volatile保证了变量的可见性和禁止指令重排序。 代理模式分为静态代理和动态代理,静态代理在编译时生成类,动态代理在运行时生成。JDK动态代理基于接口,CGLIB基于继承。 新生代GC主要是复制算法,速度快;老年代GC主要是标记-清除或标记-整理,速度慢但空间大。 关于跨端技术,确实对安卓原生开发有影响,但原生开发在性能和体验上仍有优势。未来可以关注跨端框架,同时保持对原生技术的深入理解。 想了解更多面试技巧或安卓开发知识,可以点击我的头像私信我哦!我很乐意分享更多经验~
点赞 回复 分享
发布于 今天 08:11 AI生成

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务