当前位置:网站首页>iOS面试准备 - 其他篇
iOS面试准备 - 其他篇
2022-07-29 04:39:00 【smallcatlei】
iOS面试准备 - ios篇
ios面试准备 - objective-c篇
ios面试准备 - 网络篇
IOS面试准备 - C++篇
iOS面试准备 - 其他篇
设计模式
工厂模式
单例模式
建造者模式
使用多个对象一步一步的类型制造。成为一个简单的对象。类型的设计模式属于创建模式,它提供了一种创建对象的最佳方式
一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
适配器模式
作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
链式责任模式
通常每个接收者都包含对另一个接收者的引用。如果一个接收者不能处理该请求,那么它会与下一个发送者相同的传输请求,依此类推。
观察者模式
一对多模式,当一个对象被修改时,则会自动通知依赖它的对象。
MVC和MVVM 模式
MVC 模式-视图-控制器。控制器控制模式和视图。
MVVM view viewMode mode 。链式调用
算法
java 常用函数
引入工具包
import java.util.*;
list转数组
String[] array2 = testList.toArray(new String[testList.size()]);
数组转list
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arrays));
数组拷贝
int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
int[] right = Arrays.copyOfRange(arr, middle, arr.length);
快速排序
Objective-C 实现 快速排序:
https://blog.csdn.net/htwhtw123/article/details/125347823?spm=1001.2014.3001.5501
数据结构
树
二叉查找树(二叉排序树,二叉搜索树)
它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
AVL树(平衡树)
一棵二叉搜索树,并且它每个结点的左右子树的高度之差的绝对值(平衡因子)最多为1
遍历树的顺序
前序遍历 中左右
中序遍历 左中右
后续遍历 左右中
其他
git实现原理
每次我们运行 git add 和 git commit 命令时, Git 所做的实质工作是将被改写的文件保存为数据对象,更新暂存区,记录树对象,最后创建一个指明了顶层树对象和父提交的提交对象。 这三种主要的 Git 对象——数据对象、树对象、提交对象——最初均以单独文件的形式保存在 .git/objects 目录下。
Git的核心是它的对象数据库,其中保存着git的对象,其中最重要的是blob、tree和commit对象,blob对象实现了对文件内容的记录,tree对象实现了对文件名、文件目录结构的记录,commit对象实现了对版本提交时间、版本作者、版本序列、版本说明等附加信息的记录。这三类对象,完美实现了git的基础功能:对版本状态的记录。
Git引用是指向git对象hash键值的类似指针的文件。通过Git引用,我们可以更加方便的定位到某一版本的提交。Git分支、tags等功能都是基于Git引用实现的。
UNIX 常用命令
| 指令 | 含义 |
|---|---|
| cat | 显示文件内容 |
| cd | 更改目录到指定目录 |
| ls | 列出当前路径下的文件列表 |
| cp | 复制源文件到目的地 |
| file | 确定文件类型 |
| find | 查找文件 |
| mkdir | 创建目录 |
| mv | 移动(重命名)文件 |
| pwd | 打印当前目录 |
| rm | 删除文件 |
| rmdir | 删除文件夹 |
| vim | 打开VIM文本编辑器 |
| gzip | 压缩文件 .gz文件 |
| gunzip | 解压缩文件 |
用户态切换内核态
触发时机
系统调用
中断
异常
流程
用户态可以直接读写寄存器,用户态操作CPU,将寄存器的状态保存到对应的内存中,然后调用对应的系统函数,传入对应的用户栈的PC地址和寄存器信息,方便后续内核方法调用完毕后,恢复用户方法执行的现场
将CPU的字段改为内核态,将内核段对应的代码地址写入到PC寄存器中,然后开始执行内核方法,相应的方法栈帧时保存在内核栈中。
当内核方法执行完毕后,会将CPU的字段改为用户态,然后利用之前写入的信息来恢复用户栈的执行
框架
SDWebImage
https://www.jianshu.com/p/e5d583e81ac0
MLeakFinder
YYModel
设置和获取属性的值均经过objc_msgSend函数实现
边栏推荐
- 谷歌浏览器 打开网页出现 out of memory
- [C language] PTA 7-91 output leap year
- Common rules of makefile (make) (II)
- 用 ZEGO Avatar 做一个虚拟人|虚拟主播直播解决方案
- Niuke IOI weekly 27 popularity group
- Deploy Jenkins using containers
- Record the Niua packaging deployment project
- Realize the effect of univariate quadratic equation through JS. Enter the coefficients of a, B and C to calculate the values of X1 and x2
- Command line interactive tools (latest version) inquirer practical tutorial
- New year's greetings from programmers
猜你喜欢

Classes and objects (II)

正确的用户拖拽方式

LeetCode_ Stack topics

Pytoch automatic mixing accuracy (AMP) training

GCC Basics

UE 在场景或UMG中播放视频

On quotation

The most complete NLP Chinese and English stop words list in the whole station (including punctuation marks, which can be copied directly)

Dasctf2022.07 empowerment competition

带你一文理解JS数组
随机推荐
Shell string segmentation
安装spinning up教程里与mujoco对应的gym,报错mjpro150
Use of construction methods
异常处理:pyemd或PyEMD找不到
Ethernet of network
Dasctf2022.07 empowerment competition
What is the use of meta-info?
网络之以太网
New year's greetings from programmers
Visio draw grid
央企建筑企业数字化转型核心特征是什么?
Install the gym corresponding to mujoco in the spinning up tutorial, and the error mjpro150 is reported
VScode 一键编译和调试
Makefile+Make基础知识
TypeError: Cannot read properties of undefined (reading ‘then‘)
Won't you insist on 71 days? List sorting
恒星科通邀您“湘”约第24届中国高速公路信息化大会暨技术产品展示会
Exception resolution: error of not finding edu.stanford.nlp.semgraph.semgrex.semgrexpattern in cococaption package
Mongo Shell交互式命令窗口
Use of torch.optim optimizer in pytorch