考研408《计算机组成原理》复习笔记,第一章计算机系统概述

本文主要是介绍考研408《计算机组成原理》复习笔记,第一章计算机系统概述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本人打算从今到2026年不再更新过多的前后端开发的笔记,因为要准备考研了,所以停更前面的开发教程。

这些都是我看完书、视频、做完题后,结合个人理解总结的知识点,希望对各位有帮助。一切都是用最快最精炼的方式讲清楚。

一、计算机发展历程

  • 第一代:电子管时代
  • 第二代:晶体管时代
  • 第三代:中小规模集成电路时代
  • 第四代:超大规模集成电路时代

就这么记就行了,很少考你历程这些细节的。

二、计算机系统结构

1、计算机系统有大概的两个组成

首先记住这句话:【计算机系统 = 软件 + 硬件】为什么这么记,后面解释。

还有一句话很重要:软件硬件逻辑上都是等价地位的。

相同的功能其实硬件也能完成、软件也能完成,只不过它两各有各的优点软件灵活便捷硬件时效更高缺点就是:软件时效没有硬件快,复杂的硬件造价成本高

所以简单一句话:【当要用一个频繁要复用的功能,硬件造价成本相对又不是很高的话,可以优先选硬件,否则就选软件。】

例题:

以下说法错误的是( D )

A、硬盘外部设备        √

B、软件的功能与硬件的功能在逻辑上是等价的        √

C、硬件实现的功能一般比软件实现具有更高的执行速度        √

D、软件的功能不能用硬件取代        ×

(※ 硬件更快,软件更灵活,当造价成本不高、反复执行一个功能时,硬件可以代替软件)

2、冯·诺依曼机思想

冯·诺依曼机很重要,他的计算机思想奠定了现代计算机的基本结构。主要是这么几个特点:

  • 采用 “存储程序” 的工作方式
  • 计算机由运算器、控制器、存储器、输入设备、输出设备组成。(运算器+控制器叫“CPU”,输入设备+输出设备叫“I/O设备”)
  • 【指令】、【数据】具有同等地位,形式相同,都是以二进制形式存在计算机里
  • 【指令】又分为【操作码】和【地址码】,【操作码】是要干什么,【地址码】是数据是什么
  • 以运算器为中心

这里以我个人理解来解释这几个专业术语:

1、【存储程序】思想:就是将原始程序和数据先存入计算机里,然后程序执行时,无需人工操作,计算机自动按照【按地址寻找访问数据,并按顺序自动执行指令】的规则运行程序。

2、【指令】与【数据】具有同等地位的存在计算机存储器里,都是二进制,虽然我们可能分辨不出来但是计算机能分辨出哪些是【指令】哪些是【数据】

3、【指令】又分【操作码】跟【地址码】,【操作码】就是这个指令要计算机干什么,【地址码】就是取数据的地址,比如下图第一条指令【操作码】就是【读数】,【地址码】就是【去地址5的地方取a=2这个数据】

例题:

1)冯诺依曼机的基本工作方式( A

A、控制流驱动方式 √ ——> 翻译人话:按顺序执行指令,按指令执行程序,对

B、多指令多数据流方式 × ——> 不知道是啥,直接不管

C、微程序控制方式 ×  ——> 不知道是啥,直接不管

D、数据流驱动方式 ×  ——> 翻译人话:按数据来执行程序;错,数据是被动存在存储器的,由指令操控

2)下列是冯诺依曼机的工作特点的是( B

A、多指令流单数据流 × ——> 不存在,不知道是啥玩意

B、按地址访问并顺序执行指令 √ ——>【按地址寻找访问数据,并按顺序自动执行指令

C、堆栈操作 × ——> 跟题目没关系

D、存储器按内容选择地址 × ——> 存储器的特点,跟冯诺依曼机整体没关系

其他的下面细讲。

3、计算机结构

大概由这几部分组成:【输入设备】+【运算器】+【存储器】+【控制器】+【输出设备】

然后【运算器】+【控制器】=【CPU】,【输入设备】+【输出设备】=【I/O设备】

存储器又分为【主存储器】跟【辅助存储器】

其中【主存储器】简称【主存】就是装在计算机里面的内存,就是我们常说的 “内存”;

【辅助存储器】又叫【外存】,就是U盘、硬盘这些东西,内存不够了就可以靠他们存储

然后【I/O设备】里

【输入设备】就是键盘鼠标、摄像头、扫描仪之类的 “将程序、数据转化成计算机所能接受并认识” 的外部接入设备

【输出设备】就是音响、打印机、显示器这些 “将计算机处理的结果变成人能理解的” 外部设备

那么注意这里的一个点:

【辅助存储器(外存储器)】可以当作【输入设备】也可以当作【输出设备】,总之就是属于【I/O设备】,然后【I/O设备】就是【外部设备】。

例题:

完整的计算机系统应该包括( D

A、运算器、存储器、控制器 × ——> 这只一个是【主机】的结构

B、外部设备和主机 × ——> 这只是【计算机系统硬件部分】的结构

C、主机和应用程序 × ——> 还有【软件系统和I/O设备】呢

D、配套的硬件设备和软件系统 √ ——> 我开头那句话:【计算机系统 = 软件 + 硬件

4、存储器

1)简单内部结构

存储器的内部结构简单来说就是【存储体】+【MAR(地址寄存器)】+【MDR(数据寄存器)】

(尽量也记一下MAR、MDR的英文全称,说不定考研英语还会考到呢,也方便记住它两)

抽象理解:【数据、指令】全都在【存储体】里,计算机取【指令、数据】时就要那“取件码”去存储器,先找【MAR(地址寄存器)】“店员”,给他看取件码让他去取货;然后【MAR(地址寄存器)】“店员”把货物放到【MDR(数据寄存器)】“柜台”,计算机再去那里取走。

注意:这里有个重要的点,虽然MAR、MDR是【存储器】里的部件,但是现代计算机中,MAR、MDR也可以存在于CPU里了。

2)存储体

然后有个大概了解之后,重点是对一些存储体的【单位】的理解:

存储体】里有很多【存储单元】,【存储单元】有很多 “存储元件”,里面可以存二进制“0”和“1”,因此【存储单元】可以存一长串二进制代码

这么一串二进制代码就是【存储字】,这串二进制代码的位数就是【存储字长】。【存储字长】通常就是一字节、或者一字节的偶数倍(8bit,或者8bit的偶数倍)。

注意:二进制代码的位数、存储字的位数不是指这个二进制代码有几位数,而是一个代表大小的单位

计算机里最小单位是bit(比特位),【一个字节】就是【8bit】(8个比特位)

【bit】可以写成:b、bit

【一个字节】可以写成:1B、1Byte

        (1B = 8b \ 1B = 8bit \ 1字节 = 8b \ 1字节 = 8bit1Byte = 8b \ 1Byte = 8bit)

【一个字】不等于【一个字节】,【一个字】的大小取决于不同的计算机结构

3)各种【“字长”】的混淆理解

然后重点!!!!!区分【字长】、【机器字长 \ 存储字长】、【指令字长】

【字长】

当有人这么说:“一个N位的计算机以M位来表示地址”,要区分这个N位M位是啥!!!

N位】是指计算机的【字长】,而【字长】就是【CPU内部用于计算整数运算的数据通路的宽度】,也就是【一次能处理多少位的数据】,CPU、数据总线、内存地址的设计跟它有关。

M位】就是这个计算机的【地址总线的宽度】,也就是【地址码的长度

        那么我们前面说过,计算机是根据【地址】来寻找数据的,数据可以有无数种,但是【地址空间】就固定那么几个,你的地址码有N位,那么【存储器的存储体】里就要有(2的N次方)个【地址空间】。

        这么说可能有点懵,这么解释吧:这个【N位】也就是【字长】,就是一个马路有多宽,一次能过多少载具;【存储体】就是一个小区,【M位】也就是【地址码的长度】,就是一个小区的门牌号,假设这个小区的门牌号是N位的,只用0跟1来组合,那不就是得准备(2的N次方)种组合的门牌号嘛,也就代表小区有(2的N次方)个商品房。

【指令字长】

就是一个【指令的二进制代码的位数】,一般是【存储字长】的整数倍

【指令字长】是【存储字长】的几倍,就需要几个周期来取出一个指令;如果相等,则取指令周期就是一个机器周期。

【机器字长 \ 存储字长】

【机器字长】 就是【存储字长】,也就是一个【存储单元有多大】,通常是字节的倍数

例题:

一个8位的计算机以16位来表示地址,那么这个计算机系统要有( B )个地址空间

A、2的8次方 ×

B、2的16次方 √

4)MAR、MDR的位数、主存空间计算

1、MDR:

【MDR位数 = 存储字长】,【MDR位数】就相当于【一个存储单元的大小】

虽然【存储单元】是【存储体】里的东西,但是!请看下图,前面我们说了:【MDR】是用来【存数据】的,【存储体】里的数据被MAR取出来之后是要放到MDR那的,那么你MDR就必须得有存储体里一个存储单元的大小。这么说吧,你一个货架隔间能放一个货物,那你柜台也至少能放得下一个货物,不然从一个货架隔间取出的一个货物怎么放下到柜台那?

2、MAR:

【MAR的位数 = 能处理N位的二进制代码】

(这里的N位就是字面意思,xx就是2位,xxx就是3位,xxxx就是4位...)

【MAR的个数 = 0和1能凑成几种N位二进制代码 = 2的N次方】

(比如:MAR位数是2,那就能凑出【00、01、10、11】“2的2次方 = 4种”可能;位数是3,就能凑出【000、001、011、111、100、101、010、110】“2的3次方 = 8种”可能)

为什么呢?因为【MAR】是用来【存地址码】的,这么解释:还是假设【存储体】是一个小区,那么前面我们举例子小区有(2的N次方)个商品房,那么【MAR】就相当于这个小区的门牌号记录本、或者就是装所有门牌号的一个箱子,那有(2的N次方)个商品房,不久对应要有(2的N次方)个门牌号吗。

3、主存容量:

【存储体容量】=【2的MAR位数次方】*【MDR位数】/ 8bit

既然主存的数据指令都存在存储体里,那么【主存容量】就等于【存储体容量】了,那么【存储体容量】=【有几个存储单元】*【1个存储单元多大】,或者说【存储体容量】=【有几个存储单元】*【存储字长】

因为我们刚刚解释了MAR个数、位数、MDR位数,已知【MDR位数 = 存储字长】,【MAR个数 = 有几个存储单元】,那么【存储体容量】=【MAR个数】*【MDR位数】

而【MAR个数 = 2的MAR位数次方】,所以【存储体容量】=【2的MAR位数次方】*【MDR位数】

因为得到的结果最终要以字节单位的形式显示,所以一字节是8bit,那么就把容量结果除8bit就行了。

例题:

MAR和MDR位数分别为( A

A、地址码长度、存储字长

B、存储字长、存储字长 ×

C、地址码长度、地址码长度 ×

D、存储字长、地址码长度 ×

5)存储器层次结构

存储器其实还分为【缓存-主存】、【主存-辅存】两层:

【缓存-主存】层次主要解决CPU和主存速度不匹配的问题,速度接近缓存

【主存-辅存】层次主要解决存储系统的容量问题,容量接近与价位接近于辅存

那么可以发现,【寄存器】在【存储器】中有,在【CPU】中也有,那么既然【寄存器】就是在CPU内的,所以它对CPU的存取速度最快;然后是缓存【Cache】,它采用高速SRAM制作,对CPU的存取速度次快;最后是【内存】,常用DRAM制作,相对于CPU的存取速度最慢,但是它保证容量够大。

总结:对CPU的存取速度快慢,【寄存器】>【Cache】>【内存】

6)相联存储器

相联存储器(也称为关联存储器或缓存),是计算机体系结构中的一种存储器类型,用于提高计算机系统的性能。

既可以按照地址寻址、又可以按内容(通常是某些字段)寻址,与传统存储器区别。

5、运算器

运算器主要就4个组成部分:【ALU算术逻辑单元】+【ACC累加器】+【MQ乘商寄存器】+【X通用寄存器】,当然还有很多别的寄存器,其中就一个比较重要的寄存器是【PSW状态寄存器】(又叫标志寄存器)

(还是建议大家记一下英文全称:ACC(Accumulate)、MQ(Multiplier-Quoetitent Register)、ALU(Arithmetic And Logic Unit))

【ALU算术逻辑单元】:最后进行运算的,最重要

【ACC累加器】:暂存一些乘积高位、被加数、被减数、被除数、和、差、余数,结果一般都存ACC这

【MQ乘商寄存器】:乘积低位、商

【X通用寄存器】:ACC或MQ这些寄存器要存放下一个数的时候,就先把数放它这个

6、控制器

主要由三部分组成:【CU控制单元】+【IR指令寄存器】+【PC程序计数器】

(还是建议大家记一下英文全称:CU(Control Unit)、IR(Instruction Register)、PC(Program Counter))

【PC程序计数器】:跑腿的,一条指令执行完就自动去找下一条指令的地址并存到IR那里,有自动【+1】的功能,就像朝廷里跑腿的信差。这也符合了前面“存储方式”的【按顺序执行指令】

【IR指令寄存器】:接收【指令】并保存,将【指令】拆成【操作码】和【地址码】,【操作码】给CU分析这是这么指令,【地址码】给存储器的MAR找到数据,像干杂活的大臣。

【CU控制单元】:分析【IR指令寄存器】给的【操作码】是啥意思,然后时机到了就给出【控制信号】,控制各个部件的各项工作。

7、一条指令到底是怎么执行的流程

这真是一个复杂的流程,我先放一张我自己画的贼丑的图片给各位看看吧,当然觉得画得丑的没法看可以跳过......

以这个表作为例子:

首先PC跑腿到【存储器】找【指令】去了,

PC拿着“取件码”(按顺序自动获取的指令的地址)去【存储器】找“快递员”MAR帮取指令,

取出来的指令先放“驿站柜台”MDR处,再通知IR过来“取货”;这就完成了【取指令

取指令】步骤写成专业术语就是:PC ——> MAR ——> M ——> MDR ——> IR

或:        (PC) ——> MAR

         M(MAR) ——> MDR

            (MDR) ——> IR

这里()代表这个设备携带着数据,但是在表示数据流通的过程时其实可以省略(),除了运算不能省略,比如 PC 自动+1执行下一条指令时要写 (PC)+1,而不是PC+1

接下来IR就要把【指令】拆分成【操作码】和【地址码】,

【操作码】拿给【CU】去分析 “这个指令是什么意思?”,分析出是“取数a到ACC”;完成【分析指令

【地址码】去拿给MAR接着找数据,MAR找到数据之后就还是老样子,给到MDR存放,

(但是刚刚当【CU】分析完指令后,这次MDR就不是给IR了,而是应该把数据给运算器的ACC了,因为IR只会取【指令】然后到【控制器】那边分析指令,而ACC才是取【数据】回【运算器】那执行指令)MDR叫ACC过来“取货”;开始【执行指令】。

分析指令】步骤专业术语:OP(IR) ——> CU

OP意思就是option,选择、操作

执行指令】步骤专业术语:AD(IR) ——> MAR ——> M ——> MDR ——> ACC

或:    AD(IR) ——> MAR

         M(MAR) ——> MDR

            (MDR) ——> ACC

接下来(PC)+1,到下一条指令,还是大致走一遍上面的流程

然后这时候已经获得a=2,b=3这两个数据了,要执行a*b这个操作了,轮到【运算器】登场

刚刚【ACC】已经获得了a=2,那等会因为所有的【计算结果】他还需要再去接收,也就是a*b的结果,那就得先把a=2给【x通用寄存器】,然后第二个数据b=3其实是【MQ】去“取货”的,因为【ACC】取乘积高位,【MQ】取低位,所以现在MQ装着a=2、x装着b=3;

然后【CU】开始控制运算器干活了,它下命令让【ALU】开始运算了,【ALU】无奈只好把装着数据的【MQ】跟【X】强行交合融合(就是相乘...),最终得到【a*b= 2*3 = 6】,然后把结果给到【ACC】,一切结束。

专业术语就是:

ACC ——> X

CU   ——> ALU

ALU ——> (MQ)与(X)运算

ALU ——> ACC结果

总结第二大点的例题:

1、存放当前执行指令的寄存器是( D

A、MAR ×

B、PC ×

C、MDR ×

D、IR √ ——> IR指令寄存器,专门去MDR取指令存放,除此之外还要拆分指令成【操作码】和【地址码】

2、CPU不包括( C

A、地址寄存器 √ ——> MAR,前面说了MAR、MDR都可以才CPU里也有

B、指令寄存器 √ ——> IR,控制器里的东西,控制器属于CPU

C、地址译码器 × ——> 它是主存里的东西,既不是MAR也不是MDR,就是不属于CPU

D、通用寄存器 √ ——> X,运算器的东西,运算器属于CPU

3、CPU组成中不包括( C

A、寄存器 √ ——> 注意:现代计算机中存储器、CPU里都有

B、运算器 √

C、存储器 ×

D、控制器 √

4、下列正确的是( 三个都对

A、实际应用程序的测试结果能够全面代表计算机的性能 √

B、系列机的基本特性是指令系统向后兼容 √ ——> 指时间上向后兼容,新系统兼容老系统

C、软件和硬件在逻辑功能上是等价的 √ 

5、关于相联存储器,下列说法正确的是( C

A、只可以按地址寻址 ×

B、只可以按内容寻址×

C、既可以按地址寻址,也可以按内容寻址 √

D、上述说法都对 ×

三、计算机系统层次结构

1、三大级别语言

机器语言:机器能看得懂,能直接执行的语言,就是0、1二进制代码

汇编语言:使用英文单词或英文单词缩写作为【助记符】,方便人理解,写完的代码翻译成机器语言后才能被机器运行

高级语言:我们现在学的C、C++、JAVA...这些代码,要先转成汇编语言,然后由汇编程序传承机器语言才能被执行。

那么需要记住的几个特点是:

1、机器只会机器语言,除此之外任何语言他都看不懂,其它语言都必须转成机器语言才能被机器执行,所以机器只会直接执行机器语言。

2、不管机器语言、汇编语言、高级语言都能写出相同功能的东西,因为本质就是一个操控机器的语言而已,只是有难有简单,只要你够牛逼,你用机器语言0跟1也能写出《黑神话·悟空》,只不过你得有超人脑子跟几万年的寿命...... 

3、汇编语言要直接翻译各种不同设备的机器语言,因此要对应不同的设备的不同指令集,所以汇编语言跟设备结构密切相关

2、翻译程序

【翻译程序】,就是把高级语言程序转化成机器语言程序,汇编程序也是一种翻译程序,他把汇编语言翻译成机器语言。

【翻译程序】里其实也分为编译程序跟解释程序两种:

解释程序:你写好的代码程序,按顺序一句一句翻译成机器指令,并直接执行,特点就是读一句干一件事比较慢,也不会产生目标代码文件,用一次翻译一次,但是可以翻译成机器语言直接执行。(常见的有:java、JavaScript、shell、python....)

编译程序:你写好的代码程序,整个编译完后翻译成汇编语言或机器语言,特点是这样比较,编译过后会产生目标代码文件(或者叫可执行文件,比如C语言产生的.exe文件),编译一次以后可以不用编译直接执行。(常见的有:C、C++、C#、Rust...)

3、两种程序编译执行的过程不同

编译程序:

解释程序:

例题:

1、将高级语言源程序转换成可执行文件的主要过程是( A

A、预处理 —> 编译 —> 汇编 —> 链接 ——>翻译程序里,会产生可执行文件的只有编译程序,而编译程序的顺序就是这样

B、预处理 —> 汇编 —> 编译 —> 链接

C、预处理 —> 编译 —> 链接 —> 汇编

D、预处理 —> 汇编 —> 链接 —> 编译

2、将高级语言程序转成机器级目标代码文件的程序是( C

A、汇编程序

B、连接程序

C、编译程序 ——>翻译程序里,会产生目标代码文件的只有编译程序

D、解释程序

这篇关于考研408《计算机组成原理》复习笔记,第一章计算机系统概述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141123

相关文章

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

软件设计师备考——计算机系统

学习内容源自「软件设计师」 上午题 #1 计算机系统_哔哩哔哩_bilibili 目录 1.1.1 计算机系统硬件基本组成 1.1.2 中央处理单元 1.CPU 的功能 1)运算器 2)控制器 RISC && CISC 流水线控制 存储器  Cache 中断 输入输出IO控制方式 程序查询方式 中断驱动方式 直接存储器方式(DMA)  ​编辑 总线 ​编辑

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu