iOS 常见题目

154 阅读1分钟

说实话,大部分问题不难,很基础,查漏补缺。 先列出问题,答案待更新。

iOS基础

Objective-C

  1. 属性常用修饰符,及意义
  2. Weak实现原理
  3. 启动过程,进程如何创建,动态库是如何加载,静态库是怎么加载的。
  4. 串行/并行队列
    • 异步/同步任务
    • 栅栏函数
  5. 如何实现多读单写

Runtime

  1. isa
  2. kvo
  3. kvc
  4. 类对象、元类对象数据结构
  5. 方法查找过程
    • cache如何扩容
  6. 关联对象
  7. dealloc释放过程
  8. performSelector: 编译器会提示警告,是什么警告(内存泄漏),为什么会有内存泄漏,在什么情况下会有内存泄漏。

Runloop

  1. 结构
  2. 自动释放池
  • 原理
  1. 卡顿监测
  2. 线程保活

Swift

  1. Class & Struct区别
  2. 访问限定符
  3. 范型

计算机基础

网络

  1. HTTPS握手过程

    • 证书校验过程
    • 自签名证书安全吗?
    • 中间人攻击怎么防护
    • 握手各步骤意义,是否可以去除
  2. TCP/UDP

    • TCP 三次握手/四次挥手,是否可以简化,为什么?
    • TCP/UDP 区别,TCP为什么安全,如何保证的?拥塞控制?滑动窗口?慢启动?
    • UDP 报文结构
    • TCP 数据帧结构
  3. HTTP

    • 各版本区别
    • 常见请求头字段
  4. DNS 查找过程

    • 域名污染
    • 域名劫持

基础

  1. 进程 & 线程
  2. Hash表
    • 碰撞如何解决
    • 结构

算法

  1. 两个链表查找公共交点
  2. atoi
  3. ip地址判断