Android 面试常见知识点总结(持续更)

HashMap是一种常用的哈希表实现,它将键(key)映射到值(value)上。
HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。它的实现结合了数组和链表的特点,以实现高效的存储和查找操作。

工厂模式: 当需要一系列相关或相互依赖的对象时,定义工厂类,根据传入参数返回对应的实例。
单例模式: 确保一个类只有一个实例,提供一个全局访问点使用。如应用的全局状态或配置。
观察者模式:当一个对象的状态改变需要通知其他对象,使用观察者模式。如android中的点击事件
建造者模式:当一个类有很多构造参数或构造过程复杂时,会使用建造者模式。
适配器模式:需要将一个类的接口转换为客户端期望的另一个接口时。

内存泄露通常发生在对象不需要使用,其占用的内存未能被垃圾回收器回收。

常见场景: 静态变量持有Activity或Context的引用,当Activity被销毁,有个单例持有他的引用,无法被垃圾回收,导致内存泄漏注册监听器或回调未注销
使用匿名内部类或非非静态内部类,
使用handler忘记在onDestory中移除Runnable
Bitmap未正确回收

为避免这些内存泄漏问题,需仔细管理内存,确保不在需要对象时及时释放他们。
如 onDestory 中注销监听器,移除回调。回收bitmap。
使用静态内部类或者弱引用来避免不必要的引用。

AMS进行初始化的时机很明确,就是在SystemServer进程开启的时候,就会初始化ActivityManagerService, 可以在SystemServer类中找到相关的启动代码。 应用启动时,Launcher进程请求AMS,AMS发送创建应用进程请求,Zygote进程接受请求并fork应用进程。而AMS发送创建应用进程请求调用的是 ZygoteState.connect() 方法,ZygoteState 是 ZygoteProcess 的内部类。

相关推荐

  1. Android 面试常见知识总结持续

    2024-05-12 18:32:03       31 阅读
  2. 常见知识总结

    2024-05-12 18:32:03       32 阅读
  3. C++常见知识总结

    2024-05-12 18:32:03       30 阅读
  4. Android security知识总结

    2024-05-12 18:32:03       26 阅读
  5. Beego面试知识总结

    2024-05-12 18:32:03       31 阅读
  6. WebSocket面试常见知识面试

    2024-05-12 18:32:03       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-12 18:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-12 18:32:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-12 18:32:03       82 阅读
  4. Python语言-面向对象

    2024-05-12 18:32:03       91 阅读

热门阅读

  1. 知网相关文章采集

    2024-05-12 18:32:03       32 阅读
  2. [力扣题解]53. 最大子数组和

    2024-05-12 18:32:03       32 阅读
  3. 哈希表第5/9题--两数之和

    2024-05-12 18:32:03       30 阅读
  4. let和const命令

    2024-05-12 18:32:03       29 阅读
  5. 网络工程师----第二十三天

    2024-05-12 18:32:03       30 阅读
  6. 图搜索算法详解

    2024-05-12 18:32:03       25 阅读
  7. MySQL视图简介

    2024-05-12 18:32:03       28 阅读
  8. pat乙1032-挖掘技术哪家强

    2024-05-12 18:32:03       26 阅读
  9. ctfshow web入门 php反序列化 web275--web278(无web276)

    2024-05-12 18:32:03       32 阅读