- 博客(29)
- 收藏
- 关注
原创 Objective-C学习笔记(NSString,NSMutableString,NSArray)4.11
③字符串指定下标的字符:characterAtIndex:参数:,返回unichar,打印用C%遍历:for(NSString *str in arry)④两个字符串是否相同:isEqualToString:参数。⑤C转OC:stringWithString:参数。⑥OC转C:str.UTF8String。②长度:str.length。1.框架:系统/第三方写好的类,这些类的集合就是框架。:①拼接:stringWithFormat:参数。6.NSNumber:存储非OC的基本数据类型。
2024-04-11 20:21:44
259
原创 Objective-C学习笔记(NSDictionary,NSFileManager,Copy)4.11
无论在MRC还是ARC,NSString类型的属性,@property参数使用copy,作用是拷贝对象。浅拷贝:NSString调用copy方法,没有产生新对象,只是返回对象的地址。深拷贝:NSMutableString调用copy方法,产生新的对象。遍历字典:for(id item in *dict){:以键值对key-value存储元素。操作磁盘得文件,创建删除复制拷贝移动。包装以上的不能存储到集合的结构体变量。ios界面的x和y坐标。:存储空间的位置和大小。
2024-04-11 20:20:44
352
原创 Objective-C学习笔记(block,协议)4.10
当方法内部需要执行1个功能,但是功能具体实现不确定,使用block让调用者将这个功能的具体实现传递进来。:①代码段如果没返回值可以省略void,声明block不能省略,其实代码段可以不写返回值。7.block内部可以修改全局变量,不能定义在外部的局部变量,局部变量名前加__可以让block内部修改这个局部变量。:声明一大段方法(不能声明属性,不能实现方法),只要某个类遵守这个协议,那就拥有这个协议里所有声明。代码段格式:^返回值类型(参数列表){:是一个数据类型,存储一段代码,代码可以有参数有返回值。
2024-04-10 17:15:39
1682
原创 Objective-C学习笔记(ARC,分类,延展)4.10
存入到自动释放池的对象,在自动释放池销毁时,会自动调用池内所有对象的release方法。自动计算对象的引用值,不要写release、retain、autorelease,retainCount关键字。strong代表@property声明的私有属性是强类型。A中有B,B中有A,如果两个都是strong就会内存泄漏。只能增加方法,不能增加属性,不能访问本类的私有属性,但能调用setter和getter。:默认为强指针,_strong来声明强指针。2.在类方法里写一个同名的方法,用于创造对象。
2024-04-10 15:03:53
1156
原创 Objective-C学习笔记(内存管理、property参数)4.9
为对象发送一条retain/release消息,对象的引用计数器加/减1,为对象发一条retainCount,得到对象的引用计数器值,当计数器为0时自动调用对象的dealloc方法。生成getter和setter方法名称相关的:可以修改setter和getter方法名称。7.MRC模式下,对象时OC对象,setter和dealoc应该写内存管理机制。自动生成私有属性,属性的getter和setter方法的声明和实现。:1个已经被释放的对象,但是这个对象所占的空间还没被分配。:只有getter。
2024-04-09 21:37:56
1173
原创 Objective-C学习笔记(@property,id,instancetype)4.9
alloc是类方法,创建这个类的一个对象。init是对象方法,初始化对象,为对象的属性赋默认值。instancetype有类型,代表当前类的对象。原理:①自动声明私有属性②自动生成getter和setter方法的声明和实现。init:如果是基本数据类型就是0,如果是C指针就是NULL,OC指针就是nil,NSObject会做编译检查,id只能调用对象的方法,不能使用点语法。指针指向的不是本类对象,可能是子类。万能指针,声明不需要加*,可以指向任意的OC对象,判断当前对象是否为指定类的实例,不包括子类。
2024-04-09 17:17:20
684
原创 Objective-C学习笔记(NString,匿名对象,self,继承,super,description)4.8
可以用在类方法和对象方法中,在类/对象方法中可以使用super调用子类从父类继承过来的类/对象方法,类似于self的功能,特指这个方法是从父类继承过来的。@protected:只能在本类和子类的方法使用。方法只写实现不写声明,那么这个方法就是私有方法。@private:只能在本类的方法使用。一个类只能有一个父类。比较字符串大小,小于-1,等于0,大于1。类方法,将C语言字符串转为OC字符串。是一个指针,指向当前对象或当前类。打印对象所属的类与内存地址。是一个类,存储OC字符串。类方法,拼接字符串。
2024-04-08 19:07:08
369
原创 Objective-C学习笔记(基本语法)4.6
语法:NSLog(@"hellowrold");类型的指针变量,NSString *str = @"hello world",用来存储OC字符串地址,占位符%s变为%@:编译:cc-c xx.m 链接:cc xx.o -framework 框架名称(Foundation)。[对象名 方法名:实参1:实参2];-(返回值)方法名称:(参数类型)形参名称:(参数类型)形参名称{}-(返回值)方法名称:(参数类型)形参名称:(参数类型)形参名称。-(返回值)方法名称 -void fun;
2024-04-07 22:02:34
573
原创 MySQL缓存策略
3、先读redis缓存,缓存存在直接返回,缓存不存在,去访问mysql获取,再写redis。1、缓存用户定义的热点数据,用户直接从缓存获取热点数据,降低数据库的读写压力。解决:间隔设置过期时间。重启时,预先导入热数据到缓存(预热)。2、mysql缓存是缓存频繁读写的数据,而不是根据业务需要。但数据在mysql里存在,造成mysql崩溃。问题:数据在redis缓存和mysql都无,问题:redis缓存无数据,mysql有,解决:过热数据不过期,分布式锁。,造成mysql崩溃。造成mysql崩溃。
2024-02-01 15:08:11
184
原创 内存池thread_pool
①线程(生产者):发布任务 ②任务队列:任务上下文,任务执行函数 ③ 线程池(消费者):取出任务,执行任务,线程调度的方式。
2024-01-28 12:17:53
113
原创 TCP三次握手四次挥手[1.26]
1.客户端向服务端发送请求连接的SYN1包;2.服务端收到后回复确认的ACK1包=SYN1+1,再发送一个SYN2包;3.客户端收到两个包后,向服务端发送ACK2=SYN2+1确认包。
2024-01-26 19:01:10
153
原创 epoll[1.26]
epoll 是 Linux 上一种高性能的多路复用机制,用于监视大量文件描述符并在它们就绪时通知应用程序。它是在 select 和 poll 的基础上进一步优化和改进而来的。3.epoll_wait函数。2.epoll_ctl函数。reactor 面向实践。
2024-01-26 16:43:25
121
原创 linux_socket(TCP)连接/阻塞/io多路复用(select)
非阻塞:为了完成一个功能,发起一个调用,阻塞:为了完成一个功能,发起一个调用,
2024-01-24 18:08:19
377
原创 [设计模式]单例、工厂、责任链、装饰器、组合[1.16]
方法1:用atexit(delete),程序结束是delete掉,只解决内存泄漏,没有考虑多线程。方法2:加锁,没有考虑多核cpu下的指令重排,构造函数先分配内存,调用构造函数,最后返回指针。方法3:无锁编程,使用同步原语:原子变量,内存栅栏fence。
2024-01-17 14:39:45
410
原创 [刷题]Linux[1.15]
alias [别名]=[指令名称]打印系统总共运行时间和平均负载。显示目前登入系统的用户信息。用户名,登陆时间,进程数。动态持续监听进程运行状态。
2024-01-15 10:06:59
338
原创 [刷题]算法[1.15]
红黑树r-b tree查找。平衡二叉查找树AVL查找。DFS/BFS邻接矩阵图。DFS/BFS邻接表图。树的深度,即[log。
2024-01-15 10:06:20
349
原创 [刷题]数据结构[1.15]
2.对连通图调用一次深度优先遍历可以访问到图中所有顶点,非连通图不行。1.有向完全图边数:n(n-1),无向完全图边数:n(n-1)/2。
2024-01-15 10:05:20
387
原创 [刷题]编程语言[1.15]
类为空时,编译器分配的函数都是public,分配构造函数,析构函数,拷贝构造函数,赋值重载函数(d2 = d1),类指针的声明不会调用构造函数。this只对本类的非静态成员有效,对静态的成员变量没有作用,因为静态属于类,而不属于具体对象,所以使用this会导致不确定对象而出错。定义派生类的对象时先调用父亲的构造函数,再调用成员的构造函数,最后派生类的构造函数:先父亲,再客人,最后自己。虚函数可以是(普通成员函数,析构函数),不可以是(构造函数,静态成员函数,友元函数,内联函数)
2024-01-15 10:03:49
894
原创 [算法]N皇后、迪杰斯特拉[1.13]
1.输入棋盘的边数N,初始化vector attack、vector queen,vectorslove;2.从第0行第0列开始假设皇后,将此位置的queen设置'Q',通过put函数将queen攻击的位置设置为‘.'。put函数通过输入一个坐标,向8个方向每个方向延申N个位置,如果该位置不超过边界,将此位置设置为'.'。3.回溯,将目前的attack和queen备份,进行第1行的假设,如果假设失败,就切换为第0行第1列。
2024-01-13 21:07:52
447
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人