计算机基础书籍
一操作系统
二常见问题总结
1.操作系统的特征?
并发、共享、虚拟、异步性
2.进程阻塞与唤醒的条件
- 等待 I/O 操作完成
- 请求系统资源失败
- 等待信号量或事件
- 等待子进程结束
- 被高优先级进程抢占
3.如何避免死锁?
1、避免资源竞争
2、破坏循环等待条件
3、优先级机制
4、资源预留机制
4.什么是设备驱动程序
用于控制和管理计算机系统中的硬件设备。设备驱动程序通常是与硬件设备紧密耦合的软件,它们实现了硬件设备与操作系统之间的接口,使得操作系统可以与硬件设备进行通信和控制。
二思维导图




一编译
二常见问题总结
1.编译的过程?
- 词法分析(lexical analysis):将源代码分解为一个个单词(token),例如关键字、变量名、运算符等。
- 语法分析(syntax analysis):根据语法规则,将单词组成语法树(syntax tree),以确定源代码是否符合语法要求。
- 语义分析(semantic analysis):对语法树进行分析,检查语义错误,例如变量未定义、类型不匹配等。
- 中间代码生成(intermediate code generation):将源代码转换成中间代码(intermediate code),这种代码通常是一种类似汇编语言的低级语言。
- 优化(optimization):对中间代码进行优化,以提高程序的执行效率。
- 目标代码生成(code generation):将中间代码转换成目标代码(machine code),这种代码是计算机可以直接执行的二进制指令。
- 链接(linking):将目标代码和库文件(library)等组合成一个可执行程序。
2.分析树有那几种 - 抽象语法树(AST):由语法分析器生成,表示源代码的语法结构。AST 只保留与语义有关的信息,丢弃掉不必要的细节,比如括号、分号等。AST 通常用于编译器的后续阶段,比如中间代码生成、代码优化等。
- 语法树(Parse Tree):是由语法分析器生成的一种树形结构,反映了源代码的语法结构和语法规则。语法树包含了所有的语法信息,包括括号、分号等。通常用于语法分析和语法错误的检测。
- 具体语法树(CST):与语法树相似,但包含了源代码中的所有符号和标点符号。通常用于词法分析,将输入的字符流转换成单词序列。
- 中间表示树(IR Tree):表示源代码的中间表示形式,通常用于编译器的中间代码生成阶段,是一种介于 AST 和机器代码之间的一种抽象形式。IR Tree 可以有多种实现方式,比如三地址码、四元式、虚拟机指令等。
3.什么是算符优先文法
算符优先文法是一种描述形式语言的文法,其文法的特点是文法的产生式中不含两个相邻的非终结符。
4.LR分析器由什么组成 - LR分析表(LR parsing table):LR分析表是一个二维数组,其中行表示分析器的状态,列表示终结符和非终结符。LR分析表中的每个元素包含两个信息:一个是状态转移的目标状态,另一个是要执行的操作(移进或规约)。
- LR分析栈(LR parsing stack):LR分析栈是一个栈数据结构,用来保存当前的分析状态和已经处理的输入符号。
- LR分析动作(LR parsing action):LR分析动作是指对输入符号进行移进或规约的操作,当执行这些动作时,会根据当前状态和输入符号执行对应的操作,然后更新LR分析栈的状态。如果分析完成并且输入符号序列合法,则可以得到输入符号的语法结构。
5.给出该表达式的逆波兰表示(后缀式):a(-b+c)*
根据后续遍历:a(-b+c)–>(a *((-b)+c))–>a b - c + *
二思维导图




一计算机网络
二常见问题总结
1.报文交换和分组交换的优劣
报文交换和分组交换都是计算机网络中的数据传输方式,它们各有优劣。
报文交换的优点:
1.传输效率高:在传输大量数据时,报文交换比分组交换更加高效。
2.数据完整性:报文交换保证了数据的完整性,因为每个报文都在传输前进行了检查。
3.不需要缓存:报文交换不需要缓存,因为数据一次性发送。
报文交换的缺点:
1.延迟高:报文交换的延迟时间比分组交换更长。
2.传输质量差:由于网络环境的不稳定性,报文交换会导致数据的传输质量下降。
分组交换的优点:
1.传输效率高:分组交换可以同时传输多个分组,提高了传输效率。
2.数据灵活性:分组交换可以将大的数据包分割成小的分组,提高了数据的灵活性。
3.适应性强:分组交换可以适应不同的网络环境和不同的传输需求。
分组交换的缺点:
1.传输延迟高:分组交换需要对数据进行分割和重组,因此传输延迟比报文交换更高。
2.数据安全性差:分组交换中的分组可以被拦截或篡改,因此数据的安全性较差。
3.需要缓存:分组交换需要缓存,因为数据是分段传输。
2.什么是本地域名服务器
任何一台主机在网络地址配置时,都会配置一个域名服务器作为默认域名服务器,这个默认域名服务器通常称为本地域名服务器,是主机进行域名查询过程中首先被查询的域名服务器。
3.TCP如何实现拥塞控制
CP会为每条连接维护一个拥塞窗口来限制可能在端对端间传输的未确认分组总数量。这类似TCP流量控制机制中使用的滑动窗口。TCP在一个连接初始化或超时后使用一种“慢启动”机制来增加拥塞窗口的大小。它的起始值一般为最大分段大小Maximum segment size,MSS)的两倍,虽然名为“慢启动”,初始值也相当低,但其增长极快:当每个分段得到确认时,拥塞窗口会增加一个MSS,使得在每次往返时间(round-trip time,RTT)内拥塞窗口能高效地双倍增长。
当拥塞窗口超过慢启动阈值(ssthresh)时,算法就会进入一个名为“拥塞避免”的阶段。在拥塞避免阶段,只要未收到重复确认,拥塞窗口则在每次往返时间内线性增加一个MSS大小。
4.差错控制的作用?
差错控制在数字通信中利用编码方法对传输中产生的差错进行控制,以提高传输正确性和有效性的技术。通过发现数据传输中的错误,采取相应的措施减少数据传输错误。
5.网络安全典型威胁有哪些?
• 窃取机密信息。例如,通过物理搭线、接收辐射信号、信息流监视、会话劫持、冒名顶替、管理缺陷和后门等多种形式窃取机密信息。
• 非法访问。通过伪装、IP欺骗、越权操作、重演、盗用账号、破译口令等各种手段非法讹用或篡改网络信息。
• 恶意攻击。通过拒绝服务攻击、邮件炸弹和垃圾邮件、木马程序、篡改网页等破坏行为中断网络服务功能,或者破坏系统资源。
• 各种不同目的的黑客攻击。
• 计算机病毒。这是一种可以渗透到系统软硬件内部并能进行传播的有害程序。
• 散布和传播有害社会、有害个人、有害集体、有害国家的不良信息资源。
• 信息战。所谓信息战是指使用信息或信息系统的攻击和防御体系,以利用、恶化、摧毁对手的信息和信息系统为目的,同时保障自身信息和信息系统安全的信息对抗。
• 利用各种手段偷窃和破坏网络上的物理设备和基础设施。
二思维导图




一数据库原理
二常见问题
1.数据库系统三级模式、两层映像的含义是什么
数据库系统中的三级模式和两层映像是指数据库系统中的三级模式结构和数据在不同层次之间的映射关系。
三级模式指的是数据库系统中的三个层次:外模式、概念模式和内模式。外模式是用户能够看到和使用的部分,它是用户视图的集合。概念模式是数据库的全局逻辑结构,它描述了整个数据库的结构和约束条件。内模式是数据库的物理存储结构,它描述了数据在磁盘上的存储方式和数据存储的细节。
两层映像指的是外模式和概念模式之间的映像关系,以及概念模式和内模式之间的映像关系。外模式和概念模式之间的映像关系是指外模式中的数据如何映射到概念模式中的数据,概念模式和内模式之间的映像关系是指概念模式中的数据如何映射到内模式中的数据。
通过三级模式和两层映像的设计,数据库系统可以实现数据的逻辑独立性和物理独立性。逻辑独立性指的是数据库的概念模式可以独立于外模式和内模式进行修改,而不会影响到外模式和内模式的使用。物理独立性指的是数据库的内模式可以独立于概念模式和外模式进行修改,而不会影响到概念模式和外模式的使用。
2.一、二、三、BCNF这四种范式区别在哪
一、二、三、BCNF是数据库设计中的四种范式,它们分别代表了不同的规范化程度。下面是它们的区别:
1NF(第一范式):确保每个列都是原子性的,即每个列都只包含一个值。如果一个列中包含多个值,就需要将其拆分成多个列。
2NF(第二范式):在满足1NF的基础上,消除非主键列对主键的部分函数依赖。也就是说,每个非主键列都必须完全依赖于主键,而不能只依赖于主键的一部分。
3NF(第三范式):在满足2NF的基础上,消除非主键列对主键的传递依赖。也就是说,如果一个非主键列依赖于另一个非主键列,那么就需要将其拆分成两个表。
BCNF(巴斯-科德范式):在满足3NF的基础上,消除主键对非主键列的部分和传递依赖。也就是说,每个非主键列都必须完全依赖于主键,而不能只依赖于主键的一部分。如果存在这样的依赖关系,就需要将其拆分成两个表。
总的来说,一、二、三、BCNF都是为了减少数据冗余和提高数据的一致性和完整性。随着范式的逐渐提高,设计出来的数据库结构会越来越规范化,但也会越来越复杂,需要在设计时考虑到实际的业务需求和性能要求。
二思维导图

一计算机组成
二常见问题
1.计算机的结构?
计算机的结构可以按照功能划分为五个部分:运算器、控制器、存储器、输入设备和输出设备,这五个部分共同构成了计算机的基本结构。
2.数值数据表示方式?
-
二进制补码表示法:在计算机中,数字都是使用二进制来表示的。二进制补码是一种表示负数的方法,它的基本思想是用最高位表示符号位,0表示正数,1表示负数,其他位表示数值大小。在补码表示法中,负数的补码是将该数的绝对值的二进制表示取反再加1。例如,十进制数-5的二进制补码为11111011。
-
浮点数表示法:浮点数表示法用于表示实数,包括小数和科学计数法表示的数值。浮点数通常由两个部分组成:尾数和指数。尾数表示数值的大小,指数表示数值的范围。计算机通常使用IEEE浮点数标准来表示浮点数,其中单精度浮点数使用32位表示,双精度浮点数使用64位表示。
3. 什么是半导体存储器,常见的半导体有那些,有什么优点?
半导体存储器是一种电子数字存储器,它由半导体材料制成,用于在计算机中存储数据。半导体存储器相对于传统的磁性存储器(如硬盘、软盘)来说,具有更快的读写速度、更低的能耗和更小的体积。
常见的半导体存储器有: -
随机存取存储器(RAM):可以随机读写数据,速度非常快,但是它的数据在电源关闭后就会消失,因此需要不断地进行刷新来保持数据的有效性。
-
只读存储器(ROM):用于存储不需要修改的固定数据,如计算机的BIOS程序和启动代码等。
-
闪存存储器(Flash Memory):可以随机读写数据,与RAM类似,但它的数据可以在断电后保持不变,因此常用于存储操作系统、应用程序和用户数据等。
半导体存储器的优点是速度快、耗能低、可靠性高、体积小等,因此已经广泛应用于计算机、移动设备、数码相机等电子产品中。二思维导图




相关文章:
计算机基础书籍
一操作系统 二常见问题总结 1.操作系统的特征? 并发、共享、虚拟、异步性 2.进程阻塞与唤醒的条件 等待 I/O 操作完成请求系统资源失败等待信号量或事件等待子进程结束被高优先级进程抢占 3.如何避免死锁? 1、避免资源竞争 2、破坏循环等待条件 3、优…...
保龄球游戏的获胜者、找出叠涂元素----2023/4/30
保龄球游戏的获胜者----2023/4/30 给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。 保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 。 假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为: …...
jQuery事件
1. jQuery事件注册 单个事件注册 语法: element.事件(function(){}) eg:$(“div”).click(function(){ 事件处理程序 }) 其他事件和原生基本一致。比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等 <!DOCTYP…...
初识SpringCloud
一、软件架构演进 单体架构 垂直架构 分布式架构 SOA架构 微服务架构 二、微服务架构 2.1 微服务理念 "微服务”一词源 于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到http://martinfowler.com/articles/microservices.html微服务是系统架构上…...
安装java配置
目录 安装JDK 编辑 环境变量配置 3、检验环境变量配置 二、安装tomcat 验证Tomcat配置是否成功 三、安装Mysql 一、安装 二、卸载 四、安装Maven 安装JDK 点击更改将C直接给为F即可。 点击确定后进行安装,安装完以后会提示安装JRE; 检测是否已经安装JDK的…...
KBO的选秀会有哪些规定和流程`棒球7号位
KBO(韩国职业棒球联盟)的选秀会有以下规定和流程: 1. 选秀对象:KBO的选秀会主要面向年满18岁及以上的高中和大学生,以及海外球员和自由球员。KBO的球队可以在选秀会中挑选所需的球员,每个球队有一定数量的选…...
男子订民宿被毁约5个家庭漂泊街头 房东:住满了,没办法
据媒体报道,5月1日,一位叫做诸先生的消费者和朋友们提前在平台上预订了五一假期前往青岛金沙滩地中海两天的别墅民宿,并支付了房款9600元。 但是当他们到达目的地前一个半小时联系房东时,却发现联系不上人。到达指定地点后&#x…...
Vue快速入门,常用指令,生命周期
Vue常用指令 案例: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…...
【热门框架】Mybatis-Plus入门介绍看这一篇文章就足够了
MyBatis-Plus 是在 MyBatis 的基础上进行了封装,提供了更加便捷的开发方式,具有简化开发、提高效率等优点。以下是 MyBatis-Plus 的一些特点和用法: 通用 CRUD 操作:MyBatis-Plus 提供了通用的 CRUD 接口,可以直接调用…...
Node【Node.js 20】新特性
文章目录 🌟前言🌟Node.js 20: 一次重要的升级和改进🌟Internationalization API Update🌟端口管理器🌟字符串处理🌟 更好的调试工具🌟 Crypto模块的更新🌟总结🌟写在最后…...
前端程序员的职业发展规划与路线——ChatGPT的回答
文章目录 一、前端程序员的职业规划是?回答1: 作为一个前端开发程序员,您的职业发展路线可能如下:回答2:作为前端开发程序员,您的职业发展路线可能如下:回答3: 你的职业发展路线可能…...
AlgoC++第八课:手写BP
目录 手写BP前言1. 数据加载2. 前向传播3. 反向传播总结 手写BP 前言 手写AI推出的全新面向AI算法的C课程 Algo C,链接。记录下个人学习笔记,仅供自己参考。 本次课程主要是手写 BP 代码 课程大纲可看下面的思维导图 1. 数据加载 我们首先来实现下MNIST…...
【Java笔试强训 27】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥 不用加…...
java紫砂壶交易购物系统 mysql
网络紫砂壶可充通过色彩、图片、说明、设置动画加强了产品了宣传,大大达到了陶瓷业的“色型”要求。实现产品管理方便,起到立竿见影的效果,不用因为更改菜色而重新印刷。只要在后台鼠标轻轻一点,全线马上更新。采用B/S模式&#x…...
7-4 多态练习-计算面积
定义三个类,父类(抽象类)GeometricObject代表几何形状,子类Circle代表圆形,子类Rectangle代表矩形。具体属性和方法如下: 父类 (抽象类)GeometricObject 属性: private String color; private S…...
很佩服的一个Google大佬,离职了。。
这两天,科技圈又有一个突发的爆款新闻相信不少同学都已经看到了。 那就是75岁的计算机科学家Geoffrey Hinton从谷歌离职了,从而引起了科技界的广泛关注和讨论。 而Hinton自己也证实了这一消息。 提到Geoffrey Hinton这个名字,对于一些了解过…...
【Python习题集1】Python 语言基础知识
python习题 一、实验内容二、实验总结 一、实验内容 1、运用输入输出函数编写程序,将华氏温度转换成摄氏温度。换算公式:C(F-32)*5/9,其中C为摄氏温度,F为华氏温度。 (1)源代码: ffloat(input(输入华氏温…...
C语言进阶——数据在内存中的存储,你知道吗?
今天我们深度剖析数据在内存中的存储: 重点知识: 1、数据类型详细介绍 2、整形在内存中的存储:原码、反码、补码 3、大小端字节序介绍及判断 4、浮点型在内存中的存储解析 之前我们涉及关于这一部分的知识只是大致的进行讲解࿰…...
规则引擎----easy rules
一、规则引擎的作用 将复杂的if else判断剥离出来 二、使用 2.1、引入POM <!--easy rules核心库--><dependency><groupId>org.jeasy</groupId><artifactId>easy-rules-core</artifactId><version>3.3.0</version></depe…...
你手写过一把锁吗?你对轮询缓存怎么看?
当多个线程同时去操作一块内存的数据时如果不做一些限制,极其可能出现数据一致性问题。这时候,我们用一把锁锁住这块数据,持有钥匙者可以进入,不持有者等待钥匙用完再分配。所以在我看来啊,锁的本质就是一个标志位&…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
【UE5 C++】通过文件对话框获取选择文件的路径
目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
工厂方法模式和抽象工厂方法模式的battle
1.案例直接上手 在这个案例里面,我们会实现这个普通的工厂方法,并且对比这个普通工厂方法和我们直接创建对象的差别在哪里,为什么需要一个工厂: 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类: 两个发…...
