
面试
文章平均质量分 55
dengjiangszhan
终点开始
于此,梵高成了我最钟爱的英雄
牛逼,某一天
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
印象:设计模式
1, 工厂方法,抽象工厂,简单工厂的区别和联系?工厂与工厂方法,较简单工厂方法中,给一些描述信息,返回具体的对象原创 2022-06-08 01:05:15 · 192 阅读 · 1 评论 -
Swift 解法: leetcode 的第 1297. 子串的最大出现次数
问题:给你一个字符串 s ,请你返回满足以下条件且出现次数最大的 任意 子串的出现次数:子串中不同字母的数目必须小于等于 maxLetters 。子串的长度必须大于等于 minSize 且小于等于 maxSize 。示例 :输入:s = “aababcaab”, maxLetters = 2, minSize = 3, maxSize = 4输出:2解释:子串 “aab” 在原字符串中出现了 2 次。它满足所有的要求:2 个不同的字母原创 2021-08-23 11:15:08 · 162 阅读 · 0 评论 -
A:: iOS 底层 hook 学习 6_1
A:: iOS 底层 hook 学习原创 2021-05-28 01:50:53 · 87 阅读 · 0 评论 -
Aspects swift 源代码分析
steipete/Aspects的设计,挺高深莫测的一般我们 hook, hook 一个类的所有实例的方法这里 hook 的粒度,到了对象级别而且不需要建立,大量的 IMP利用到了固有的方法转发的流程本文主要参考 woshiccm/Aspect分析下 Aspects 的 swift 源代码实现Aspects 的大概设计1, 方法换一个时机执行1.1, 方法转发的流程方法执行的时候,将 hook 的 selector 的实现 IMP 替换为 _objc_msgForwar.原创 2021-05-21 09:29:16 · 352 阅读 · 2 评论 -
一种感觉
看源代码,完整的,十分没有感觉。看不懂破碎化,就好了很多把看懂的,都删掉看不懂的,就聚焦了,看不懂的,感觉有点意思了性能, 启动性能,啥啥啥的开线程,另一个线程异步,怎么会影响当前线程另一个线程异步,他搞个递归,把 CPU 打满了当前线程,想干事情,也没资源啊...原创 2021-05-13 17:45:54 · 101 阅读 · 3 评论 -
ART && Android GC
Java垃圾回收机制原创 2021-04-20 11:16:22 · 97 阅读 · 0 评论 -
UILabel 的行数控制技巧
UILabel 的行数控制,例如显示 2 行第一种,大家都会:label.numberOfLines = 0第 2 种, 可以通过字体大小 和 label 的 size ,来控制label.font = UIFont.semibold(ofSize: 16)label.frame.size = // ...配合label.numberOfLines = 0按照第二种方法设计后,前面两种效果,很自然,为什么, 第三个 Label 的效果,是垂直居中?不是靠上去一些。这样设原创 2021-04-13 00:10:37 · 554 阅读 · 0 评论 -
函数式编程与文本解析,review octree/pretty
功能介绍:octree/pretty. 根据 Podfile.lock 生成依赖图函数式编程, 构建数据管道下面的代码,把 Podfile.lock 里面的字符串,转化为字典 [库: [依赖库]],对新手,具有很强的劝退力量let (dependency, _) = PodLockFileParser.parse(Substring(string))其中 PodLockFileParserlet PodLockFileParser = pods *> dependencyItems原创 2021-02-13 22:15:39 · 135 阅读 · 0 评论 -
0.0.1, dealloc block, 讲好一个故事,iOS 面试题
1, 开篇本文试图回答,如下问题:1, 对象 dealloc 的时候,用一个 block 代替 dealloc 方法不是类级别控制,是对象级别控制2,关联对象3,锁本文是面试照着念主题,第 2 篇本文有参考 C…/CYLDeallocBlockExecutor1, 怎样用好 block,让 dealloc 再见因为对象释放的时候,对象的关联对象也会释放。把对象释放的时候,要执行的 block ,放在其关联对象的 dealloc 方法中。附加:typedef void (^Vo原创 2021-02-10 04:14:47 · 360 阅读 · 0 评论 -
0.0.0, 内存相关: iOS 面试题记忆辅助
1, 开篇本文试图回答,如下问题:1, 堆和栈2,__weak 修饰符__block 修饰符特色太多博客对这些,都有挺详细的阐述了。他们并不合适,面试的时候照着念面试官问:堆和栈答: 1、栈,系统分配,堆,人为申请开辟;2、栈,空间较小,堆空间较大;3、栈快,堆慢;4、栈,连续,堆,不连续不能够很好的鼓舞对方面试官问: __weak 修饰符答:三两句介绍下全局 weak 表。三两句介绍下是什么机制下。三两句介绍下使用场景为了把其他博客的内容说出来,候选人把方法名简单报一遍,ob原创 2021-01-30 19:55:17 · 117 阅读 · 0 评论 -
5.1 , IP 层的 datagram header,继续
5.1 , IP 层的 datagram header,继续原创 2021-01-15 17:13:20 · 203 阅读 · 1 评论 -
2, 网络的组成
#### hub 和 switch , 可以形成局域网 lan原创 2021-01-14 09:40:55 · 201 阅读 · 0 评论 -
计算机网络
计算机网络计算机网络原创 2021-01-13 10:06:09 · 121 阅读 · 1 评论 -
计算机图形渲染管线
计算机图形渲染管线Computer Graphics Pipeline固定渲染管线的每个阶段拍照的过程: 寻找拍摄对象 ( 模型变换 ) 摆放相机 ( 相机变换 ) 调节相机参数 ( 投影变换 ) 拍照 ( 视口变换, 光栅化 )图形管线:将 3D 空间中的事物,转换为 2D 平面图像的过程上下两大块上面两个 MC: 模型坐标系, model coordinates 3 维模型 WC: 世界坐标系 ..原创 2021-01-07 17:43:15 · 169 阅读 · 0 评论 -
从 wav 播放器,学习 AudioToolBox 的 services
AudioToolBox 的工具分两类,有处理音频数据的,播放即输出,录音即输入等,主要用到的是 AVAudioEngine,稍微底层一些,就是音频队列 Audio Queues使用 Audio Queues 播放,即拿音频数据,注入 buffer, 将 buffer 提交给 Audio Queuesbuffer 很好理解,不用缓冲 buffer,逐个提交音频数据給声卡,也是可以的坏处是,声卡消费数据慢,内存准备数据快,这是由计算机硬件决定的使用 buffer, 采样数据注满到一个容量 ca原创 2020-11-25 23:23:20 · 270 阅读 · 0 评论 -
RunLoop 的运行逻辑:子线程,相当于一个命令行
RunLoop 的运行逻辑:UI 界面的刷新、定时器的处理、点击事件的处理、自动释放池什么时候释放,最终都是由 RunLoop 决定什么时候来做的这个事情。点击事件的处理:先走CoreFoundation 的__CFRunLoopDoSource0,再走CoreFoundation 的__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__,过了,就进入UIKitCore 框架RunLoop...原创 2020-08-10 01:20:55 · 336 阅读 · 0 评论 -
iOS 涨薪: Run Loop 面试题
Run Loop运行循环app 程序只有不停地运行, 才能不断响应用户的操作Run Loop 两大功能:睡眠中,等待消息处理消息从睡眠中 -> 处理消息, 需要一个唤醒的过程1、 讲讲 RunLoop, 项目中有用到吗?RunLoop 的基本作用:保持程序的持续运行节省 CPU 的资源,提高程序的性能 ( 没有事情,就请休眠,不要功耗。有事情,就处理)2、 RunLoop 内部实现逻辑?RunLoop 里面有很多种模式,他在运行的过程中,只会选择一种来运行原创 2020-07-18 17:21:11 · 191 阅读 · 0 评论 -
iOS 面试题: runtime
objc_msgSend(object, selector)做的事情,是通过 selector,去找方法实现 IMP , 指向函数的指针, 函数地址从 selector, 到 class_rw_t 里面的 method_t ( Method )method_t 里面:Method 的实现struct method_t { SEL name;// 函数名 const char *types; // 编码,( 返回值类型,参数类型 ) MethodListIMP imp;//原创 2020-07-12 23:41:26 · 292 阅读 · 0 评论 -
进程与线程、堆和栈,基础面试题,20190908
操作系统: 进程与线程进程 = 资源管理 + 线程进程是资源分配单位线程是 CPU 调度单位到底什么是进程?怎么理解进程?一般,可以把运行的程序,看成进程。程序在整个执行过程中的描述,是进程。程序在运行过程中,会消耗各种资源,会占用 CPU、内存和网络,会使用文件系统 I/O进程就是运行的程序的执行过程为什么要有进程?最初的操作系统,只能支持跑一个程序。随着计算机的发展,CP...原创 2019-09-08 17:58:54 · 188 阅读 · 0 评论 -
看下 RxSwift 的双向绑定, 及 RxCocoa 的相关源代码
一般 RxSwift 用于 MVVM, MVVM 常用功能就是双向绑定,Model 和 UI 的相互数据关联。看下官方的 <->在 RxSwift 的案例代码中,有一个 Operators.swift 文件,提供了一个 <-> 双向绑定操作符函数。func <-> <T>(property: ControlProperty<T>, ...原创 2019-07-28 13:33:53 · 1226 阅读 · 0 评论 -
聊聊架构、内存拷贝、Swift 新特性: iOS 面试场景复习题 ,20190720
以下进入捏的场景,小明去面试第一题: 怎样展现小明仅有的架构能力问:你怎么做 iOS 组件化的?小明想,代码写起来爽,不就行了程序员要提供一点数据结构答:CTMediate(同一份代码,各人理解,存在差异。以下是个人观点,该官方博客,没看的,建议看下。那篇的许多观点,下文不作引用)为什么要组件化?随着项目代码的庞大,机器性能不够,人力来凑。如果机器性能很好,项目一秒钟 ...原创 2019-07-20 19:02:59 · 198 阅读 · 0 评论