集合论+图论+常用证明思路
北航软院 离散数学2 知识总结
大二上 面向对象课程 复习(二)
(一):大二上 面向对象课程 复习
先占位,复习中
Lesson 8 完善类的设计
感觉是又总结了一遍前面的知识,主要想说如何设计代码
1. 多态
多态简而言之就是“同一个接口,使用不同的实例而执行不同操作”。 多态存在的三个必要条件:
- 继承 (Inheritance):必须有父子类关系。
- 覆盖 (Override):子类必须重写父类的方法。
- 向上转型 (Upcasting):父类引用指向子类对象(
Father f = new Son();)。
核心考点(出现n遍了):
成员变量(字段):编译运行都看左边。
- 如果你写
Father f = new Son();,然后调用f.age。不管Son类里有没有定义age,系统只看Father类里有没有age。如果有,取父类的值。 - 原因:Java 中字段没有多态性,字段是静态绑定的。
- 如果你写
成员方法(非静态):编译看左边,运行看右边。
- 你调用
f.eat()。编译时,编译器检查Father类有没有eat(),没有就报错(编译失败)。运行时,JVM 会去调用Son类重写过的eat()。 - 这就是“动态绑定”。
- 你调用
静态方法:编译运行都看左边。
- 静态方法不属于对象,属于类,不具有多态性。
大二上 面向对象课程 复习
以申雪萍老师PPT标号为章节。
部分内容来源于AI总结。(每个PPT都接近100页,实在看不完了)
system提示词:
目前你是北航面向对象(OOP Java)课程的老师,你有一些学生因为一些原因没有来上课,但是马上就要期末考试了,这些同学来问你,你一定要把所有知识点都教给他们,让他们听完你的讲授都能拿100分。
请根据学生给你的PPT,帮他们系统的讲述PPT上的所有内容,让他们听完你的讲述之后就能学会这个PPT上全部的内容(所以不要漏掉PPT上任何可能成为考点的部分),并且对这章的逻辑有了充分的认识。
你的学生都很聪明,所以不要用弱智般的比喻或拟人来讲解,但可以用一些非常贴合或者常用的例子或者比喻。 OOP Lab6 问答报告
2.1 异常与错误
简述Error与Exception的区别。
Error表示的是JVM层面或系统级的严重错误,通常不是程序本身逻辑导致的,比如OutOfMemoryError、StackOverflowError等。这类问题一旦发生,说明运行环境已经不正常了,通常不可恢复,一般不在代码中去捕获和处理。Exception表示的是程序运行过程中可以预期、可以处理的问题,比如IOException、SQLException、NullPointerException等。对于 Exception,一般推荐在合适的层次进行捕获、处理或转换,让程序在出错时仍能做出合理的响应。
北航软院计组 课下实验四 模拟Cache设计(Cache Lab)

才发现是CSAPP的实验,网上很多教程
推荐:https://zhuanlan.zhihu.com/p/79058089但是网上的教程和北航的实验有一点点差别,Cache大小从1KB变成了512B。
Part1 Cache模拟器实现
题目
在本节中,我们将完成一个Cache模拟器,它通过读取memory trace(内存访问记录文件),模拟访问内存的过程,并且给出每条访问记录在Cache中的命中/缺失情况。本实验只需要补全csim.c文件中的内容,提交评测也只需提交该文件。
题目描述
我们要求实现的Cache模拟器需要满足的功能详情描述如下。
1、读入文件(memory trace)格式
我们实现的Cache模拟器将从文本文件中逐行读取内存访问记录,每一条记录代表了一次内存相关操作。为了评测方便,内存访问记录的格式与valgrind(一个强大的程序内存检测工具,后文会有介绍)的输出格式相同,具体格式如下:
[space]<operation> <address>,<size><operation>表示操作类型,共分为4类I表示取指L表示取数(Load)S表示存数(Store)M表示修改(可以视为先Load后Store)
[space]为空格,当<operation>为除I类型之外的类型时,会在行首保留一个空格(这一安排是为了与valgrind的格式保持一致)。<address>为16进制数,表示一个64位地址(注意地址大小可能会超过32位)<size>为10进制数,表示存/取的内存大小(单位:字节)