不想学习…

集合论+图论+常用证明思路

阅读全文


(一):大二上 面向对象课程 复习

先占位,复习中

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上任何可能成为考点的部分),并且对这章的逻辑有了充分的认识。

你的学生都很聪明,所以不要用弱智般的比喻或拟人来讲解,但可以用一些非常贴合或者常用的例子或者比喻。

阅读全文


2.1 异常与错误

简述 ErrorException 的区别。
  • Error 表示的是JVM层面或系统级的严重错误,通常不是程序本身逻辑导致的,比如 OutOfMemoryErrorStackOverflowError 等。这类问题一旦发生,说明运行环境已经不正常了,通常不可恢复,一般不在代码中去捕获和处理。
  • Exception 表示的是程序运行过程中可以预期、可以处理的问题,比如 IOExceptionSQLExceptionNullPointerException 等。对于 Exception,一般推荐在合适的层次进行捕获、处理或转换,让程序在出错时仍能做出合理的响应。

阅读全文


image-20251207114642868

才发现是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进制数,表示存/取的内存大小(单位:字节)

阅读全文