闭卷重建对象、引用与别名图的对象、状态、事件、不变量与一个失败反例。
程序设计 II:抽象、内存与并发 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建栈帧、堆与生命周期的对象、状态、事件、不变量与一个失败反例。
闭卷重建所有权、借用与移动直觉的对象、状态、事件、不变量与一个失败反例。
闭卷重建浅拷贝、深拷贝与共享的对象、状态、事件、不变量与一个失败反例。
闭卷重建循环引用、资源释放与借用冲突的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:引用计数模拟的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:所有权移动检查的对象、状态、事件、不变量与一个失败反例。
核心机制:栈帧、堆与生命周期必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕栈帧、堆与生命周期先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:栈帧、堆与生命周期不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:对象、引用与别名图必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕对象、引用与别名图先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:对象、引用与别名图不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:浅拷贝、深拷贝与共享必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕浅拷贝、深拷贝与共享先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:浅拷贝、深拷贝与共享不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:所有权、借用与移动直觉必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕所有权、借用与移动直觉先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:所有权、借用与移动直觉不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:引用计数模拟必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:引用计数模拟先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:引用计数模拟不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:循环引用、资源释放与借用冲突必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕循环引用、资源释放与借用冲突先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:循环引用、资源释放与借用冲突不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:所有权移动检查必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:所有权移动检查先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:所有权移动检查不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。