当前位置:网站首页>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函数实现
边栏推荐
猜你喜欢
随机推荐
央企建筑企业数字化转型核心特征是什么?
Record the Niua packaging deployment project
visio画网格
mujoco和mujoco_py安装以及解决libXcursor.so.1:NO such dictionary
[c language] PTA 7-51 sum the first n terms of odd part sequence
Opencv environment construction
Tower of Hanoi classic recursion problem (C language implementation)
6.pytest生成allure报告
Log configuration logback
Christmas tree web page and Christmas tree application
Several simple and difficult OJ problems with sequential force deduction
谷歌浏览器 打开网页出现 out of memory
Mpc5744p introduction and opensda firmware update
正确的用户拖拽方式
Pyqt5 learning pit encounter and pit drainage (3) background picture coverage button style and check button status
Classes and objects (I)
Down sampling and up sampling
leetcode 686.重复叠加字符串 KMP方法(C语言实现)
GCC Basics
MySQL - deep parsing of MySQL index data structure









