题目解答
一 基础知识
1.若CPU的寻址能力是 2^n字节(Byte),那么地址总线宽度为 n 位。
8KB = 2^13byte
所以为13
2.1KB存储器的地址范围, 1KB = 1024个存储单元,地址从0开始编号
所以为0-1023
3.1KB存储器可存储的数据量,1KB = 2^13bit
可存储 2^13 bit
可存储 2^10 Byte
4.常见的转换:::
1KB = 2^10Byte
1MB = 2^20Byte
1GB = 2^30Byte
6.传输1024字节所需次数
若数据总线宽度为 n 位,则每次传输 n/8 字节
所需次数 = 总字节数 ÷ 每次字节数
8086(16位)→ 一次2B → =512 次
80386(32位)→ 一次4B → =256 次
8080:8位 → 1B
8088:8位 → 1B
8086:16位 → 2B
80286:16位 → 2B
80386:32位 → 4B
二 寄存器
1.补充完整:
mov 是赋值指令,不影响标志位。
add 是加法指令,结果存入目标寄存器。
ax 包括 ah(高8位)和 al(低8位)。
指令演示: ...
web基础
1.JavaWeb是什么(静态资源和动态资源)
JavaWeb 是基于 Java 技术的 Web 开发体系,用于构建浏览器/服务器(B/S)架构的动态网站或服务。
核心组成部分:
模块
说明
Servlet
JavaWeb 的核心,用于处理 HTTP 请求
JSP / Thymeleaf
页面展示层,用于动态生成 HTML 内容
Filter / Listener
过滤器和监听器,提供请求过滤、生命周期监听等功能
Web.xml
部署描述文件,用于配置 Servlet、Filter 等组件(Spring Boot 多用注解配置)
静态资源
纯前端文件,如 HTML、JS、CSS、图片等
动态资源
由 Servlet / Controller 处理、运行时生成的内容
类型
描述
是否经过服务端处理
静态资源
浏览器请求后直接返回内容(如 HTML/CSS/JS/图片)
❌ 不经过 Java 代码处理,直接由服务器返回
动态资源
运行时由后端生成(如 .jsp、Servlet、Controller 响应 JSON)
...
计算方法——公式汇总
第一章:误差分析
绝对误差
Δ=∣x∗−x∣\Delta = \bigl|x^* - x\bigr|
相对误差
δ=∣x∗−x∣∣x∗∣\delta = \frac{\bigl|x^* - x\bigr|}{\lvert x^*\rvert}
四舍五入误差限(保留到第 nn 位有效数字)
Δmax=12×10−n,δmax=Δmax∣x∣\Delta_{\max} = \tfrac12 \times 10^{-n}, \quad \delta_{\max} = \frac{\Delta_{\max}}{\lvert x\rvert}
有效数字与相对误差关系
若已知相对误差 ε\varepsilon,则有效数字位数 nn 满足
12 10−(n−1) ≤ ε < 12 10−(n−2).\frac12 ,10^{-(n-1)} ;\le; \varepsilon ;<; \frac12 ,10^{-(n-2)}.
误差传播
乘除法:
δ(f(x1,…,xk))≈∑i=1kδ(xi).\delta\bigl(f(x_ ...
架构
项目分为四个主要模块:
backend:数据库核心功能实现
client:客户端实现
transport:网络传输层
common:公共工具和异常处理
后端
dm/数据管理:实现数据页面的管理和持久化
DataManager.java:数据管理器接口
DataManagerImpl.java:数据管理器实现
PageOne.java:特殊页面,存储元数据
PageX.java:数据页面
Logger.java:日志管理
im/索引管理:实现B+树索引
BPlusTree.java:B+树实现
Node.java:B+树节点
LeafNode.java:叶子节点
InternalNode.java:内部节点
tbm/表管理:实现表的创建、删除和管理
Table.java:表的抽象
TableManager.java:表管理器接口
TableManagerImpl.java:表管理器实现
Field.java:字段定义和管理
tm/事务管理:实现事务的ACID特性
ransactionManager.java:事务管理器接口
TransactionManagerIm ...
日志
1.在 Mydb 数据库中,日志模块是如何实现崩溃恢复的?请详细说明日志格式、校验机制、写入流程和恢复逻辑,并分析可能存在的性能瓶颈及优化方案。
日志设计
redo log:记录事务提交后的数据修改,用于崩溃后重做已提交事务(如数据页修改记录);
undo log:记录事务提交前的原始状态,用于回滚未提交事务(如行版本号、旧值)。
12[全局校验码(4B)][日志条目1][日志条目2]... 日志条目格式:[条目长度(4B)][校验码(4B)][数据内容(N字节)]
日志文件头部 4 字节为全局校验码,每条日志以[4字节长度+4字节校验码+数据]组成。启动时会从头部开始校验每条日志的 checksum,若全局校验码不一致则截断文件尾部。”
崩溃恢复
校验
从文件头部开始读取每条日志,校验单条日志的 checksum;
累计计算全局校验码,与文件头部校验码比对,不一致则截断文件尾部。
redo
扫描日志,提取所有状态为COMMITTED的事务记录;
按日志顺序重新执行数据修改操作(如更新数据页)。
undo
扫描日志,找到状态为ACTIVE或ABORTED的事务;
...
知识点分布
计算:
1.进制转换
10进制,8进制,16进制,20进制
2.源码反码补码
3.余三码
4.公式运用转换
化简,卡诺图,公式
数字逻辑
两个简答,三个计算二进制转8 10 16饭吗不拿 雨伞吗
化简
函数化简,标准语或表达式
卡诺图化简
组合逻辑电路分析
函数逻辑表达,nc图,功能
隐含表
状态化简
时序逻辑电路,什么型的
死胎针指标
状态相应队列
简答题
与非门/或非门型R-S触发器差异
同步与异步时序电路对比
组合与时序逻辑区别
逻辑函数三种描述方式(真值表、代数表达式、卡诺图)
卡诺图化简步骤与规则
1.根据所采用的半导体器件不同,集成电路可分为哪两大类?各自的主要优缺点是什么。
根据所采用的半导体器件不同,集成电路可分为两大类:一类是采用双极型半导体器件作为元件的双极型集成电路;双极型集成电路的主要特点是速度快、负载能力强,但功耗较大,集成度较低;
另一类是采用金属-氧化物-半导体场效应管作为元件的单极型集成电路,又称MOS集成电路。MOS集成电路的特点是结构简单、制造方便、集成度高、功耗低,但速度较慢。
2.简述晶体二极管的静态特性
1.正向特性 :
正向电压 ...
6.11模拟面试
1.什么是 Java 的面向对象编程?它的核心特性有哪些?
面向对象编程是OOP是说就是用“对象”来组织代码,java就是一门面向对象编程的语言。
java的面向对象的三大特征是封装继承多态
封装:反射,修饰符
继承:构造方法调用,final
多态:方法重载,方法重写
抽象:抽象和接口
静态:
2.说说 Java 中 ArrayList 和 LinkedList 的区别,以及各自的适用场景
底层:
遍历和插入:
arrayList扩容:1.5,数组的复制
内存占比:
使用场景:
线程安全:
3.HashMap 的底层原理
特点:
底层实现,1.7/1.7之后,头插和尾插
put过程
转换红黑树/扩容:当链表长度≥8 且数组容量≥64 时转红黑树 为什么用红黑树
线程安全:
concurrenthashmap,底层,put过程
4.Spring 框架中,Bean 的作用域有哪些?请分别说明它们的生命周期和应用场景
5 大标准作用域:
Singleton:全局唯一实例,Spring 容器加载时创建,适用于无状态服务;
Prototype:每次获取新实例,适用于有状态对象 ...
业务
service
ShopServiceImpl:
使用redis设置和查询店铺的状态。redistemplate.opsforvalue.set/get(key)
AddressBookServiceImpl:
新增地址,实体类设置字段的值,然后调用mapper的insert方法。
修改地址,调用updata调用主键去更新方法更新
设置默认地址,设置默认地址,然后获取当前用户的id,然后在sql中set用于默认地址,where userid。然后更新默认字段 return
使用LambdaUpdateWrapper去写一个查询条件
1234567891011Long userId = BaseContext.getCurrentId();// 1. 将该用户的所有地址设为非默认LambdaUpdateWrapper<AddressBook> wrapper = new LambdaUpdateWrapper<>();wrapper.eq(AddressBook::getUserId, userId).set(AddressBook::getIsDefaul ...
基础语法回顾
1.SQL110 插入记录(一)
牛客后台会记录每个用户的试卷作答记录到exam_record表,现在有两个用户的作答记录详情如下:
用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分;
用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。
试卷作答记录表exam_record中,表已建好,其结构如下,请用一条语句将这两条记录插入表中。
Filed
Type
Null
Key
Extra
Default
Comment
id
int(11)
NO
PRI
auto_increment
(NULL)
自增ID
uid
int(11)
NO
(NULL)
用户ID
exam_id
int(11)
NO
(NULL)
试卷ID
start_time
datetime
NO
(NULL)
开始时间
submit_time
datetime
YES
(NULL)
提交时间
score
tinyint(4)
YES
(NULL) ...
基础知识
关系代数
关系代数就是:一种抽象的查询语言用对关系的运算来表达查询
关系看上去像一张二维表,每个表由行和列组成
行代表一个元组,即数据记录。列代表属性,即字段
关系的域为一组原子值(不可再分割的值)
关系中的元组必须各不相同(元组的唯一性)
符号表示
元组 t 与 t[Ai] :
t 就是一行数据,t[Ai] 就是这一行中某一列的值。
假设表 R 结构是:
学号
姓名
年龄
101
张三
20
这一行是一个元组 t。
t[学号] = 101,t[姓名] = 张三,t[年龄] = 20
属性组 A、t[A]、Ā :
表 R:
学号
姓名
年龄
班级
101
张三
20
A1
如果我们说 A = {学号, 姓名},那:
t[A] = (101, 张三)
Ā = {年龄, 班级}
元组连接 tr ⨝ ts :
表 R(学生):
学号
姓名
101
张三
表 S(成绩):
课程
成绩
数学
95
将 tr ∈ R 和 ts ∈ S 连接(拼接)起来:
→ 结果元组为:
学号
姓名
...
网络模型
1.网络OSI模型和TCP/IP模型分别介绍一下
OSI七层模型
为了使得多种设备能通过网络相互通信,和为了解决各种不同设备在网络互联中的兼容性问题,国际标准化组织制定了开放式系统互联通信参考模型(Open System Interconnection Reference Model),也就是 OSI 网络模型,该模型主要有 7 层,分别是应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。
每一层负责的职能都不同,如下:
应用层,负责给应用程序提供统一的接口;
表示层,负责把数据转换成兼容另一个系统能识别的格式;
会话层,负责建立、管理和终止表示层实体之间的通信会话;
传输层,负责端到端的数据传输;
网络层,负责数据的路由、转发、分片;
数据链路层,负责数据的封帧和差错检测,以及 MAC 寻址;
物理层,负责在物理网络中传输数据帧;
由于 OSI 模型实在太复杂,提出的也只是概念理论上的分层,并没有提供具体的实现方案。
事实上,我们比较常见,也比较实用的是四层模型,即 TCP/IP 网络模型,Linux 系统正是按照这套网络模型来实现网络协议栈的。
T ...
基础
Git 是一个分布式版本控制系统,用于跟踪和管理代码的变化,广泛应用于软件开发中。一般用于多人开发,或者是版本管理的
组成部分:
工作区(Working Directory):你本地修改代码的目录。
暂存区(Staging Area/Index):用于暂存准备提交的更改。
本地仓库(Local Repository):存储提交的代码版本。
远程仓库(Remote Repository):托管在远程服务器(如 GitHub、GitLab)的代码仓库。
流程:修改代码 → 暂存更改(git add) → 提交到本地仓库(git commit) → 推送到远程仓库(git push)。
从远程仓库拉取更新(git pull)或克隆仓库(git clone)。
命令
git init 初始化仓库,建立一个.git文件夹
git clone ssh/http克隆仓库
git status 查看工作区的状态
git add 添加文件。git add .添加所有
git commit -m ""提交
git log 查看提交历史
git log --oneline # 简洁 ...













