Android面试题目整理

本文介绍了HTTP和HTTPS的区别,强调HTTPS的加密过程,包括对称和非对称加密、数字证书的作用。同时讨论了数组和链表在存储和操作上的特点,以及TCP拥塞控制和流量管理。还涉及了TCP和UDP、Java中的final、重写和重载,以及Android开发中的内存泄漏和多线程/多进程概念,最后提到Glide库和经典的100阶楼梯问题.
摘要由CSDN通过智能技术生成

一、http和https、SSL

HTTP(Hypertext Transfer Protocol)是一种基于客户端-服务端架构的应用层协议,主要用于 Web 应用之间的数据交互。它是一种无状态协议,指每个请求都是相互独立的,服务器不会记录任何会话信息。

 HTTPS是一种通过计算机网络进行安全通信的传输协议 · 经由HTTP进行通信 · 利用SSL/TLS建立全信道 · 加密数据包 · HTTPS使用的主要目的是提供对网站服务器的身份认证 · 同时保护交换数据的隐私与完整性。

https特点:

  • 内容加密:采用混合加密技术 · 中间者无法直接查看明文内容
  • 验证身份:通过证书认证客户端访问的是自己的服务器
  • 保护数据完整性:防止传输的內容被中间人冒充或者篡改

HTTPS加密过程

对称加密:

在握手阶段,客户端和服务器使用对称加密算法生成会话密钥,例如AES或DES。
会话密钥是一种只有客户端和服务器知道的密钥,用于加密和解密通信中的数据。


非对称加密:

在握手阶段,服务器将自己的公钥包含在数字证书中发送给客户端。
客户端使用服务器的公钥加密生成的会话密钥,并发送给服务器。
服务器使用自己的私钥解密客户端发送的会话密钥。


数字证书:

服务器的数字证书包含了服务器的公钥以及相关的身份信息,由受信任的证书颁发机构(CA)签发。
客户端在接收到服务器的数字证书后,会使用预置的根证书来验证服务器的数字证书的合法性和真实性。
如果验证成功,客户端就可以信任服务器的公钥,并使用它来加密通信中的数据。
通过以上步骤,HTTPS实现了通信过程中的数据加密和安全验证。对称加密算法用于加密和解密实际的通信数据,非对称加密算法用于安全地交换对称加密所需的会话密钥,数字证书用于验证服务器的身份。这种混合加密机制保障了HTTPS通信的安全性和隐私保护。

二、数组和链表

存储方式:

  • 数组是连续的内存块中存储元素,需要一整块连续的空间。通常创建在栈区。
  • 链表以节点的形式动态地存储在内存中,节点可以在内存中分散存储,并通过指针连接在一起。链表通常创建在堆区。

大小:

  • 数组的大小在创建时确定,并且之后不易改变。
  • 链表的大小可以动态地增长或缩小。

访问元素:

  • 数组可以通过下标随机访问任何位置的元素,时间复杂度为O(1)。
  • 链表访问节点通常需要从链表的头部开始顺序遍历,时间复杂度为O(n)。

插入和删除操作:

  • 数组在插入或删除元素时,可能需要移动其他元素以空出位置或填补空缺,时间复杂度为O(n)。
  • 链表可以快速地进行插入和删除操作,只需改变节点指针的指向,无需移动其他节点,时间复杂度为O(1)。

空间复杂度:

  • 数组的空间占用是固定的,即使数组中只存储了几个元素,也会保留整个数组的空间。
  • 链表的空间使用与其存储的元素数量成正比,可以根据需要动态增长或缩小。

综上所述,数组适用于需要快速访问任意位置的元素,而链表适用于频繁的插入和删除操作,并且对内存空间的动态分配要求较高。根据具体的需求和操作类型,选择合适的数据结构可以提高程序的效率和性能。

三、TCP拥塞控制和流量管理

四、TCP和UDP

五、final

六、重写和重载

七、glide

八、100阶楼梯,每次走1层或2层,有多少种走法

九、哈希表

十、安卓内存泄漏

十一、多线程和多进程

十二、activity启动流程

  • 32
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值