240 发简信
IP属地:广东
  • 哈希表,字典,数组,链表

    1:哈希表 的数据结构,底层实现原理 底层实现:数组 + 链表 哈希表(Hash table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就...

  • 造成tableView卡顿的原因有哪些?

    1.最常用的就是cell的重用 注册重新标识符 如果是重用cell时,每当cell显示到屏幕上时,就会重新创建一个新的cell;如果有很多数据的时候,就会堆积很多ce...

  • web3.0

    web1.0: 用户单向被动接受信息,网络资讯,新闻,图片等,用户只能被动接收。只读(read-only) web2.0: 用户不再只是担心接收信息,还能进行互动,比如评论,...

  • 120
    kvo 与 kvc <2>

    8.1: kvo 与 kvc 展开 1:KVO KVO(Key-Value-Observing)键值观察,其技术原理就是通过 isa waizzle 技术添加...

  • 多线程 <二>

    25.3:GCD的队列可以分为2大类型 并发队列(Concurrent Dispatch Queue) 可以让多个任务并发(同时)执行(自动开启多个线程同时执行任务) 并发功...

  • 自定义UITableViewCell(registerNib: 与 registerClass: 的区别)

    1.自定义cell时, 若使用nib,使用 registerNib: 注册,dequeue时会调用 cell 的 -(void)awakeFromNib registerNi...

  • 120
    Web3.0生态全解析

    前言 随着web3.0不断被提起,所以整理了这篇文章,希望对我们大家有所帮助。 -------------------正文----------------------- 原文...

  • weak底层。 nil、Nil、NULL、NSNull的区别

    66:weak底层实现的流程 1: Runtime全局维护了一个全局映射表StripedMap,根据对象的地址能够获取对应的散列表SideTable(注意!!!也有可能是多个...

  • 120
  • 哈希冲突的四种解决办法

    Hash算法解决冲突的方法一般有以下几种常用的解决方法 1, 开放定址法: 所谓的开放定址法就是一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能...

  • UIView与CALayer

    UIView和CALayer是什么关系? 创建UIView对象时,UIView内部会自动创建一个层(CALayer对象),通过UIView的layer属性可以访问这个层。当U...

  • 基础算法一

    /* 相关术语解释: 稳定:如果 a 原本在 b 前面,而 a=b,排序之后,a 仍然在 b 的前面 不稳定:不满足稳定定义 内排序(In-place):所有排序操作都在内存...

  • 自旋锁&互斥锁

    OSSpinLock叫做”自旋锁”,等待锁的线程会处于忙等(busy-wait)状态,一直占用着CPU资源,目前已经不再安全,可能会出现优先级反转问题,如果等待锁的线程优先级...

  • Swift 结构体与类

    1:结构体 1.1:所有的结构体都有一个编译器自动生成的初始化器(initializer,初始化方法、构造器、构造方法) 在第⑥行调用的,可以传入所有成员值,用以初始化所...

  • isKindOfClass 与 isMemberOfClass

    isKindOfClass 与 isMemberOfClass // MJPerson类 继承 NSObject类 // 这句代码的方法调用者不管是哪个类(只要是NS...

  • ios开发中 动态库 与静态库的区别

    50:ios 开发中 动态库 与静态库的区别 使用静态库的好处 1,模块化,分工合作 2,避免少量改动经常导致大量的重复编译连接 3,也可以重用,注意不是共享使用 动态库使用...