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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值