iOS面试准备 - 其他篇

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函数实现

你可能感兴趣的:(面试,职场和发展)