- 博客(109)
- 收藏
- 关注
原创 PV大题--专题突破
PV大题考查使用伪代码控制进程之间的同步互斥关系,它需要我们一定的代码分析能力,算法设计能力,有时候会给你一段伪代码让你补全使用信号量控制的操作,请一定不要相信某些人告诉你只要背一个什么模板,记住什么套路就能拿下这个大题,这是不切实际的!!在真题的考查中,题目是较为灵活的,需要我们临场分析,如果只要背一背就能拿满分没有区分度,那出题老头也没必要年年都考PV了对吧?
2024-09-30 20:14:20 890 1
原创 虚拟存储器“大观”,讲解核心逻辑知识和408大题方法
在408整个体系中计组和操作系统都有涉及,但是我希望同学们在学习这部分知识的时候,一定要在学习操作系统的时候去学习,至少你要先搞清楚基本分页存储管理的思想,否则你是没办法深入理解虚拟存储器的,不理解原理就更不要谈做对题目了,我希望大家不要考记忆、熟练度去做题,而需要真正的尝试去理解它,掌握本质,才能以不变应万变。我们想一下,我们之前只有页表的时候,是不是必须要去访存,因为页表在内存里,那么我们是否可以扩展一下思路,把页表的内容存储在一个更快更牛逼的存储器里,因此我们的快表就应运而生了。
2024-09-12 23:05:26 1179
原创 【数据结构 | 每日一题】图的概念辨析
考点分析:我们学习数据结构图的第一小节就是:图的基本概念,我们会发现图的概念非常多且有些概念之间又很像,而对于初学者来说,相比树的概念是不好理解的,很容易搞混,因此做了这么一个辨析带大家一起理解基础上进行一个记忆。首先我们先把图的概念,分一个大体的框架出来,我个人习惯把。相似的概念放在一起对比记忆,更容易抓住特性。连通图(这一块容易混淆,如极大、极小等概念):这个强仅仅是名字多一个“强”!顶点的度(记住两个公式)
2024-09-02 21:16:18 738 1
原创 【计组 | Cache原理】讲透Cache的所有概念与题型方法
1. **“块”**的概念:我刚刚说的大小相同的区域,在主存中叫作主存块,在Cache中叫作Cache块或Cache行(注意这两是一个东西,题目中给出块或者行都是OK的)。主存块的大小就等于Cache块的大小!!这是第一点需要我们铭记于心的,原理我刚刚已经说过了,就是方便交换数据。2. Cache的**数据结构**模型(重点看,有个记忆能画出来是最好的)
2024-08-31 20:50:15 1624
原创 【每日一题 | 组成原理 】 动态随机存储器DRAM
于是我们的行和列都可以用11位的数据表示,所以行列地址线的个数都是11根。又因为我们可以使用地址复用,用两个周期在相同的线路上读取列和行,所以我们实际用到的地址线个数是11根。再加上我们之前得到的数据线个数9根,总数就是19根,答案选A。【2014统考真题】某容量为256MB的存储器由若干4M*8位的DRAM芯片构成,该DRAM芯片的地址引脚和数据引脚的总数是()首先我们看到8位,说明数据线的个数是8根,剩下的就是求地址线的个数。8位,我们考虑行列一样的情况,可以得到2048。
2024-08-26 13:36:15 316
原创 【每日一题 | 数据结构 | 树的转换与遍历】
记住一个口诀:“左孩子,右兄弟”,如图所示节点的左指针指向第一个孩子,右指针指向其的兄弟(如果有多个兄弟依次串联)逻辑分析一下:森林中叶子结点是没有孩子的,用左孩子右兄弟方法来转化,转化为二叉树里面就没有左孩子了,类似:将每一棵树的根节点看作兄弟结点,然后通过**”左孩子,右兄弟“**的口诀进行转换。【2014统考真题】将森林F转换为对应的二叉树T,F中叶节点的个数等于()所有概念性题目,没有给出具体树的,都用枚举树发(化抽象为具体)的方法来做。对于森林的处理,一般会将森林转换为二叉树存储,与。
2024-08-24 13:21:55 622
原创 【 每日一题 | 计算机网络】定长子网划分
带符号的定点数表示方式有4种,分别是原码、反码、补码和移码,他们都由两部分组成,分别是符号位和数值位,这四种编码方式非常重要,要熟练掌握他们之间的转换和与真值间的转换。这里我们重点看一下补码:也就是说,补码是比其他编码可以多表示一位数据的,也就是可以取到最小值需要我们注意。接下来我们看补码溢出的判断方法,重点掌握以下三种:加减运算(最简单)正数+正数 = 负数负数+ 负数 = 正数判断最高进位和次高进位是否相同,如果不同就溢出。使用双符号位判断:补一个符号位做运算,如果两个符号位不同则溢出。
2024-08-20 21:09:26 517
原创 【每日一题 | 数据结构】压缩矩阵存储算法
本质上为了节约空间把二维数组压缩存储在一维数组里面的算法就叫压缩矩阵算法,而它又分为行优先和列优先两种方式,顾名思义行优先存储就是先行后列的思想:先存储行号比较小的元素,行号相等时先存储列号小的元素。首先明确,压缩矩阵存储算法是408考试中的重点、难点、高频考点,甚至曾经达成了连续五年考到程度,让同学们感到恐惧。我们看这个数组,所谓行优先就是从第一行开始存,如果学过线性代数可以把它看成一个三行三列的矩阵,依次存储行向量。那么好,有了基本的概念,我们来讲解这种题型的通法,我把它称为“画矩阵找关系法”。
2024-08-18 22:35:15 572
原创 计组第一章性能指标计算
我们理解了时钟周期是一个时间的概念,也就不难理解CPU的执行时间了,而后面的两个公式都只是使用CPI去表示时钟周期数,考试的时候做一个简单的推导即可。2)CPI(Clock cycle per Instuction):从英文去记住他,每条指令所需要的时钟周期数,与系统结构、指令集、计算机组织有关,1)主频f:也叫CPU时钟频率,指的是1s内时钟周期的个数,单位是赫兹,f=1/T。以上就是这一块需要理解的所有内容以及公式,掌握好这些足以应对所有计算题和概念题!3)CPU执行时间:最重要的一个概念!
2024-08-15 22:06:54 293
原创 【每日一题 | 组成原理】指令流水线的阻塞概念梳理
考点分析:在基本指令流水线的阻塞概念中数据冒险(最常考)、控制冒险(考频中等)、结构冒险(考频中等),累加起来计算在真题中出现的次数属于高频,一定要认真学习掌握,记住以下内容和结论。数据冒险指的是下一条指令用到了当前指令的计算结果但是当前指令结果还没有产生。控制冒险指的是转移或异常改变了指令的流程,顺序执行指令在目标地址产生前已经被取出(主要来自于时间偏差问题)其中动态预测成功率高,静态预测每次预测结构一样且如果预测错误,必须把错误的指令舍弃。解决方法:对转移指令进行预测,分为静态和动态预测。
2024-08-14 20:49:05 396
原创 【每日一题 | 组成原理】指令流水线
指令流水线的本质是提高指令执行的并行性与效率,对比单周期处理器一起学习。掌握下图的并行逻辑理解基础上记忆此公式:T= (m+n-1)* t,其中m为流水段个数,n为指令条数,t为分割时间。
2024-08-10 22:32:46 428
原创 【计算机组成原理】各种周期与字长的概念辨析
在计算机组成原理中,我们会在做题时遇到各种周期与字长的概念辨析题(非常重要),因此我们再次统一做一个梳理,帮助大家在理解的基础上进行记忆,并附上几道好题辅助理解。
2024-08-06 22:06:24 484
原创 计算机网络--网络层串讲
为什么要做这个串讲?因为我在学习408网络层的时候,看完机构的视频课感觉没有很好地将知识串联起来,便找到《图解网络》作为补充,且小林的讲解是我认为开源中较为通俗易懂的,因此我在学习过程中将精华部分记录下来加上自己的理解并录制这个串讲视频帮助自己理解知识点并分享给需要的同学,如果想深入学习还需要完整地去阅读小林的文字版,我相信你会有很大的收获的!
2024-08-03 13:54:29 1217
原创 【每日一题 | 组成原理】补码溢出判断
带符号的定点数表示方式有4种,分别是原码、反码、补码和移码,他们都由两部分组成,分别是符号位和数值位,这四种编码方式非常重要,要熟练掌握他们之间的转换和与真值间的转换。这里我们重点看一下补码:也就是说,补码是比其他编码可以多表示一位数据的,也就是可以取到最小值需要我们注意。接下来我们看补码溢出的判断方法,重点掌握以下三种:加减运算(最简单)正数+正数 = 负数负数+ 负数 = 正数判断最高进位和次高进位是否相同,如果不同就溢出。使用双符号位判断:补一个符号位做运算,如果两个符号位不同则溢出。
2024-08-01 19:26:02 500
原创 【每日一题 | 数据结构】循环队列
因此,基于这个特性,我们就可以用取模法来计算队列的最大长度等问题。核心:所有的循环队列的题,都使用“【每日一题 | 数据结构】循环队列。
2024-07-31 18:56:16 487
原创 AI 辅助研发趋势
2024年,随着AI技术的进一步成熟,AI辅助研发的趋势将更加明显,其潜力也将得到更广泛的挖掘和应用。通过AI技术的应用,研发效率得到提升,成本得到降低,复杂问题得到解决,科技进步得到推动。未来,随着AI技术的进一步发展,AI辅助研发的潜力将得到更广泛的发掘和应用,为人类社会的发展带来新的机遇和挑战。在研发领域,AI技术的应用也日益广泛,其强大的数据处理和模式识别能力使其成为研发人员的得力助手。随着AI技术的进一步成熟,AI辅助研发的潜力将得到更广泛的挖掘和应用。
2024-03-11 00:52:45 455 1
原创 LeetCode 80.删除有序数组中的重复项 II
本题考察大家对于数据结构中的数组的知识,以及基本的双指针思想,如果对此类题目足够熟悉的话,手撕是不成问题的,关键在于要多写多练。大家在刷题的时候,也可以按照数据结构或者算法来分类刷题,逐个击破,再去做一些综合题会效果更佳。
2024-03-11 00:47:47 292
原创 程序员是如何看待“祖传代码”的?
"祖传代码"通常是程序员之间戏谈的一个术语,用来描述那些古老、复杂、难以理解,但又非常关键且经常被使用的代码。这些代码通常是由前辈程序员编写,随着时间的推移,原始开发者可能已经离开,留下的代码却因为其稳定性和核心功能而被保留下来。
2024-03-03 17:25:20 400
原创 数据结构与算法期末考试大题题库
将顺序表中所有非零元素依次移到表的前端。【输入形式】第一行输入整数N表示表长;第二行输入N个整数,可包含零。【输出形式】输出将非零元素移到前端的表中元素,以空格作为分隔。【样例输入】62 0 -1 0 5 8【样例输出】2 -1 5 8 0 03.2 顺序表-递增插入设有递增有序顺序表,实现其插入元素后依然有序。【输入形式】第一行输入一个N(N不大于100);第二行输入N个整数(假设输入序列按照递增顺序,以空格分隔);第三行输入一个整数M(欲插入数据);【输出形式】输出插入M后的顺序表。【样例输入】51
2024-03-03 17:12:03 1505
原创 为什么要找实习以及如何更好地度过实习期
在职业发展的旅程中,实习是一个至关重要的阶段。不论是在大学生涯的尾声,还是在职场新人的起步阶段,寻找实习机会都是一项关键任务。然而,为什么要找实习?这个问题背后蕴含着更深层次的意义和价值。在这篇博客中,我们将深入探讨为何实习对个人和职业发展至关重要。在竞争激烈的职场中,找到一份理想的工作并不容易。而通过实习,我们不仅能够为自己积累宝贵的经验和技能,还能够在职场中站稳脚跟。实习是通向职业成功的桥梁,是迈向理想职业的必由之路。因此,让我们积极主动地去寻找实习机会,投身其中,开启属于自己的职业征程。
2024-01-15 22:02:36 1165
原创 企业级做项目的流程
我们平时在学校里做项目或者大作业的时候,基本上都是个人开发的,即使有小组一起开发,一般也不会遵守开发规范。最近入职一家企业开始实习,才发现开发规范竟然如此重要,因为与大家分享一下企业级做项目的流程,如果能严格按照这个流程执行,你已经从程序员摇身一变成工程师了!!企业级项目开发流程是一个系统化而严密的过程,旨在确保项目的成功交付、满足客户需求,并保证高质量的代码和可维护性。在整个流程中,良好的沟通、高效的团队协作以及持续的改进是至关重要的。
2024-01-15 18:24:50 518
原创 GitHub API使用--获取GitHub topic
GitHub API是一个功能强大的工具,为开发者提供了访问和操作GitHub平台上资源的途径。无论是构建个人工具,集成自动化流程,还是开发应用程序,GitHub API都提供了广泛的功能。本文将介绍如何使用GitHub API,以及一些常见的用例。GitHub API是基于RESTful风格的API,允许开发者通过HTTP请求访问GitHub上的资源。这些资源包括仓库(Repositories)、用户(Users)、问题(Issues)、分支(Branches)等。
2024-01-14 21:42:15 2990
原创 处理机调度与死锁
由于P2剩余进程时间是2个时间单位是要小于新来的P4进程4个时间单位的,因此先完成P2再去调度P4,而P1还剩5个时间单位,最后再调度。当 CPU 空闲时,操作系统就选择内存中的某个「就绪状态」的进程,并给其分配 CPU。优先选取运行时间最短的作业,如果时间一样则先来先服务。是「时间片轮转算法」和「最高优先级算法」的综合和发展。等待时间 = 周转时间(运行结束时间) - 运行时间。先算出周转时间 = 运行结束时间 - 到达时间。周转时间 = 运行结束时间 - 到达时间。先算出周转时间 = 运行结束时间。
2024-01-09 21:28:44 1008
原创 Java网络爬虫--HttpClient
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相比于java.net包中提供的 URLConnection 与HttpURLConnection,HttpClient 增加了易用性和灵活性。在 Java 网络爬虫实战中,经常使用 HttpClient 向服务器发送请求,获取响应资源。
2024-01-09 20:57:21 2091
原创 第一个Java网络爬虫程序
网络爬虫是一种获取互联网信息的技术,它可以模拟浏览器行为,访问网站并提取所需的数据。在这个小Demo中,我们使用Java语言结合HttpClient库实现了一个简单的爬虫程序,用于抓取汽车之家的车辆评测数据。在实际爬虫项目中,除了简单的HTTP请求,还需要处理页面解析、数据存储、反爬虫策略等问题。这个小Demo展示了如何使用Java进行基本的网络爬虫操作。值得注意的是,爬取网站数据需要遵循法律规定和网站的使用条款,以及尊重隐私权和知识产权。
2024-01-08 22:22:45 1268
原创 Java网络爬虫--概述与原理
和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。这两种类型的消息由一个起始行,一个或者多个头域,一个指示头域结束的空行和可选的消息体组成。
2024-01-08 22:13:38 1671
原创 Spring事务与分布式事务
事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提交,只要其中任一操作执行失败(出现异常),都将导致整个事务的回滚。简单地说,事务提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。一致性(Consistency)数据库总是从一个一致性的状态转换到另一个一致性的状态。
2023-11-13 17:48:50 841
原创 RESTful接口实现与测试
其实绝大多数的数据格式都不需要我们自定义HttpMessageConverter,都有第三方类库可以帮助我们实现(包括下文代码中的Excel格式)。但有的时候,有些数据的输出格式并没有类似于Jackson这种类库帮助我们处理,需要我们自定义数据格式。该怎么做?下面我们就以Excel数据格式为例,写一个自定义的HTTP类型转换器。实现的效果就是,当我们返回AjaxResponse这种数据类型的话,就自动将AjaxResponse转成Excel数据响应给客户端。引入依赖
2023-11-03 18:07:59 362 2
原创 分布式Session登录
想象一下你去一家咖啡店。你点了一杯咖啡,并且收银员给你一张小纸条,上面写着你的订单号码。你拿着这张小纸条,然后坐下来等待你的咖啡。当咖啡准备好后,服务员会根据你手上的订单号码找到你,并把咖啡送到你的桌子上。在这个例子中,订单号码就像是一个cookie。它是一个小的标识符,帮助咖啡店识别你的订单。当你拿着订单号码坐下时,咖啡店就知道你是谁,并准备好你的咖啡。这样,无论你是在咖啡店的哪个位置,他们都可以准确地为你提供服务。
2023-10-28 17:57:26 1105
原创 手写SDK的秘诀
SDK(Software Development Kit)即软件开发工具包,就是帮助我们开发出软件的工具集合,除了代码之外,一般还要搭配文档、示例等。一般 SDK 都是需要引入到项目中使用的。比如学 Java 的朋友最早接触的 JDK,就是用来开发 Java 软件的工具包,使用时需要编写 类似的语法来引入。此外,大部分的 SDK,都是需要通过人工或项目管理工具,将其文件下载到指定路径才能引入。好的 SDK 应该具有简单易用、通俗易懂、便于扩展、高效稳定等特点。
2023-10-24 17:46:02 278 2
原创 面向对象是一种艺术
本文详细地介绍了面向对象编程的基本概念和特性,以及类、对象、继承、封装和多态的具体定义和应用。通过这篇文章,读者可以深入了解面向对象编程的思想和方法,并能够运用它来解决实际问题。如果短时间内无法理解,真的没有关系,在写代码读优秀的代码的过程中慢慢理解这些概念,你一定会豁然开朗的!至于一些高级的面向对象的知识,比如设计原则、设计模式、抽象类等,这些在我们真正编程的时候很少会用到,等到你成为一名真正意义上的架构师,再去系统学习也不迟,作者水平有限,这里就不涉及了。
2023-10-17 19:45:36 136
原创 lambda表达式
/函数定义//通过创建对象调用函数大家应该对上面的代码的开发方式不感到陌生,这是经典OOP的实现样式。下面我们对上面的代码做一个修改,创建一个功能接口,并对该接口定义抽象方法。//抽象功能接口//通过参数传递功能接口在这篇文章中,我们详细介绍了Java中的Lambda表达式,并探讨了如何利用它们提高接口函数的实现效率和质量。Lambda表达式提供了一种简洁、灵活的语法形式,可以将代码块作为参数传递给方法,并以更简洁的方式编写函数式代码。
2023-10-01 00:41:56 190 1
原创 消息队列--必须掌握的两个基础模式
今天我们介绍了消息队列的两个消息模式,分别是:队列模式和发布-订阅模式。后续我们会介绍常见的MQ中间件的特性,现在打好基础即可。希望读者着重掌握发布-订阅模式,这对后续进阶的消息负载均衡,顺序消息等很关键。
2023-09-12 19:56:21 130
原创 消息队列--入门篇
生产者,就是消息的发送者。它会将消息发送给Broker。初始篇我们介绍了消息队列应该有的相关的组件和角色,当然还有很关键的队列,keys等概念,我们放到后面重点讲。通过本文的介绍,我们至少对其有了初步的印象,也清晰了各个组件大概的作用与消息的流转。后边我会带大家剖析消息队列的原理,清晰RocketMQ整体的运行流程。然后开始掌握基础和进阶的用法,怎么在项目中使用,以及面试常问的消息队列问题。
2023-09-10 16:37:53 107
原创 《消息队列》专栏介绍
简单来说,消息队列是一种允许应用程序之间异步通信的机制。它通过解耦生产者和消费者之间的直接依赖关系,实现了高度可扩展性和灵活性。消息队列的工作原理很简单:生产者将消息发送到队列中,然后消费者从队列中获取消息并进行处理。这种异步的方式允许生产者和消费者在不需要实时交互的情况下进行独立的操作。这种解耦能力使得消息队列在许多场景下非常有用,例如在分布式系统中进行任务处理、流量控制、日志收集和系统解耦等。未来详细讲解各种场景的使用。通俗易懂一些,消息队列就是存储消息的队列。
2023-09-08 22:02:16 346
原创 剑指Offer 18. 删除链表的节点
通过这种递归的方式,我们可以实现对链表的删除操作,每次处理一个节点,并连接剩余的链表。递归会不断地处理链表中的每个节点,直到链表末尾为止。在解决链表相关的问题时,递归是一种常见的解决方法。在本题中,通过观察题目要求,我们需要删除链表中与给定值相等的节点。删除链表中所有与该值相等的节点,并返回删除节点后的新链表。这段代码是一个删除链表节点的方法,根据给定的值。
2023-08-27 13:57:38 114
原创 《深入理解计算机操作系统》
本章详细介绍了虚拟化和云计算的概念、原理和关键技术。虚拟化技术通过创建虚拟的资源层,实现了资源的高效利用和灵活分配。虚拟机管理器是实现虚拟化技术的关键组件,负责对物理资源进行管理和分配。云计算则通过提供计算资源、存储资源和服务资源,实现了按需使用的方式。容器化技术和微服务架构则是云计算中的重要组成部分。虚拟化和云计算技术的发展为操作系统带来了新的机遇和挑战。操作系统通过实现虚拟化技术和应用云计算的关键技术,提供了更好的服务和性能,满足了用户对计算资源的需求。
2023-08-24 21:56:29 334
mysql进阶知识以及面试常考知识
2023-08-27
使用java编程语言编写 基于SSM的图书管理系统
2023-08-27
使用java编程语言实现的基于SSM的会议预约系统
2023-08-27
yolov5 车道线识别 pt模型
2023-04-07
面试小抄第二版暗黑.rar
2023-04-07
chatgpt终极指南
2023-04-04
关于人工智能车道线识别的数据集,包含以及标注好的json文件
2023-03-19
图书管理系统,包含很多功能 ,sql语句,以及详细的文档设计分析
2023-03-19
python基础课件.pdf
2023-03-19
chatgpt调教身份指令
2023-03-18
数据库之必学Mysql知识点集合
2023-03-06
算法与数据结构入门的基础算法,必须熟练写出,是一些竞赛常考的模板
2023-02-18
html css js写一个元旦倒计时代码动态页面
2022-12-14
基础的html css js完成的期末大作业
2022-12-13
基础的html css js完成的期末大作业
2022-12-13
用python内置库绘制的圣诞树代码
2022-12-12
用java 完成的图书管理系统,可以作为大作业
2022-12-12
vue+vite+vant
2022-12-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人