AndyCao Blog

Thinking will not overcome fear but action will.

C函数access的用法

函数定义 int access(const char * pathname, int mode) 作用:用以检查是否可以对指定的文件执行某种操作 参数 pathname: 需要检测的文件路径名 mode: 需要测试的操作模式 mode说明: #define F_OK 0 /* test for existence of file */ #d...

iOS中的RunLoop

什么是RunLoop 顾名思义,就是运行循环,在程序运行过程中,循环做一些事情。先简单看下下面两个示例: 示例1 int main(int argc, char * argv[]) { @autoreleasepool { NSLog(@"Hello World!"); } return 0; } 由于没有RunLoop,在执行完NSLog之后,程序...

iOS实时性能检测

iOS实时性能检测一般有两种方案: FPS检测 主线程卡顿检测 FPS检测 通常情况下,屏幕会保持60hz/s的刷新速度,每次刷新时会发出一个屏幕刷新信号,CADisplayLink允许我们注册一个与刷新信号同步的回调处理。可以通过屏幕刷新机制来展示fps值: CADisplayLink在添加target的时候,会对target产生强引用。为了避免循环引用,先创建一个Proxy...

iOS程序的内存布局

app启动之后,在内存中的布局情况,基本如下: 代码段 编译之后代码存放的地方,比如方法的实现就存放在这里 数据段 字符串常量 已初始化的数据:已初始化的全局变量、静态变量等 未初始化的数据:未初始化的全局变量、静态变量等 栈 由编译器自动分配释放,存放函数的参数值,局部变量等值。 栈是向低地址扩展的数据结构 是一块连续的内存的区域 堆 通过...

DNS解析

什么是DNS解析 DNS解析,就是域名到IP地址的映射。 DNS解析请求,采用的是UDP数据报,并且是明文 DNS解析过程 DNS解析查询方式 递归查询 迭代查询 DNS解析存在哪些常见问题 DNS劫持问题 DNS劫持与HTTP的关系:没有关系 DNS解析发生在HTTP建立连接之前 DNS解析请求,使用的是UDP数据报,...

swift5-下标

下标 使用subscript,可以给任意类型(枚举、结构体、类)增加下标功能 subscript的语法类似于实例方法、计算属性,本质就是方法 class Point { var x = 0.0 var y = 0.0 subscript(index: Int) -> Double { set { if ind...

session和cookie

session和cookie是对HTTP协议,无状态特点的补偿 cookie cookie主要用来记录用户状态,区分用户 状态保存在客户端 客户端发送的cookie在http请求报文的cookie头部字段中 服务端设置http响应报文的set-cookie头部字段中 怎样修改cookie 新cookie覆盖旧cookie 覆盖规则:name、path、domain...

TCP传输的特点

TCP传输的特点 面向连接 可靠传输 面向字节流 流量控制 拥塞控制 面向连接 数据传输开始之前,需要建立连接:三次握手 为什么三次握手? 主要解决的是超时的场景,防止建立多次连接。 client发送的SYN若是超时,client基于超时重传机制,会重新发送SYN;server收到SYN,回复SYN/ACK,若是两次...

链表的中间节点

一天一道算法题

题目 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例1 输入:[1,2,3,4,5] 输出:此列表中的结点 3 示例2 输入:[1,2,3,4,5,6] 输出:此列表中的结点 4 定义节点 class ListNode { public var val: Int public var next: Li...

swift5-方法(Method)

方法(Method) 枚举、结构体、类都可以定义实例方法、类型方法 实例方法(instance method):通过实例对象调用 类型方法(type method):通过类型调用,用 static 或 class 关键字定义 self 在实例方法中,self代表实例对象 在类型方法中,self代表...