• iOS面试准备 - 其他篇


    iOS面试准备 - ios篇
    ios面试准备 - objective-c篇
    ios面试准备 - 网络篇
    IOS面试准备 - C++篇
    iOS面试准备 - 其他篇

    设计模式

    工厂模式
    单例模式
    建造者模式
    使用多个对象一步一步的类型制造。成为一个简单的对象。类型的设计模式属于创建模式,它提供了一种创建对象的最佳方式
    一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
    适配器模式
    作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
    链式责任模式
    通常每个接收者都包含对另一个接收者的引用。如果一个接收者不能处理该请求,那么它会与下一个发送者相同的传输请求,依此类推。
    观察者模式
    一对多模式,当一个对象被修改时,则会自动通知依赖它的对象。
    MVC和MVVM 模式
    MVC 模式-视图-控制器。控制器控制模式和视图。
    MVVM view viewMode mode 。链式调用

    算法

    java 常用函数

    引入工具包

    import java.util.*;
    
    • 1

    list转数组

     String[] array2 = testList.toArray(new String[testList.size()]);
    
    • 1

    数组转list

    ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arrays));
    
    • 1

    数组拷贝

    int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
    int[] right = Arrays.copyOfRange(arr, middle, arr.length);
    
    • 1
    • 2

    快速排序

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

  • 相关阅读:
    密码学概论
    Hadoop完全分布式运行模式
    2023计算机毕业设计SSM最新选题之java二手母婴玩具交易平台mzjmh
    spring 只读事务 设置异常回滚事务
    语音领域,对于入门学生和初入职场者需要具备什么能力?
    96. 不同的二叉搜索树
    【动画进阶】极具创意的鼠标交互动画
    大学生静态HTML网页源码——佛山旅游景点介绍网页代码 家乡旅游网页制作模板 web前端期末大作业
    rxjava2源码分析
    【博学谷学习记录】超强总结,用心分享|架构师-Spring核心组件介绍
  • 原文地址:https://blog.csdn.net/htwhtw123/article/details/125483969