资料梳理-02

https://www.jianshu.com/p/61fad83c8a3f

https://www.jianshu.com/p/781595503c61

监测 线上app https://www.cnblogs.com/dsxniubility/p/5493117.html

 

1. http1.0  http1.1  http2.0 区别?

https://blog.csdn.net/ailunlee/article/details/97831912

2. AFNetworking 3.0区别?

https://www.jianshu.com/p/b5c27669e2c1

3.监听卡顿

https://blog.csdn.net/u010262501/article/details/79616963

4. +load +initialize

https://www.jianshu.com/p/fc7f372f074c

5. leeCode答案

https://www.cnblogs.com/grandyang/p/4606334.html

3.ARC

http://luoxianming.cn/2017/05/06/arc/

ARC还对内存调用函数进行了优化,即ARC相关的函数不通过Objective-C的消息派发机制,而是直接调用底层的C函数。而且ARC是在编译器自动添加引用计数函数调用,而不是运行时判断。综上所示,因为这些原因,所以ARC性能要优于手动引用计数。

2.多线程 多读单写?

1.DISPATCH_QUEUE_SERIAL 串行队列,单读单写
2.DISPATCH_QUEUE_CONCURRENT 并发队列
static dispatch_queue_t _concurrentQueue = dispatch_queue_create("com.person.syncQueue", DISPATCH_QUEUE_CONCURRENT);
- (void)setName:(NSString *)name {
    dispatch_barrier_async(_concurrentQueue, ^{
        _name = [name copy];
    });
}
- (NSString *)name {
    __block NSString *tempName;
    dispatch_sync(_concurrentQueue, ^{
        tempName = _name;
    });
    return tempName;
}
在队列中,barrier块必须单独执行,不能与其他block并行。这只对并发队列有意义,并发队列如果发现接下来要执行的block是个barrier block,那么就一直要等到当前所有并发的block都执行完毕,才会单独执行这个barrier block代码块,等到这个barrier block执行完毕,再继续正常处理其他并发block。在上面的代码中,setter方法中使用了barrier block以后,对象的读取操作依然是可以并发执行的,但是写入操作就必须单独执行了。

3.子线程里创建的对象什么时候释放?子线程的autoreleasepool释放时机?

每一个线程创建的时候就会有一个autorelease pool的创建,并且在线程退出的时候,清空整个autorelease pool。

4.判断二叉树是否是搜索二叉树(要求非递归)?

5.weak指针的hash表,是所有对象销毁的时候都会去访问这个表吗?

 

6.tcp如何解决数据传输安全?

1. 停止等待协议

每发送完一个分组,就停止发送,等待对方确认,收到确认后再发送下一个分组。

2. 连续ARQ协议

利用滑动窗口,位于滑动窗口内的所有分组都可以连续的发送出去,而不需要逐个等待对方的确认。

7. 1...n个数,两个线程打印,线程1打印1 3 5...,线程2打印2 4 6...,2在1后面?

 

10.如何hook某个实例的方法?

/// 在交换方法之前要先判断将要替换的方法是否存在

Bool isExist = class_addMethod (classA, originalSelector, method_getImplementation (swizzlingMethod), method_getTypeEncoding (swizzlingMethod));
/// 实现方法交换

 if (isExist) {

   class_replaceMethod (classA, swizzledMethod, method_getImplementation (swizzlingMethod), method_getTypeEncode (swizzlingMethod));

} else {
   method_exchangeImplementations (originMethod, swizzlingMethod);
}

11.tableView优化,启动优化,ipa瘦身?

12.如何检测卡顿,线上包,结合runloop?

13.自动布局,A B C垂直排列,根据数据源不同B可能隐藏,怎么排列?

自动布局 https://www.jianshu.com/p/72162d58b7ca

Masonry install/uninstall https://www.jianshu.com/p/b6bd3e805a82

14.项目中遇到的难点?

启动图优化 https://juejin.cn/post/6897894854760611847

15.iOS工程加固

https://juejin.cn/post/6931178491991818254?utm_source=gold_browser_extension

1.http请求优化

2.app启动优化

3.友盟/诸葛IO 统计设计框架(缓存 数据库线程)

4.算法,1到n中间缺一个数字,尽快找出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值