git学习
1.Git概述Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git易于学习,占地面积小,性能极快。它具有廉价的本地库、方便的暂存区域和多个工作流分支等特性,其性能优于Subversion、CVS、Perforce和ClearCase等版本工具。
版本控制:是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。其最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
集中式版本控制:诸如CVS、SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新。
优点:每个人都可以在一定程度上看到项目中的其它人正在做些什么,而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
缺点:中央服务器的单点故障问题,如果服务器死机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
分布式版本控制:诸如Git、Mercurial等,客户端提取的不是最新版本的文件快照,而是 ...
Qt操作
一、Qt中多线程的使用在进行桌面应用程序开发的时候, 假设应用程序在某些情况下需要处理比较复杂的逻辑, 如果只有一个线程去处理,就会导致窗口卡顿,无法处理用户的相关操作。这种情况下就需要使用多线程,其中一个线程处理窗口事件,其他线程进行逻辑运算,多个线程各司其职,不仅可以提高用户体验还可以提升程序的执行效率。
1.在qt中使用了多线程,有些事项是需要额外注意的:
默认的线程在Qt中称之为窗口线程,也叫主线程,负责窗口事件处理或者窗口控件数据的更新
子线程负责后台的业务逻辑处理,子线程中不能对窗口对象做任何操作,这些事情需要交给窗口线程处理
主线程和子线程之间如果要进行数据的传递,需要使用Qt中的信号槽机制(即如果子线程需要对窗口的数据进行修改,只能先通过connect发送给主线程,由主线程对窗口进行修改,而子线程不能直接对窗口进行修改)。
使用方式1
创建一个线程类的子类,让其继承QT中的线程类 QThread
重写父类的 run() 方法,在该函数内部编写子线程要处理的具体的业务流程
在主线程中创建子线程对象,new 一个就可以了
启动子线程, 调用 start() 方法
案例 ...
行测
一.言语理解2025年之前,国考题目中,言语理解题目有40道,25年有30道
1.必考题型1.片段阅读
中心理解题(基础&重要)、细节判断题
2.语句表达
语句排序题、语句填空题、接语选择题
3.逻辑填空(难度高&题量大)
实词填空、成语填空、混搭填空
2.中心理解题1.提问方式
这段文字主要/旨在/重在/意在/想要说明(论述、强调)的是……
这段文字的主旨/主题/观点是……
对这段文字概括最恰当的一项是……
这段文字表达了作者……
从这段文字中我们可以看出作者的意图/态度是……
2.题解思路
直接确定重点
间接确定重点
(1)直接确定重点
转折关系:虽然……但是……;尽管……可是……;.…不过……;……然而……;……却……;其实 / 事实上 / 实际上
注:转折之后是重点
转折常考结构
引入 + 转折提出观点
引入 + 转折提出观点 + 解释说明
引入 + 转折提出问题 + 问答问题/解决问题
引入 + 转折…… + 同时/也…..
阅读策略:引入、解释说明部分可以略读
背景:近年来、随着、在….的背景下 ...
protobuf
1.ProtoBuf概述protobuf也叫protocol buffer,是google的一种数据交换的格式,它独立于语言,独立于平台。google提供了多种语言的实现,如java、c#、c++、go和python等,每一种实现都包含了相应语言的编译器以及库文件。
1.作用:
数据的持久化存储
序列化:将数据从内存存储到磁盘
反序列化:将数据从磁盘加载到内存
数据的网络传输:客户端与服务端之间的数据传输
序列化:对象到字节序列
反序列化:字节序列到对象
2.特点
语言无关、平台无关:ProtoBuf支持java、c++、python等多种语言、支持多个平台
高效:比XML更小、更快、更为简单
扩展性、兼容性好:可以更新数据结构,而不影响和破坏原有的旧程序
3.使用特点(c++):ProtoBuf是需要依赖通过编译生成的头文件和源文件来使用的。
比如说对于常规发送消息,首先是需要定义一个Class类,在该类里面有:(1)一些列属性字段(要发送的)、(2)处理字段的方法、(3)处理类的方法(序列化、反序列化)。可以发现(2)和(3)是非常耗时,且对于开发者来说比较伤脑 ...
数据库mysql
1. 基本常识1.查询该linux系统安装的数据库mysql包:rpm -aq | grep mysql
2.启动mysql服务:systemctl start mysqld
3.查看mysql的服务进程是否启动:ps -ef | grep mysqld
4.Oracle数据库和mysql数据库的区别
Oracle只有有一个数据库(安装的时候指定的实例),数据库名就叫orcl,该数据库下有多个用户,如scott、hr等,每个用户下又有很多表。
Mysql只有一个用户,用户名就叫root,该用户下有很多数据库,每个库下又有很多表。
2. 基本操作1. mysql服务
重启Mysql服务:systemctl restart mysqld
查看Mysql服务状态:systemctl status mysqld
停止Mysql服务:systemctl stop mysqld
启动Mysql服务:systemctl start mysqld
2. 操作1、进入mysql
启动Mysql服务进程:systemctl start mysqld
进入mysql:mysql -uroot - ...
redis基础
1. 简介Redis 也称为远程字典服务,是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库,提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。
1.主流功能与应用
分布式缓存,挡在mysql数据库之前的带刀护卫
所有查询先去找redis,查得到就直接返回,找不到就去访问MySQL,mysql返回数据以后,就把该数据写到redis,下次客户端在查询该数据,就可用直接在redis上查到了。
内存存储和持久化(RDB+AOF),redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
redis活着的时候,所有数据都是在内存(memory)的,但断电后,redis里面的数据就会丢失,那又要把mysql的数据重新加载进redis?这样的工作会比较烦躁,所以redis自己也带有数据持久化功能,当redi ...
c++基础
1. c++简介C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:
封装:封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。
继承:继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。
多态:多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。
抽象:抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。
2. 基础知识1. 变量和数据类型使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存 ...
docker基础
1. docker概述1.1 简介Docker是基于Go语言实现的云开源项目。
Docker的主要目标是:Build, Ship and Run Any App, Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及其运行环境能做到一次镜像,处处运行。
Linux容器技术的出现就解决了这样一个问题,而Docker就是再它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
docker理念:解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
1.2 传统虚拟机和容器1.传统虚拟机(virtual machine):
传统虚拟机技术基于安装在主操作系统上的虚拟机管理系统(如VirtualBox、VMware等),创建虚拟机(虚拟出各种硬件),在虚拟机上安装从操作系统,在从操作系统中安装部署各种应用。
缺点:资源占用多、冗余步骤多、启动慢。
...
MongoDB数据库
1. 简介MongoDB是一个基于分布式文件存储的数据库,操作语法与JavaScript类似,容易上手。它与mysql不一样,mysql操作的是表格,即结构化数据,而mongodb操作的是json非结构化数据。下载地址https://www.mongodb.com/try/download/community
数据库是按照数据结构来组织、存储和管理数据的应用程序,主要作用就是管理数据,对数据进行增删改查。
Mongodb数据库在使用前,需要在终端执行mongod来打开数据库服务端,在终端执行mongo打开客户端,通过相关命令来完成数据库的增删改查。当然也可以下载Mongoose包来通过代码完成对Mongodb数据库的增删改查。
相比纯文件管理数据,数据库管理数据有如下特点:
速度更快
扩展性更高
安全性更高
Mongodb中有三个重要概念:
数据库(database):是一个数据仓库,数据库服务下可以创建很多数据库,数据库中可以存放很多集合
集合(collection):集合类似于 JS 中的数组,在集合中可以存放很多文档
文档(document):档是数据库中的最小单位,类 ...
nodejs基础
1. 简介Node.js是一个开源的,跨平台的JavaScript运行环境。通俗来讲,node.js就是一款应用程序,是一款软件,它可以运行JavaScript。
1.1 Node.js的作用1.开发服务器应用
众所周知,网页的构建是通过HTML、CSS、JavaScript来完成的,其中HTML负责控制结构、CSS负责控制样式、JS负责控制交互和效果。当在本机双击HTML文件后,页面就能够打开,但是这个网页只能在本机看到。如果想要该网页能够让每个人都能够访问,就需要使用服务器了。因为服务器能够保存我们写好的HTML、CSS、JavaScript,其他用户能够在自己的电脑上通过url来向我们的服务器发送请求,发送请求后,服务器能够将这些资源返回给用户的浏览器,然后浏览器就可以对这些资源做解析,页面就能够呈现了(所有的用户都能够通过url来访问服务器)。在这个过程中,node.js就运行在服务器端,它会对用户的请求做处理,并且把这些资源返回给浏览器。
2.开发工具类应用
目前前端开发中非常重要的三款工具Webpack、vite、Babel,它们可以提高前端项目的开发效率和质量,但都是借助 ...