JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)
目录
冯诺依曼体系(Von Neumann Architecture)
CPU
CPU基本原理:
如何衡量CPU的好坏?
1、主频(时钟速度):
2、核心数:
指令
操作系统
操作系统“内核”
冯诺依曼体系(Von Neumann Architecture)
冯·诺伊曼体系(Von Neumann Architecture),也称为存储程序计算机或冯·诺伊曼结构,是一种计算机架构和设计原则,于20世纪40年代由匈牙利数学家和计算机科学家约翰·冯·诺伊曼(John von Neumann)提出。这种体系结构成为了现代计算机体系结构的基础,它在计算机硬件和软件的设计中起到了关键作用。
一台计算机是如何组成的?
1. 中央处理器(CPU):
- CPU 是冯·诺伊曼体系中的核心部分,负责执行计算机程序的指令。它包括算术逻辑单元(ALU)和控制单元(Control Unit)。
- ALU 执行算术和逻辑运算,控制单元负责指令的解码和执行。
2. 存储器(Memory):
- 存储器用于存储程序和数据。冯·诺伊曼体系中的存储器是统一的,即程序指令和数据都存储在同一内存中。
- 存储器分为主存储器(RAM,Random Access Memory)和辅助存储器(通常是硬盘或固态硬盘),主存储器用于临时存储程序和数据,而辅助存储器用于长期存储和备份。具体来说:
-
内存(主存储器):内存是计算机中的主要临时存储设备,用于存储正在运行的程序和数据。它是冯·诺伊曼体系中的一部分,用于存储程序指令和处理数据。内存是非常快速的,但它是易失性存储器,意味着当计算机断电时,存储在内存中的数据会丢失。
-
外存储器(辅助存储器):外存储器用于长期存储数据和程序,通常包括硬盘驱动器、固态硬盘、光盘、闪存驱动器等。外存储器的特点是容量大且数据持久存储,即使计算机断电,数据也不会丢失。然而,与内存相比,外存储器的访问速度较慢。
-
由此,我们可以对内存和外存进行比较:
内存 速度快 空间小 成本高 掉电后数据丢失 外存 速度慢 空间大 成本低 掉电后数据步不丢失
3. 控制单元(Control Unit):
- 控制单元负责解释和执行存储在内存中的程序指令。它从主存储器中获取指令,解码指令并发出相应的操作,控制CPU的操作。
- 控制单元还负责协调CPU、存储器和输入/输出设备之间的数据传输。
4. 输入/输出设备(I/O Devices):
- 输入/输出设备允许计算机与外部世界交互,包括键盘、显示器、鼠标、打印机、硬盘驱动器等。
- 这些设备通过输入和输出端口与计算机连接,允许数据的输入和输出。
5. 系统总线(System Bus):
- 系统总线是连接CPU、存储器和输入/输出设备的通信通道。它传输数据、地址和控制信号。
- 系统总线通常分为数据总线、地址总线和控制总线。
特点和工作原理:
- 冯·诺伊曼体系的关键特点是程序存储和数据存储的统一性。程序指令和数据都以二进制形式存储在内存中,CPU能够根据需要将程序指令加载到控制单元,执行程序,并将结果存储回内存。
- 冯·诺伊曼体系支持存储程序的概念,这意味着计算机可以存储和执行不同的程序,而不仅仅是硬连线的功能。
- CPU通过不断循环的取指令、解码指令、执行指令的过程来执行程序。这个过程被称为 "冯·诺伊曼周期"。
- 冯·诺伊曼体系的设计具有通用性和灵活性,因此它支持各种类型的应用程序和计算任务。
- 冯·诺伊曼体系的设计启发了计算机科学的发展,包括计算机硬件和软件的设计、编程语言的发展等。
冯·诺伊曼体系是一种经典的计算机体系结构,它是现代计算机体系结构的基础,并且在计算机科学和工程中具有广泛的应用。这个体系结构的灵活性和通用性使其成为处理各种计算任务的理想选择。
CPU
CPU基本原理:
微处理器:CPU通常由一个或多个微处理器芯片组成,每个芯片包含一些逻辑单元,如算术逻辑单元(ALU)和控制单元,以及缓存存储器。
关于这里,我们可以拓展一些很有意思的知识~
CPU通过大规模量产来降低成本,它升级换代的速度非常快每一代CPU出来,技术提升都蛮大的,这就又使得旧版本的CPU价格大幅度降低。Intel 目前应该到第13代了,AMD 也到7000系列。
不同的CPU型号和系列可以在性能、功耗、价格等方面有所不同。市面上最主要的CPU应该
是Intel和AMD的系列。
Intel CPU系列:
我们经常会听到“我的CPU是 i5 的”这种话,这是怎么来的?Intel 的CPU给服务器使用的叫“志强”,家用的叫“酷睿”,给嵌入式低功耗设备使用的叫“赛扬”……
家用的“酷睿”是分代数,目前最新的是13代,这里面又分不同的产品,就是我们的“ i3 ”、“ i5 ”等。
Intel Core i3:
- Intel Core i3系列通常是入门级CPU,适用于一般办公和基本计算任务。
- 它通常具有双核或四核设计,相对较低的时钟速度和较小的缓存。
- 适合轻度多任务和基本游戏。
Intel Core i5:
- Intel Core i5系列是中端CPU,具有更好的性能和多任务处理能力。
- 它通常具有四核或六核设计,较高的时钟速度和更大的缓存。
- 适合一般多任务、娱乐和一些轻度内容创作。
Intel Core i7:
- Intel Core i7系列是高端CPU,具有出色的性能和多核处理能力。
- 它通常具有六核或更多核心,更高的时钟速度和更大的缓存。
- 适合专业的内容创作、游戏和多任务处理。
Intel Core i9:
- Intel Core i9系列是顶级CPU,具有最强大的性能和多核处理能力。
- 它通常具有八核或更多核心,非常高的时钟速度和大缓存。
- 适合专业级内容创作、游戏和高度计算密集型任务。
但是13代的 i5 性能一般来说是大于12代的 i7 的。所以关键是代数。
AMD CPU系列:包括家用的锐龙和服务器用的霄龙
AMD Ryzen 3:
- AMD Ryzen 3系列类似于Intel Core i3,适用于入门级用户和基本计算任务。
- 通常具有四核设计,适合日常办公和轻度多任务处理。
AMD Ryzen 5:
- AMD Ryzen 5系列类似于Intel Core i5,适用于中端用户和一般计算任务。
- 通常具有四核或六核设计,具有良好的性能和多任务处理能力。
AMD Ryzen 7:
- AMD Ryzen 7系列类似于Intel Core i7,适用于高端用户和多任务处理。
- 通常具有六核或八核设计,具有强大的性能和多核能力。
AMD Ryzen 9:
- AMD Ryzen 9系列类似于Intel Core i9,适用于专业级用户和高度计算密集型任务。
- 通常具有八核或更多核心,非常强大的性能和多核处理能力。
以上CPU价格差别会很大,这是因为CPU的加工涉及到“良品率”的概念:
CPU芯片内部包含大量的晶体管和其他微观结构,这些结构必须精确制造。制造过程非常复杂,包括多个工艺步骤,如光刻、离子注入、蚀刻等。CPU内部非常精密的结构中存在大量的计算单元。每个计算单元的体积都极小,给加工制造(光刻机)带来非常大的困难。任何一个步骤出现问题都可能导致芯片的缺陷。所以制造的CPU上的计算单元不可能全都是好的。在某些情况下,芯片上的计算单元可能存在缺陷,但其他部分仍然正常工作,此时,制造商可以通过屏蔽掉缺陷的计算单元来使芯片仍然可用,这就是一些CPU在同一系列中性能不同的原因之一。
由于制造过程中可能存在不同程度的缺陷,CPU制造商会对芯片进行测试和分类。根据测试结果,芯片可以被分为不同的等级或系列。通常,高端系列(如Intel的i7和i9)包括更多的良品,而低端系列(如i3)可能包括较少的良品。
Intel 的联合创始人兼副总裁、半导体工业先驱戈登·摩尔(Gordon Moore)于1965年提出了一条细思极恐的定律——“摩尔定律(Moore's Law)”,这一定律预言了半导体技术的发展趋势。
具体来说,摩尔定律表明:
每隔约18至24个月,集成电路上可容纳的晶体管数量将翻一番,而价格将大致保持不变,性能也将提高。
简而言之,半导体器件(如CPU和内存芯片)的集成度每隔一段时间会翻倍,同时成本大致不变。这意味着芯片的性能将不断提高,而成本将相对稳定,这种趋势持续了几十年。
摩尔定律的重要性在于它推动了半导体工业的快速发展和技术进步。随着晶体管数量的增加,计算机性能也不断提升,这使得计算机变得更加强大、小型化和价格更加实惠。这对于
计算机科学和信息技术产业产生了深远的影响,推动了数字革命。
然而,随着时间的推移,摩尔定律所描述的晶体管数量的指数增长面临着物理限制和技术挑战(由此可见基础物理的重要性),因此在近年来,人们开始质疑摩尔定律是否仍然成立。尽管如此,摩尔定律仍然是计算机科学和半导体领域中的一个重要概念,它在过去几十年中塑造了整个行业,并推动了计算机技术的革命性进步。
指令集架构:CPU执行的指令集架构定义了CPU支持的指令集合,例如x86、ARM等。不同的架构具有不同的指令集和寻址方式。
时钟速度:CPU的时钟速度(也称为时钟频率)表示CPU每秒执行的时钟周期数。时钟速度通常以赫兹(Hz)为单位表示,例如1 GHz表示每秒执行10^9次时钟周期。
多核处理:现代CPU通常具有多个核心,每个核心都可以独立执行指令,从而提高了计算性能。多核处理器可以执行多个任务或线程,加快多任务处理。
如何衡量CPU的好坏?

我们这里最关注的指标有两方面:
1、主频(时钟速度):
主频是CPU时钟的频率,通常以赫兹(Hz)表示,如千兆赫兹(GHz)。
主频影响了CPU每秒钟执行时钟周期的数量,因此通常被认为是衡量CPU速度的指标之一。
更高的主频通常意味着更快的单核性能,适用于单线程任务和单核应用程序。
如图2.80GHz,这里你可以理解为这个CPU一秒钟可以执行28亿条指令。但是,现在的CPU主频都是在时刻改变的,它会根据当前任务的负载程度动态变化。打开我们的任务管理器:

这上面就提到当前的速度是2.70GHz,而且它还在不停的变化。我们把这个当前的频率叫做“睿频”,它也有上限,不同的CPU上限不一样,约好的CPU上限越高,甚至有的CPU还可以超频,也就是说给它更高的电压、更多的电,它就有更强的表现。
2、核心数:
核心数表示CPU内部有多少个物理或逻辑核心,每个核心都可以独立执行指令。
多核CPU可以同时处理多个任务,因此在多任务处理和多线程应用程序中具有优势。
更多的核心通常意味着更好的多核性能,适用于并行处理任务,如视频编辑、科学计算、虚拟化等。但并不是所有应用程序都能够充分利用多核处理器,对于某些单线程或单任务应用,核心数的增加可能不会显著提高性能。
最开始CPU都是单个核心的(核心就可以理解成一个能完整计算功能的整体,是有很多的计算单元构成的)。在核心数还是单核心的时候,我们通过提高集成程度来提升CPU的速度。
随着时代的发展,随着集成程度的提高,我们发现进一步提高越发困难。因为你需要去再减小单个计算单元的体积,这势必就会增大工艺的难度。当体积小到一定的程度的时候,经典力学就失效了,我们来到量子力学的领域……所以就像《三体》里说的那样,基础物理限制了我们的工艺水平。
那这个时候怎么办?我们只好增加核心数量。

像我这台电脑就有4个内核。等等?后面的逻辑处理器是啥?
emmmm,我们可以这样理解,这台电脑的物理核心有4个,逻辑核心有8个。

简单来说,物理核心就是我们CPU上面焊上去的核心,逻辑核心则是利用了所谓的超线程技术,使物理核心一个顶俩~
像是13代的 Inter CPU有一个大小和技术,大核相当于两个核心,小核就是一个核心,大核和小核相互转换,在能耗和性能之间做一个均衡,以此提高移动设备和笔记本电脑的续航时间,并在需要时提供足够的性能。
大核心是针对高性能任务而设计的。它们通常具有更高的主频、更多的缓存和更多的计算资源,以处理计算密集型任务,如游戏、视频编辑和虚拟机操作等,小核心是针对低功耗和轻型任务而设计的。它们通常具有较低的主频和较少的计算资源,但非常省电。小核心通常用于处理日常任务,如浏览网页、观看视频、办公应用程序等。
CPU可以根据工作负载的要求动态切换大核心和小核心。当需要高性能时,大核心被激活,而在轻负荷或需要更低功耗时,小核心被激活。这种切换是透明的,用户通常无需干预。这样就节省了电量。消耗的电越多,发热量越大,所以很多笔记本都会用低压CPU来降低功耗来降低发热效果。
这也就解释了为什么游戏本都是特别笨重的,因为它电源功率大,体积大,本体需要更大的散热空间。性能提高-->散热增加-->便携降低。
美国人对我们的芯片领域“卡脖子”主要卡的就是CPU,国内心啊在大力发展CPU,最新的已经能达到 Intel 10 代的水平了,相当于美国2020年的时候。
指令
指令(Instruction)是计算机中用于指导CPU执行操作的基本命令。每条指令都包含操作码(Opcode)和操作数(Operand)两个主要部分,用于告诉CPU要执行的操作以及操作的数据。
一个CPU设计的时候就会提供一些可以进行操作(支持哪些指令),比如加法指令、读取内存条指令、条件判定指令、函数调用指令等等。
指令是CPU上能够执行的任务的最小单元。这些最小单元都是由二进制的方式来表示的——机器语言。
以下是指令的主要组成部分:
1. 操作码(Opcode):
操作码是指令中的一部分,用于标识要执行的操作类型。操作码通常以二进制或十六进制编码表示,不同的操作码对应不同的指令,如加法、减法、乘法、除法等。
操作码告诉CPU要执行的具体操作,以及操作数的来源和目标。
2. 操作数(Operand):
操作数是指令中的另一部分,它包含要操作的数据或数据的地址。操作数可以是内存中的地址、寄存器的编号、立即数(常数)等。
操作数指定了指令要处理的数据,例如,在加法指令中,操作数可以是要相加的两个值的地址或寄存器编号。
指令通常以二进制形式存储在计算机的内存中,CPU会逐条从内存中读取指令并执行它们。指令集架构(Instruction Set Architecture,ISA)定义了特定计算机体系结构支持的指令集合,以及每个指令的操作码和操作数格式。
不同的计算机体系结构具有不同的指令集,例如x86体系结构、ARM体系结构等,它们的指令集和指令格式可能有所不同。也就是说,不同的CPU支持的指令/机器语言是不相同的。注意,这里的不同指的是架构不同!比如家用的计算机和服务器都基本用的 X86 系列(8086系列衍生出来的),手机(苹果M1/M2芯片、嵌入式设备)用的基本使 arm 系列,功耗低,性能也会略低。
编程人员使用汇编语言或高级编程语言来编写程序,这些程序被编译成特定计算机体系结构的机器码,包括操作码和操作数,以便CPU执行。
总之,指令是计算机中用于执行操作的基本命令,由操作码和操作数组成,用于告诉CPU如何进行计算和处理数据。不同的计算机体系结构支持不同的指令集,这些指令集定义了可用的指令和其操作方式。
操作系统
操作系统(Operating System,简称OS)是计算机系统中的关键软件组件,它负责管理和控制计算机的硬件资源,并为用户和应用程序提供一个统一的、友好的界面,以便进行操作和执行任务。
常见的操作系统有Windows 10、Windows 11、linux、mac os、android、ios等,这些操作系统本质上都是用来搞管理的软件:对下管理所有的硬件设备(硬件设备还需要同时提供一个驱动程序,方便操作系统完成对其的控制),对上要给软件提供稳定运行环境(进程的隔离性——一个计算机上可以同时运行多个程序,这些程序各自独立运行,不会相互干扰,否则如果某个程序出现bug,就直接导致系统重启后者其他程序也崩溃)。

操作系统的相关功能:
-
硬件管理:
- 操作系统负责管理计算机的硬件资源,包括中央处理器(CPU)、内存、硬盘、输入输出设备(如键盘、鼠标、显示器)、网络接口等。
- 它分配和调度CPU时间,确保多个程序可以共享计算资源,同时避免冲突和资源竞争。
-
文件系统管理:
- 操作系统提供文件系统,用于组织、存储和检索文件和数据。它负责文件的创建、删除、复制、移动、重命名和保护。
- 文件系统管理还包括磁盘空间的分配和回收。
-
用户界面:
- 操作系统提供用户与计算机交互的界面。这可以是命令行界面(CLI),图形用户界面(GUI)或其他类型的界面。
- 用户界面使用户能够运行程序、管理文件、配置系统设置等。
-
进程和任务管理:
- 操作系统管理运行在计算机上的进程和任务。它分配CPU时间片、处理进程间通信、维护进程状态信息等。
- 操作系统确保多任务处理的有效性,允许多个程序同时运行。
-
安全性和权限管理:
- 操作系统负责确保计算机系统的安全性。它通过访问控制和身份验证来保护系统和数据不受未经授权的访问。
- 操作系统为每个用户和程序分配权限,并监控其活动以检测和防止恶意行为。
-
设备驱动程序管理:
- 操作系统提供设备驱动程序,允许计算机与硬件设备进行通信。这包括键盘、鼠标、打印机、网络适配器等。
- 设备驱动程序允许应用程序与硬件设备进行交互,而无需了解硬件的底层细节。
-
资源分配:
- 操作系统负责分配有限的资源,如CPU时间、内存和硬盘空间,以确保最高的系统性能和资源利用率。
操作系统“内核”
-
内核(Kernel):一个操作系统 = 内核 + 配套的应用程序
- 内核是操作系统的核心组成部分,它是操作系统的主要执行引擎。内核负责管理和控制计算机的硬件资源,执行各种系统服务和操作。
- 内核包括诸多关键组件,如进程管理、内存管理、文件系统管理、设备驱动程序、安全性管理等。它提供了一组API(应用程序接口),允许应用程序与硬件进行交互和利用操作系统的功能。
-
用户态(User Mode):
- 用户态是指应用程序运行的环境。在用户态中,应用程序执行自己的代码,但不能直接访问或操作计算机的底层硬件资源。
- 大多数应用程序在用户态下运行,包括办公软件、游戏、浏览器等。它们依赖操作系统的服务来执行文件操作、网络通信、图形显示等任务。
-
内核态(Kernel Mode):
- 内核态是指操作系统内核运行的特权级别。在内核态下,操作系统可以直接访问和控制计算机的硬件资源,执行特权指令。
- 内核态用于执行操作系统的核心功能,如设备驱动程序、中断处理、内存管理等。只有在内核态下,操作系统才具有足够的权限来执行这些任务。
-
操作系统的结构:
- 操作系统通常由内核和用户空间应用程序组成。内核位于操作系统的核心,负责管理硬件和提供系统服务。用户空间应用程序则是用户直接交互的程序,它们在用户态下运行,通过操作系统的API访问内核功能。
一个程序在运行过程中可能是在内核态工作,也可能是指用户态工作。
总之,内核是操作系统的核心部分,负责管理和控制计算机的硬件资源,为应用程序提供支持。用户态是应用程序运行的环境,而内核态是操作系统内核运行的特权级别,用于执行操作系统核心功能。操作系统的结构包括内核和用户空间应用程序,二者协同工作以提供完整的计算机系统功能。
相关文章:
JavaEE初阶(1)(冯诺依曼体系、CPU、CPU基本原理、如何衡量CPU的好坏?指令、操作系统、操作系统“内核”)
目录 冯诺依曼体系(Von Neumann Architecture) CPU CPU基本原理: 如何衡量CPU的好坏? 1、主频(时钟速度): 2、核心数: 指令 操作系统 操作系统“内核” 冯诺依曼体系&#x…...
记录在yapi上传接口的问题
sorry ,upload api error cause:请求参数 data.path 不应少于 1 个字符 自己在写的代码中使用到了DeleteMapping DeleteMapping("/deleteCart/{skuId}")public Result deleteCart(PathVariable Long skuId,HttpServletRequest request){报上面的错误,原因…...
DevOps管理软件生命周期
整体的软件开发流程 PLAN:开发团队根据客户的目标制定开发计划 CODE:根据PLAN开始编码过程,需要将不同版本的代码存储在一个库中。GIT,SVN BUILD:编码完成后,需要将代码构建并且运行。MAVEN TEST:成功构建…...
快速解决 adb server version doesn‘t match this client
这个问题是由于电脑上安装了多个版本的adb工具,客户端和服务端的版本不一致,无法正常通信导致。最快的解决方法就是将Android SDK中adb复制到系统目录下。 操作步骤如下: 1. 查看adb版本和路径 执行adb version,如下࿰…...
【更新至2022年】2000-2022年全国31省市以2000年为基期的实际GDP、名义GDP、GDP平减指数数据(含原始数据+计算过程+计算结果)
2000-2022年31省市名义GDP 实际GDP GDP平减指数 1、时间:2000-2022 2、范围:31省市 3、来源:GJ统计J和统计NJ 4、指标:名义GDP、地区生产总值指数(上年100)、实际GDP(以2000年为基期&#x…...
【LeetCode】剑指 Offer <二刷>(5)
目录 题目:剑指 Offer 10- II. 青蛙跳台阶问题 - 力扣(LeetCode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 11. 旋转数组的最小数字 - 力…...
rtsp 拉流 gb28181 收流 经AI 算法 再生成 rtsp server (一)
1、 rtsp 工具 1 vlc 必备工具 2 wireshark 必备工具 3 自己制作的工具 player 使用tcp 拉流,不自己写的话,使用ffmpeg 去写一个播放器就行 4 live555 编译好live555, 将live555的参数修改以下,主要是缓存大小 文章使用c 来写一…...
Jmeter系列-环境部署、详细介绍、安装目录介绍(1)
环境部署 官网下载Jmeter http://jmeter.apache.org/下载最新版本的 JMeter,解压文件到任意目录 安装JDK,配置Java环境 1、下载(注意选择操作系统对应的位数32/64) 官网 :http://www.oracle.com 2、安装࿰…...
更换 yum 阿里源 - 手把手教你怎么配置,在也不需要求别人了 - 看懂一个就相当于看懂了其他的linux系统
更换阿里源 我的是centos8 当然 centos7 也可以换 后面有更详细的怎么配 ,再也不用求别人怎么弄了 最直接的方式 直接复制 执行 centos7 curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo或者 wget -O /etc/yum.repos.…...
966SEO扫地僧站群·万能HTML模板[V1.9.1]
扫地僧站群万能HTML模板是一款站点管理软件,其主要特点是可以将原始的html模板放入程序中,无需编写任何标签,程序会全自动替换处理,从而快速构建出一个完整的网站,这种模式相对于传统的网站建设方式更加快速、简单,同时可以大幅度降低网站建设的成本和难度.服务器及域名量的配置…...
angular:html2canvas对ion-avatar节点渲染不正确
问题: 如题 解决办法: 简单实现头像遮罩 <div class"ion-avatar" style"width: 40px; height: 40px; border-radius: 50%; overflow: hidden"><img src"" alt""/> </div><style>.ion-…...
使用dockerfile文件部署Python+PyWebIO项目
1、安装docker 教程详见之前的内容。https://blog.csdn.net/weixin_44691253/category_12101661.html 2、打包好Python项目 之前的文章中有提到我编写测试工具使用的框架:PythonRequestsPyWebIO框架详解,编写测试工具提高团队测试效率 打包项目时&am…...
【web开发】5.Mysql及python代码执行数据库操作
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、MYSQL二、MySQL管理查看已有数据库创建数据库删除数据库进入数据库创建表删除表展示表的行列插入数据查看表中的数据删除数据修改数据 三、python代码执行数据库…...
Android学习之路(13) Handler详解
1. 简介 Handler是一套 Android 消息传递机制,主要用于线程间通信。 用最简单的话描述: handler其实就是主线程在起了一个子线程,子线程运行并生成Message,Looper获取message并传递给Handler,Handler逐个获取子线程中的Message.…...
介绍一些开发用到的工具
Sourcetree :Git 界面操作工具,真心好用 uTool:效率工具平台,可以了解一下,提供了很多强大的工具,加强了对电脑的操作 MobaXterm:带有 X11 服务器、选项卡式 SSH 客户端、网络工具等的增强型 Wi…...
【笔试真题记录】2023滴滴编程第二题
题目: 现在有n个由大写英文字符组成的字符串,且这些字符串不会互相包含,也不会相等。现在想知道有哪些字符串满足如下条件。设满足条件的字符串为S,存在其他的两个字符串拼接在一起后,能通过去除一个非空前缀和一个非空…...
中国ui设计师年终工作总结
一、萌芽阶段 记得初次应聘时,我对公司的认识仅仅局限于行业之一,对UI设计师一职的认识也局限于从事相对单纯的界面的设计创意和美术执行工作。除此之外,便一无所知了。所以,试用期中如何去认识、了解并熟悉自己所从事的行业&…...
CSS 滚动驱动动画 scroll()
CSS 滚动驱动动画 scroll() animation-timeline 通过 scroll() 指定可滚动元素与滚动轴来为容器动画提供一个匿名的 scroll progress timeline. 通过元素在顶部和底部(或左边和右边)的滚动推进 scroll progress timeline. 并且元素滚动的位置会被转换为百分比, 滚动开始被转化为…...
基于Java+SpringBoot+Vue前后端分离在线考试系统设计和实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...
nvm管理多个版本的nodejs
1. 已经安装过nodejs在安装nvm的步骤 1.安装nvmhttps://github.com/coreybutler/nvm-windows/releases 2.nvm安装位置 2.nvm管理的nodejs安装位置 4.最终的安装结构 备注:nodejs安装 2.使用nvm安装管理nodejs 2.1配置下载镜像: 找到nvm安装路径…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...
Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...
大数据驱动企业决策智能化的路径与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:数据驱动的企业竞争力重构 在这个瞬息万变的商业时代,“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...

