Android面试遇到的问题(1)

本文主要探讨了Android面试中常见的数据结构和算法、设计模式、Java基础、Android基础类问题,包括顺序表与链表的区别、排序算法、设计模式如单例、工厂模式等、多态概念、内存管理、并发问题、集合框架、消息推送原理、Activity生命周期等核心知识点。此外,还涉及了内存泄露、ANR问题、网络框架选择和Android最新特性的理解。
摘要由CSDN通过智能技术生成

数据结构和算法类

  • 顺序表和链表的区别?

    顺序表随机访问快,插入删除慢;链表插入删除快,随机访问慢。

  • 栈和队列的区别?

    栈:先进后出,队列:先进先出

  • 常用的排序算法有哪些?

    冒泡排序、选择排序、快速排序、堆排序等。

  • 快速排序的实现思想是怎样?快速排序的时间复杂度是多少?

    1. 划分,在待排序的数列中随机选择一个x,然后通过比较最终确定它在数列中的最终位置。这个数将原数列分成三部分:比x小的数、x、比x大的数。
    2. 在“比x小的数”和“比x大的数”中递归使用1的方法进行划分。直到每一个数都确定最终位置。
    3. 因为是不断地折半,所以时间复杂度是O(Log2 N)
  • 冒泡排序的时间复杂度是多少?

    O(n^2)

  • 堆排序的原理是怎样?

    1. 需要先解释堆这种数据结构(完全二叉树),对每个非叶子节点,都有:左孩子比父节点小,右节点比父节点大。
    2. 将堆调整为大根堆或者小根堆的过程。
    3. 时间复杂度是O(N*LogN)
  • 树有哪几种遍历方式?

    前序遍历、中序遍历、后续遍历

  • 对称加密算法有哪几种?

    • 对称加密:加密和解密使用同一个密钥。有DES、3DES、AES等。
    • 非对称加密:加密和解密需要两个Key:公钥和私钥。有RSA、DSA等
  • Hash算法是怎样的?

    Hash算法(摘要算法)

    • Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
    • 常见的Hash算法有MD2、MD4、MD5、HAVAL、SHA
    • 哈希(Hash)算法,即散列函数。它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。
  • 画出HashMap的数据结构实现
    网上找到一篇帖子: HashMap实现原理分析 ,感谢作者!

设计模式类

  • 熟悉哪些设计模式,说明面试官指定的某个模式的具体的实现及原理。

    单例、工厂、观察者、组合、代理、适配器、装饰者、Builder等。说自己理解的,不要给自己挖坑。面试官会继续问实现和使用的。

  • 单例模式的缺点是什么?

    1. 单例模式在Android中生命周期较长,如果单例持有act
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值