当前位置: 首页 > news >正文

C++专业面试真题(1)学习

TCP和UDP区别

TCP

  1. 面向连接。在传输数据之前,通信双方需要先建立一个连接(三次握手)。
  2. 可靠性。TCP提供可靠的数据传输,它通过序列号、确认应答、重传机制和校验和等技术确保数据的正确传输。
  3. 数据顺序:TCP保证数据按发送书序到达接收端。即使数据包在传输过程中拆分和重组,接收端也会按正确顺序组装数据。
  4. 流量控制:TCP 提供流量控制机制,通过滑动窗口协议调整数据传输速率,防止发送端过快发送数据而导致接收端处理不过来。
  5. 拥塞控制:TCP 包含拥塞控制机制,避免网络拥塞,保证网络资源的有效利用。

在这里插入图片描述

TCP三次握手

第三次是必须的,为了防止已经失效的连接请求报文突然又传送给服务端,然后发生错误、
TCP三次握手是建立可靠连接的过程,包括:

  1. 客户端向服务端发送连接请求报文段,包含自身数据通讯初始序号,进入SYS_SENT状态。
  2. 服务器收到连接请求报文段后,如果同意,发送应答,包含自身数据通讯初始序号,进入SYN-RECEVICED状态。
  3. 客户端收到应答,最后向服务器端发送确认报文,进入ESTABISHED状态,此时成功建立长连接。

TCP四次挥手是关闭连接的过程:

  1. 客户端希望关闭连接,发送一个FIN包给服务器,表示数据发送完毕,不再发送数据。这时客户端进入FIN_WAIT_1状态。
  2. 服务器收到FIN包后,发送一个ACK包给客户端,表示确认收到客户端的FIN包,这个包包含对客户端FIN包的确认序列号。服务器进入CLOSE_WAIT状态,客户端收到这个ACK包后进入FIN_WAIT_2状态。
  3. 服务器希望关闭连接,发送一个FIN包给客户端,表示数据发送完毕,不再发送数据。服务器进入LAST_ACK状态。
  4. 客户端收到服务器的FIN包后,发送一个ACK包给服务器,表示确认收到服务器的FIN包,包括确认序号。客户端进入TIME_WAIT状态,等待一段时间(通常是两倍的最大段寿命,MSL),确保服务器收到ACK包后在进入CLOSED状态。
  5. 服务器收到ACK包后,立即进入CLOSE状态,连接正式关闭。

delete和free的区别

  1. delete是操作符,而free是函数
  2. delete用于释放new分配的空间,free用于释放mallo、calloc、realloc分配的空间
  3. delete会调用对象的析构函数,free不会
  4. 调用delete之前不用检查指针是否为空,调用free时需要检查

什么是面向对象

面向过程思想
完成一个需求的步骤:首先搞清楚做什么,然后分析怎么做,最后在通过代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,从而完成需求。在上面的每一个具体步骤中我们都是参与者,并且需要面对具体的每一个步骤和过程,这就是面向过程最直接的体现。

面向过程编程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能函数相互调用,完成需求。

面向对象思想
面向对象的思想是尽可能模拟人类的思维方式,使得软件的开发方法与过程尽可能接近人类认识世界。

面向对象以对象为核心,该思想认为程序由一系列对象组成。是一种更符合人类思维习惯的思想,可以将复杂的问题简单化。

  • 封装:将事务的属性和行为封装在一起,也就是C++中的类,便于管理,提高代码的复用性。事物的属性和行为分别对应类中的成员变量和成员方法。
  • 继承:通过继承父类的属性和方法实现代码的重用和扩展。
  • 多态:多个子类可以通过继承同一个父类,并以不同方式实现父类的同一方法,从而使得同一个接口可以调用不同的实现。

C++的重载和重写

重载

  1. 重载指不同的函数用相同的函数名,但是参数的类型、个数或顺序不同(参数列表不同)。调用的时候根据函数的参数来区别不同的函数,函数重载跟返回值无关。
  2. 重载的规则——函数名相同——参数列表不同
  3. 重载用来实现静态多态
  4. 重载是多个函数或同一个类中的方法,是平行关系。

重写

  1. 重写也叫覆盖,是指在派生类中重新对基类中的虚函数重新实现。即函数名和参数都一样,只是函数的实现体不一样。
  2. 重写的规则——方法声明必须完全与父类中被重写的方法相同——访问修饰符的权限要大于或等于父类中被重写的方法的访问修饰符——子类重写的方法可以加virtual,也可以不加。
  3. 重写用于实现动态多态(根据调用方法的对象的类型不同来执行不同的函数)。
  4. 重写是父类和子类之间的关系,是垂直关系。

重载在编译时会将同名的函数或方法根据某种规则生成不同的函数或方法名。

C++中重写可以用来实现动态多态。父类中需要重写的方法要加上virtual关键字。虚函数实现的原理是采用虚函数表,多态中每个对象内存都有一个虚函数指针,指向虚函数表,表中记录的是该类的所有虚函数的入口地址,所以对象能根据它自身的类型调用不同的函数。

浅拷贝和深拷贝

  1. 浅拷贝又称为值拷贝,将源对象的值拷贝到目标对象中,如果对象中有某个成员是指针类型数据,并且是在堆区创建,则使用浅拷贝仅仅拷贝的是这个指针变量的值,也就是在目标对象中该类指针类型数据和源对象中的该成员指向的是同一块堆空间。这样会带来一个问题,在析构函数中释放堆区数据,会被释放多次。默认的拷贝构造函数和默认的赋值运算符重载都是浅拷贝。
  2. 深拷贝,深拷贝在拷贝的时候先开辟出和源对象大小一样的空间,然后将源对象里的内容拷贝到目标对象中区,这样指针成员就指向了不同的内存位置。并且里面的内容是一样的,两个对象先后调用析构函数,分别释放自己指针成员指向的内存。

深拷贝:每次增加一个指针,便申请一块新的内存,并让这个指针指向新的内存,深拷贝情况下,不会出现重复释放同一块内存的错误。

C++中的多态

  1. 静态多态:静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的参数,如果有合适的参数就调用,没有的话就会发出警告或者报错。静态多态有函数重载、运算符重载、泛型编程等。
  2. 动态多态:动态多态是在程序运行时根据基类的引用(指针)指向的对象来确定自己具体该调用哪一个类的虚函数。当父类指针指向父类对象时,就调用父类中定义的虚函数;当父类指针指向子类对象时,就调用子类中定义的虚函数。

动态多态行为的表现效果为:

  1. 同样的调用语句在实际运行时有多种不同的表现形态。
  2. 实现动态多态的条件:要有继承关系——要有虚函数重写——要有父类指针指向子类对象。

动态多态的实现原理:当类中声明虚函数时,编译器会在类中生成一个虚函数表,虚函数表是一个存储类虚函数指针的数据结构,虚函数表是由编译器自动生成与维护的。
virtual 成员函数会被编译器放入虚函数表中,存在虚函数时,每个对象中都有一个指向虚函数表的指针。在多态调用时,虚函数指针就会根据这个对象在对应类的虚函数表中查找被调用的函数,从而找到函数的入口地址。

虚函数的实现原理

C++中的虚函数的作用主要是实现了动态多态的机制。
动态多态,简单的说就是父类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有多种形态,这是一种泛型技术。

虚函数实现原理
编译器处理虚函数时,给每个对象添加一个隐藏的成员。隐藏的成员是一个指针类型的数据,指向的是函数地址数组,这个数组被称为虚函数表。
虚函数表中存储的是虚函数的地址。

如果派生类重写了基类中的虚函数,则派生类对象的虚函数表中保存的是派生类的虚函数地址,如果派生类没有重写基类中的虚函数,则派生类对象的虚函数表中保存的是父类的虚函数地址。

使用虚函数时,对于内存和执行速度方面会有一定的成本:

  1. 每个对象都会变大,变大的量为存储虚函数表指针;
  2. 对于每个类,编译器都会创建一个虚函数表;
  3. 对于每次调用虚函数,都需要额外执行一个操作,就是到表中查找虚函数地址。

纯虚函数

纯虚函数是一种特殊的虚函数,它的格式是:虚函数不给出具体的实现,也就是后面没有大括号实现体,而在后面加上=0。

class A{virtual 返回类型 函数名(参数列表) = 0;
};

很多情况下,在基类中不能对虚函数给出具体的有意义的实现,就可以把它声明为纯虚函数,它的实现留给该基类的派生类去做。
如果一个类中有纯虚函数,那么这个类也被称为抽象类,这种类不能实例化对象,也就是不能创建该类的对象。除非在派生类中实现所有基类中的纯虚函数,否则派生类也是抽象类,不能实例化对象。

虚析构函数

当通过基类指针删除派生类对象时,虚析构函数可以确保派生类的析构函数被正确调用。

如果基类的析构函数不是虚函数,通过基类指针删除派生类对象,只会调用基类的析构函数,不会调用派生类的析构函数。这可能导致资源泄露,因为派生类特有的资源没有被正确释放。

class Base{
public:virtual ~Base(){}	
}

虚析构函数的主要作用是为了防止泄露资源的释放,防止内存泄漏。

重载、重写、隐藏的区别

  1. 重载:在同一作用域中,同名函数的形式参数不同时,构成函数重载,与返回值类型无关。
  2. 重写:指不同作用域中定义的同名函数构成隐藏。派生类成员函数隐藏与其同名的基类成员函数、类成员函数隐藏全局外部函数

C++中的四种类型转换

使用C风格的类型转换可以把想要的任何东西转换成我们需要的类型,但是这种类型转换太过松散,对于这种松散的情况,C++提供了更严格的类型转换,可以提供更好的控制转换过程,并添加4个类型转换运算符。

  1. static_cast:用于在相关类型之间进行转换,比如数值类型之间、枚举类型与整形之间、以及指针类型的向上和向下转换。编译器检查转换是否合法,不会在运行时检查。
int i = 10;
double b = static_cat<double>(i);
  1. dynamic_cast:用于在继承体系中的指针或引用类型之间的转换,并且在运行时进行类型检查。它只能用于有虚函数的多态基类。
  2. const_cast用于在同类型的const和非const之间进行转换。唯一可以用于去除const属性的类型转换操作符。
  3. reinterpret_cast:用于进行低级别的重新解释转换。

STL常见容器

STL中容器分为顺序容器、关联式容器、容器适配器三种类型。

  1. 顺序容器 容器并非排序的,元素的插入位置同元素的值无关。包含vector、deque、list。
    vector:动态数组 元素在内存连续存放。随机存取任何元素都能在常数时间内完成。在尾端增删元素具有较佳的性能。

deque:双端队列,元素在内存连续存放,随机存取任何元素都能在常数时间内完成,在两端增删元素具有较佳性能。

list:双向链表,元素在内存不连续存放。在任何位置增删元素都能在常数时间完成。不支持随机存取。

  1. 关联式容器,元素是排序的。
    通常以平衡二叉树实现。
    set、multiset

map、multimap
map中存放的元素有且仅有两个成员变量,一个名为first,另一个名为second,map根据first值对元素从小到大排序。

  1. 容器适配器
    封装了一些基本的容器,使之具备了新的函数功能,包含 stack、queue、priority_queue。 - stack:栈 栈是项的有限序列,并满足序列中被删除、检索和修改的项只能是最进插入序列的项(栈顶的项),后进先出。 - queue:队列 插入只可以在尾部进行,删除、检索和修改只允许从头部进行,先进先出。

priority_queue:优先级队列,内部维持某种有序,然后保证优先级最高的位于头部,第一个出队列。

默认情况下,priority_queue是最大堆,即优先级最高的元素是最大的元素。

循环队列

循环队列(Circular Queue),也称为环形队列,是一种常见的数据结构,用于在固定大小的缓冲区内进行数据存储。
循环队列的最大特点是首尾相连,当队列的尾部指针到达缓冲区的末尾时,如果有空间空间,它会绕回到缓冲区的开头继续存储数据。

  1. 通常,循环队列可以用一个固定大小的数组和两个指针来表示,一个指向队列的头部(front),一个指向队列的尾部(rear)。
  2. 初始化:初始化时,队列为空,头尾指针都指向数组的同一个位置,通常可以选择0位置。
  3. 队列为空的条件是头尾指针相等,并且没有存储任何元素。
  4. 队列满的条件是尾指针的下一个位置等于头指针。
  5. 入队:将新元素加入到队列尾部,并将尾指针后移。如果尾指针到达数组末尾,则环绕到数组开头。
  6. 出队:从队列头部取出元素,并将头指针后移,如果头指针到达数组末尾,则环绕到数组开头。

相关文章:

C++专业面试真题(1)学习

TCP和UDP区别 TCP 面向连接。在传输数据之前&#xff0c;通信双方需要先建立一个连接&#xff08;三次握手&#xff09;。可靠性。TCP提供可靠的数据传输&#xff0c;它通过序列号、确认应答、重传机制和校验和等技术确保数据的正确传输。数据顺序&#xff1a;TCP保证数据按发…...

2024 年人工智能和数据科学的五个主要趋势

引言 2023年&#xff0c;人工智能和数据科学登上了新闻头条。生成性人工智能的兴起无疑是这一显著提升曝光度的驱动力。那么&#xff0c;在2024年&#xff0c;该领域将如何继续占据头条&#xff0c;并且这些趋势又将如何影响企业的发展呢&#xff1f; 在过去几个月&#xff0c;…...

GPU云渲染平台到底怎么选?这六点要注意!

随着对高效计算和图像处理需求的增加&#xff0c;GPU云渲染平台成为许多行业的关键工具。尤其是对影视动画制作领域来说&#xff0c;选择一个合适的GPU云渲染平台可以大大提升工作效率。然而&#xff0c;面对市场上众多的选择&#xff0c;如何找到适合自己的GPU云渲染平台呢&am…...

【区块链+基础设施】国家健康医疗大数据科创平台 | FISCO BCOS应用案例

在医疗领域&#xff0c;疾病数据合法合规共享是亟待解决的难题。一方面&#xff0c;当一家医院对患者实施治疗后&#xff0c;若患者转到其 他医院就医&#xff0c;该医院就无法判断诊疗手段是否有效。另一方面&#xff0c;医疗数据属于个人敏感数据&#xff0c;一旦被泄露或被恶…...

redis压测和造数据方式

一、redis 压测工具 1、压测命令 1、对3000字节的数据进行get set的操作 redis-benchmark -h 10.166.15.36 -p 7001 -t set,get -n 100000 -q -d 3000 2、100个并发连接&#xff0c;100000个请求&#xff0c;检测host为localhost 端口为6379的redis服务器性能 redis-benchma…...

数据存储方案选择:ES、HBase、Redis、MySQL与MongoDB的应用场景分析

一、概述 1.1 背景 在当今数据驱动的时代&#xff0c;选择合适的数据存储技术对于构建高效、可靠的信息系统至关重要。随着数据量的爆炸式增长和处理需求的多样化&#xff0c;市场上涌现出了各种数据存储解决方案&#xff0c;每种技术都有其独特的优势和适用场景。Elasticsear…...

数组理论基础

1. **数组定义**&#xff1a; - 数组是存放在连续内存空间上的相同类型数据的集合。 2. **数组特性**&#xff1a; - 数组下标从0开始。 - 数组的内存空间地址是连续的。 3. **数组操作**&#xff1a; - 数组可以通过下标索引快速访问元素。 - 数组元素的删除…...

FlinkCDC 数据同步优化及常见问题排查

【面试系列】Swift 高频面试题及详细解答 欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 欢迎关注微信公众号&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、…...

手把手edusrc漏洞挖掘和github信息收集

0x1 前言 这里主要还是介绍下新手入门edusrc漏洞挖掘以及在漏洞挖掘的过程中信息收集的部分哈&#xff01;&#xff08;主要给小白看的&#xff0c;大佬就当看个热闹了&#xff09;下面的话我将以好几个不同的方式来给大家介绍下edusrc入门的漏洞挖掘手法以及利用github信息收…...

linux系统中的各种命令的解释和帮助(含内部命令、外部命令)

目录 一、说明 二、命令详解 1、帮助命令的种类 &#xff08;1&#xff09;help用法 &#xff08;2&#xff09;--help用法 2、如何区别linux内部命令和外部命令 三、help和—help 四、man 命令 1、概述 2、语法和命令格式 &#xff08;1&#xff09;man命令的格式&…...

Gemma轻量级开放模型在个人PC上释放强大性能,让每个桌面秒变AI工作站

Google DeepMind团队最近推出了Gemma&#xff0c;这是一个基于其先前Gemini模型研究和技术的开放模型家族。这些模型专为语言理解、推理和安全性而设计&#xff0c;具有轻量级和高性能的特点。 Gemma 7B模型在不同能力领域的语言理解和生成性能&#xff0c;与同样规模的开放模型…...

Git使用中遇到的问题(随时更新)

问题1.先创建本地库&#xff0c;后拉取远程仓库时上传失败的问题怎么解决&#xff1f; 操作主要步骤&#xff1a; step1 设置远程仓库地址: $ git remote add origin gitgitee.com:yourAccount/reponamexxx.git step2 推送到远程仓库: $ git push -u origin "master&qu…...

php 跨域问题

设置header <?php $origin isset($_SERVER[HTTP_ORIGIN])? $_SERVER[HTTP_ORIGIN]:;$allow_originarray(http://www.aaa.com,http://www.bbb.com, ); if( $origin in $allow_origin ){header("Access-Control-Allow-Origin:".$origin);header("Access-Co…...

【leetcode52-55图论、56-63回溯】

图论 回溯...

2024 年江西省研究生数学建模竞赛题目 A题交通信号灯管理---完整文章分享(仅供学习)

问题&#xff1a; 交通信号灯是指挥车辆通行的重要标志&#xff0c;由红灯、绿灯、黄灯组成。红灯停、绿灯行&#xff0c;而黄灯则起到警示作用。交通信号灯分为机动车信号灯、非机动车信号灯、人行横道信号 灯、方向指示灯等。一般情况下&#xff0c;十字路口有东西向和南北向…...

日志可视化监控体系ElasticStack 8.X版本全链路实战

目录 一、SpringBoot3.X整合logback配置1.1 log4j、logback、self4j 之间关系 1.2 SpringBoot3.X整合logback配置 二、日志可视化分析ElasticStack 2.1为什么要有Elastic Stack 2.2 什么是Elastic Stack 三、ElasticSearch8.X源码部署 ​四、Kibana源码部署 五、LogSta…...

【LinuxC语言】定义线程池结果

文章目录 前言任务结构体线程池定义总结前言 在并发编程中,线程池是一种非常重要的设计模式。线程池可以有效地管理和控制线程的数量,避免线程频繁创建和销毁带来的性能开销,提高系统的响应速度。在Linux环境下,我们可以使用C语言来实现一个简单的线程池。 线程池的主要组…...

uniapp分包

分包是为了优化小程序的下载和启动速度 小程序启动默认下载主包并启动页面&#xff0c;当用户进入分包时&#xff0c;才会下载对应的分包&#xff0c;下载完进行展示。 /* 在manifest.json配置下添加optimization&#xff0c;开启分包优化 */ "mp-weixin" : {/**分包…...

Python 生成Md文件带超链 和 PDF文件 带分页显示内容

software.md # -*- coding: utf-8 -*- import os f open("software.md", "w", encoding"utf-8") f.write(内部测试版2024 MD版\n) for root, dirs, files in os.walk(path): dax os.path.basename(root)if dax "":print("空白…...

行业模板|DataEase旅游行业大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场&#xff08;https://templates-de.fit2cloud.com&#xff09;&#xff0c;并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板&#xff0c;方便用户根据…...

this.$refs[tab.$attrs.id].scrollIntoView is not a function

打印this.$refs[tab.$attrs.id].scrollIntoView 在控制台看到的是一个undefined 是因为this.$refs[tab.$attrs.id] 不是一个dom 是一个vuecomponent 如图所示: 所以我用的这个document.querySelector(.${tab.$attrs.id})获取dom document.querySelector(.${tab.$attrs.id})…...

【AI是在帮助开发者还是取代他们?】AI与开发者:合作与创新的未来

目录 前言一、AI工具现状&#xff08;一&#xff09;GitHub Copilot&#xff08;二&#xff09;TabNine 二、AI对开发者的影响&#xff08;一&#xff09;影响和优势&#xff08;二&#xff09;新技能和适应策略&#xff08;三&#xff09;保持竞争力的策略 三、AI开发的未来&a…...

【SpringBoot Web框架实战教程(开源)】01 使用 pom 方式创建 SpringBoot 第一个项目

导读 这是一系列关于 SpringBoot Web框架实战 的教程&#xff0c;从项目的创建&#xff0c;到一个完整的 web 框架&#xff08;包括异常处理、拦截器、context 上下文等&#xff09;&#xff1b;从0开始&#xff0c;到一个可以直接运用在生产环境中的web框架。而且所有源码均开…...

Boosting【文献精读、翻译】

Boosting Bhlmann, P., & Yu, B. (2009). Boosting. Wiley Interdisciplinary Reviews: Computational Statistics, 2(1), 69–74. doi:10.1002/wics.55 摘要 在本文中&#xff0c;我们回顾了Boost方法&#xff0c;这是分类和回归中最有效的机器学习方法之一。虽然我们也讨…...

保姆级教程|如何配置ROS1主从机

在机器人开发经常遇到使用两个板子通信问题&#xff0c;比如一个板子跑底层的运动控制&#xff0c;一个板子跑定位导航。为了确保两个板子之间的ROS通信流畅&#xff0c;我们需要在两个板子的.bashrc文件中添加必要的环境变量配置。首先&#xff0c;确保你的 /etc/hosts 文件中…...

贝叶斯优化算法(Bayesian Optimization)及其Python 和 MATLAB 实现

贝叶斯优化算法&#xff08;Bayesian Optimization&#xff09;是一种基于贝叶斯统计理论的优化方法&#xff0c;通常用于在复杂搜索空间中寻找最优解。该算法能够有效地在未知黑盒函数上进行优化&#xff0c;并在相对较少的迭代次数内找到较优解&#xff0c;因此在许多领域如超…...

NLP - 基于bert预训练模型的文本多分类示例

项目说明 项目名称 基于DistilBERT的标题多分类任务 项目概述 本项目旨在使用DistilBERT模型对给定的标题文本进行多分类任务。项目包括从数据处理、模型训练、模型评估到最终的API部署。该项目采用模块化设计&#xff0c;以便于理解和维护。 项目结构 . ├── bert_dat…...

数据库备份和还原

一、备份 备份类型 1.完全备份 全备份是指对整个数据集进行完整备份。每次备份都会复制所有选定的数据&#xff0c;无论这些数据是否发生了变化。 2.增量备份 增量备份是指仅备份自上次备份&#xff08;无论是全备份还是增量备份&#xff09;以来发生变化的数据。它记录了…...

谷粒商城-个人笔记(集群部署篇一)

前言 ​学习视频&#xff1a;​Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强​学习文档&#xff1a; 谷粒商城-个人笔记(基础篇一)谷粒商城-个人笔记(基础篇二)谷粒商城-个人笔记(基础篇三)谷粒商城-个人笔记(高级篇一)谷粒商城-个…...

Linux环境下的字节对齐现象

在Linux环境下&#xff0c;字节对齐是指数据在内存中的存储方式。字节对齐是为了提高内存访问的效率和性能。 在Linux中&#xff0c;默认情况下&#xff0c;结构体和数组的成员会进行字节对齐。具体的对齐方式可以通过编译器选项来控制。 在使用C语言编写程序时&#xff0c;可…...

没有调用memcpy却报了undefined reference to memcpy错误

现象 在第5行出现了&#xff0c;undefined reference to memcpy’ 1 static void printf_x(unsigned int val) 2{ 3 char buffer[32]; 4 const char lut[]{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}; 5 char *p buffer; 6 while (val || p buffer) { 7 *(p) …...

import和require的区别

import是ES6标准中的模块化解决方案&#xff0c;require是node中遵循CommonJS规范的模块化解决方案。 后者支持动态引入&#xff0c;也就是require(${path}/xx.js)&#xff0c;前者目前不支持&#xff0c;但是已有提案。 前者是关键词&#xff0c;后者不是。 前者是编译时加…...

白骑士的Python教学高级篇 3.3 数据库编程

系列目录 上一篇&#xff1a;白骑士的Python教学高级篇 3.2 网络编程 SQL基础 Structured Query Language (SQL) 是一种用于管理和操作关系型数据库的标准语言。SQL能够执行各种操作&#xff0c;如创建、读取、更新和删除数据库中的数据&#xff08;即CRUD操作&#xff09;&a…...

macOS 安装redis

安装Redis在macOS上通常通过Homebrew进行&#xff0c;Homebrew是macOS上一个流行的包管理器。以下是安装Redis的步骤&#xff1a; 一 使用Homebrew安装Redis 1、安装Homebrew&#xff08;如果尚未安装&#xff09;&#xff1a; 打开终端&#xff08;Terminal&#xff09;并执…...

【AIGC评测体系】大模型评测指标集

大模型评测指标集 &#xff08;☆&#xff09;SuperCLUE&#xff08;1&#xff09;SuperCLUE-V&#xff08;中文原生多模态理解测评基准&#xff09;&#xff08;2&#xff09;SuperCLUE-Auto&#xff08;汽车大模型测评基准&#xff09;&#xff08;3&#xff09;AIGVBench-T2…...

工厂模式之简单工厂模式

文章目录 工厂模式工厂模式分为工厂模式的角色简单工厂模式案例代码定义一个父类&#xff0c;三个子类定义简单工厂客户端使用输出结果 工厂模式 工厂模式属于创造型的模式&#xff0c;用于创建对象。 工厂模式分为 简单工厂模式&#xff1a;定义一个简单工厂类&#xff0c;根…...

2.(vue3.x+vite)调用iframe的方法(vue编码)

1、效果预览 2.编写代码 (1)主页面 <template><div><button @click="sendMessage">调用iframe,并发送信息...

实战项目——用Java实现图书管理系统

前言 首先既然是管理系统&#xff0c;那咱们就要实现以下这几个功能了--> 分析 1.首先是用户分为两种&#xff0c;一个是管理员&#xff0c;另一个是普通用户&#xff0c;既如此&#xff0c;可以定义一个用户类&#xff08;user&#xff09;&#xff0c;在定义管理员类&am…...

利用DeepFlow解决APISIX故障诊断中的方向偏差问题

概要&#xff1a;随着APISIX作为IT应用系统入口的普及&#xff0c;其故障定位能力的不足导致了在业务故障诊断中&#xff0c;APISIX常常成为首要的“嫌疑对象”。这不仅导致了“兴师动众”式的资源投入&#xff0c;还可能使诊断方向“背道而驰”&#xff0c;从而导致业务故障“…...

sqlalchemy获取数据条数

1、sqlalchemy获取数据条数 在SQLAlchemy中,你可以使用count()函数来获取数据表中的记录条数。 from sqlalchemy import create_engine, MetaData, Table# 数据库连接字符串 DATABASE_URI = dialect+driver://username:password@host:port/database# 创建引擎 engine = crea…...

SpringBoot的自动配置核心原理及拓展点

Spring Boot 的核心原理几个关键点 约定优于配置&#xff1a; Spring Boot 遵循约定优于配置的理念&#xff0c;通过预定义的约定&#xff0c;大大简化了 Spring 应用程序的配置和部署。例如&#xff0c;它自动配置了许多常见的开发任务&#xff08;如数据库连接、Web 服务器配…...

用随机森林算法进行的一次故障预测

本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法&#xff0c;来训练一个硬盘故障预测模型&#xff0c;并测试效果。 实验目标 掌握使用机器学习方法训练模型的基本流程&#xff1b;掌握使用pandas做数据分析的基本方法&#xff1b;掌握使用scikit-l…...

24位DAC转换的FPGA设计及将其封装成自定义IP核的方法

在vivado设计中,为了方便的使用Block Desgin进行设计,可以使用vivado软件把自己编写的代码封装成IP核,封装后的IP核和原来的代码具有相同的功能。本文以实现24位DA转换(含并串转换,使用的数模转换器为CL4660)为例,介绍VIVADO封装IP核的方法及调用方法,以及DAC转换的详细…...

【大模型LLM面试合集】大语言模型基础_llm概念

1.llm概念 1.目前 主流的开源模型体系 有哪些&#xff1f; 目前主流的开源LLM&#xff08;语言模型&#xff09;模型体系包括以下几个&#xff1a; GPT&#xff08;Generative Pre-trained Transformer&#xff09;系列&#xff1a;由OpenAI发布的一系列基于Transformer架构…...

Qt时间日期处理与定时器使用总结

一、日期时间数据 1.QTime 用于存储和操作时间数据的类&#xff0c;其中包括小时(h)、分钟(m)、秒(s)、毫秒(ms)。函数定义如下&#xff1a; //注&#xff1a;秒(s)和毫秒(ms)有默认值0 QTime::QTime(int h, int m, int s 0, int ms 0) 若无须初始化时间数据&#xff0c;可…...

数据结构——Hash Map

1. Hash Map简介 Hash Map是一种基于键值对的数据结构&#xff0c;通过散列函数将键映射到存储位置&#xff0c;实现快速的数据查找和存储。它可以在常数时间内完成查找、插入和删除操作&#xff0c;因此在需要频繁进行这些操作时非常高效。 2. Hash Map的定义 散列表&#xff…...

剪画小程序:视频剪辑-视频播放倍数的调整与应用

在这个快节奏的时代&#xff0c;时间变得越来越宝贵&#xff0c;而视频倍数播放功能就像是我们的时间管理小助手&#xff0c;为我们的视频观看带来了极大的便利。你是否好奇它到底能在哪些地方发挥作用呢&#xff1f;让我们一起来看看&#xff01; 只要使用小程序【剪画】的里…...

使用 Java Swing 和 XChart 创建多种图表

在现代应用程序开发中&#xff0c;数据可视化是一个关键部分。本文将介绍如何使用 Java Swing 和 XChart 库创建各种类型的图表。XChart 是一个轻量级的图表库&#xff0c;支持多种类型的图表&#xff0c;非常适合在 Java 应用中进行快速的图表绘制。 1、环境配置 在开始之前&…...

信息系统运维管理:实践与发展

信息系统运维管理&#xff1a;实践与发展 信息系统运维管理在现代企业中扮演着至关重要的角色&#xff0c;确保信息系统的高效、安全和稳定运行。本文结合《信息系统运维管理》文档内容&#xff0c;探讨了服务设计阶段、服务转换阶段、委托系统维护管理三个主要章节&#xff0…...

html+js+css登录注册界面

拥有向服务器发送登录或注册数据并接收返回数据的功能 点赞关注 界面 源代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>Login and Registration Form</title> <style> * …...

Three.js机器人与星系动态场景:实现3D渲染与交互式控制

内容摘要&#xff1a;使用Three.js库构建了一个交互式的3D场景。组件中创建了一个机器人模型&#xff0c;包括头部、眼睛、触角、身体和四肢&#xff0c;以及两个相同的机器人实例以实现动态效果。场景中还加入了粒子效果&#xff0c;模拟星系环境&#xff0c;增强了视觉效果。…...

IDEA中使用Maven打包及碰到的问题

1. 项目打包 IDEA中&#xff0c;maven打包的方式有两种&#xff0c;分别是 install 和 package &#xff0c;他们的区别如下&#xff1a; install 方式 install 打包时做了两件事&#xff0c;① 将项目打包成 jar 或者 war&#xff0c;打包结果存放在项目的 target 目录下。…...

【综合能源】计及碳捕集电厂低碳特性及需求响应的综合能源系统多时间尺度调度模型

目录 1 主要内容 2 部分程序 3 实现效果 4 下载链接 1 主要内容 本程序是对《计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺度调度方法》方法复现&#xff0c;非完全复现&#xff0c;只做了日前日内部分&#xff0c;并在上述基础上改进升级为电热综合电源微网系统&…...

14-38 剑和诗人12 - RAG+ 思维链 ⇒ 检索增强思维(RAT)

在快速发展的 NLP 和 LLM 领域&#xff0c;研究人员不断探索新技术来增强这些模型的功能。其中一种备受关注的技术是检索增强生成 (RAG) 方法&#xff0c;它将 LLM 的生成能力与从外部来源检索相关信息的能力相结合。然而&#xff0c;最近一项名为检索增强思维 (RAT) 的创新通过…...

ChatGPT:AOP配置中的切入点定义

ChatGPT&#xff1a;AOP配置中的切入点定义 <aop:pointcut id“addTime” expression“execution(* com.xrq.aop.HelloWorld.print*(…))” /> 这是什么 这是一个AOP&#xff08;面向方面编程&#xff09;配置中的切入点定义。AOP是一种编程范式&#xff0c;用于将跨越多…...

解答 | http和https的区别,谁更好用

TTP&#xff08;超文本传输协议&#xff09;和HTTPS&#xff08;安全超文本传输协议&#xff09;的主要区别在于安全性和数据传输的方式。 一、区别 1、协议安全性&#xff1a; HTTP&#xff1a;使用明文形式传输数据&#xff0c;不提供数据加密功能&#xff0c;数据在传输过…...

如虎添翼,联想在全球科技版图挥毫泼墨

在经历近一个多月强势上扬后,联想集团在全球科技版图上挥毫泼墨,再迎喜讯。5月29日,联想集团宣布,公司与沙特阿拉伯公共投资基金旗下的Alat埃耐特公司达成重大战略合作,成功获得高达20亿美元的战略投资。据悉,Alat埃耐特全球CEO闵毅达先生曾就职于戴尔公司,负责戴尔在亚…...

Go语言-big.Int

文章目录 Go 语言 big.Int应用场景&#xff1a;大整数位运算使用举例&#xff1a; go sdk中crypto/ecdsa 椭圆曲线生成私钥相关结构中就有使用 Go 语言 big.Int Go 语言 big.Int 参考URL: https://blog.csdn.net/wzygis/article/details/82867793 math/big 作为 Go 语言提供的…...

爬虫案例-亚马逊反爬分析-验证码突破(x-amz-captcha)

总体概览&#xff1a;核心主要是需要突破该网站的验证码&#xff0c;成功后会返回我们需要的参数后再去请求一个中间页&#xff08;类似在后台注册一个session&#xff09;&#xff0c;最后需要注意一下 IP 是不能随意切换的 主要难点&#xff1a; 1、梳理整体反爬流程 2、验证…...

python -【三】循环语句

循环语句 一、while 循环 while 语法 while 条件: 条件满足时&#xff0c;做事情 a 0 while a < 100:print(i like python ...)a 1求 1-100 的总和 i 1 sum 0 while i < 100:sum ii 1 print(f1-100 的和是 {sum})""" 1-100 的和是 5050 &qu…...

深入解析 JSONPath:从入门到精通

码到三十五 &#xff1a; 个人主页 在数据处理和交换领域&#xff0c;JSON已经成为了一种广泛使用的数据格式&#xff0c; 如何有效地查询和操作这些数据也变得越来越重要。在这种情况下&#xff0c;JSONPath 应运而生&#xff0c;成为了一种在JSON数据中定位和提取信息的强大工…...

cesuim

new Cesium.Color(255,255,0,1), //颜色 Math.PI/2color: Cesium.Color.fromCssColorString("#f40"), //16进制颜色初始化地球 import * as Cesium from "cesium";import { onMounted } from "vue"; onMounted(() > {Cesium.Ion.defaultAcc…...