自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

平淡中造就不平凡

旨在记录学习历程,希望可以对各位小伙伴有所帮助!

  • 博客(125)
  • 收藏
  • 关注

原创 【重点:单例模式】特殊类设计

单例模式是一种设计模式(Design Pattern),设计模式就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式的目的就是为了可重用代码、让代码更容易被他人理解、保证代码可靠性程序的重用性。单例模式指的就是一个类只能创建一个对象,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。

2023-07-23 15:30:55 796 1

原创 Git使用--多人协作

⽬前,我们的仓库中只有⼀个master主分⽀,但在实际的项⽬开发中,在任何情况下其实都是不允许直接在master分⽀上修改代码的,这是为了保证主分⽀的稳定。这时推送失败,因为你的⼩伙伴的最新提交和你推送的提交有冲突,解决办法也很简单,Git已经提⽰我们,先⽤。把最新的提交从 origin/dev 抓下来,然后,在本地进⾏合并,并解决冲突,再推送。最后不要忘记,虽然我们是在分⽀上进⾏多⼈协作开发,但最终的⽬的是要将开发后的代码合并到。,可以查看remote地址,远程分⽀,还有本地分⽀与之相对应关系等信息。

2023-07-23 11:37:47 647 5

原创 Git标签管理(对版本打标签,起别名)

当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。因为创建的标签都只存储在本地,不会⾃动推送到远程。所以,打错的标签可以在本地安全删除。那如何在指定的commit上打标签呢?例如,在项⽬发布某个版本的时候,针对最后⼀次。标签 tag ,可以简单的理解为是对某次。此时,查看远端码云,看到了标签已经被更新!如果要推送某个标签到远程,使⽤命令。的⼀个标识,相当于起了⼀个别名。这样的标签来标识⾥程碑的意义。默认标签是打在最新提交的。此时远端的标签就被删除了。

2023-07-22 22:49:15 975

原创 Git远程操作

版本控制系统能追踪项目,从开始到结束的整个过程。对编程人员而言,版本控制技术是团队协作开发的桥梁,助力于多人协作同步进行大型项目开发。软件版本控制系统的核心任务:查阅项目历史操作记录、实现协同开发。

2023-07-20 17:18:02 445 2

原创 【C++11】lambda表达式详解

Lambda表达式是现代C++在C ++ 11和更高版本中的一个新的语法糖 ,在C++11、C++14、C++17和C++20中Lambda表达的内容还在不断更新。Lambda表达式(外文名:lambda expression)是一个匿名函数,即没有函数名的函数。

2023-07-18 16:18:14 453 2

原创 Git分支管理

添加⼀个新功能时,你肯定不希望因为⼀些实验性质的代码,把主分⽀搞乱了,所以,每添加⼀个新功能,最好新建⼀个分⽀,我们可以将其称之为 feature 分⽀,在上⾯开发,完成后,合并,最后,删除该 feature 分⽀。⼲活都在dev分⽀上,也就是说,dev分⽀是不稳定的,到某个时候,⽐如1.0版本发布时,再把dev分⽀合并到master上,在master分⽀发布1.0版本;现在,dev分⽀的⼯作完成,我们就可以切换回master分⽀,切换回master分⽀后,发现ReadMe⽂件中新增的内容不⻅了。

2023-07-17 23:55:26 519 2

原创 Git原理与基本操作(含安装教程)

但在此之前的⼯作都需要这些不同版本的报告,于是每次都是复制粘贴副本,产出的⽂件就越来越多,⽂件多不是问题,问题是:随着版本数量的不断增多,你还记得这些版本各⾃都是修改了什么吗?⽐如你新增了⼀⾏,这就是⼀个修改,删除了⼀⾏,也是⼀个修改,更改了某些字符,也是⼀个修改,删了⼀些⼜加了⼀些,也是⼀个修改,甚⾄创建⼀个新⽂件,也算⼀个修改。然后我们发现,当前⽬录下多了⼀个 .git 的隐藏⽂件, .git ⽬录是Git来跟踪管理仓库的,不要⼿动修改这个⽬录⾥⾯的⽂件,不然改乱了,就把Git仓库给破坏了。

2023-07-16 23:59:11 424

原创 【C++11】右值引用(移动构造、移动赋值、万能引用、完美转发)

- C++98中提出了引用的概念,引用即别名,引用变量与其引用实体公共同一块内存空间,而引用的底层是通过指针来实现的,因此使用引用,可以提高程序的可读性。- 为了提高程序运行效率,C++11中引入了右值引用,右值引用也是别名,但其只能对右值引用。为了与C++98中的引用进行区分,C++11将该种方式称之为右值引用。

2023-07-15 12:39:26 307

原创 C++多态

多态就是函数调用的多种形态,使用多态能够使得不同的对象去完成同一件事时,产生不同的动作和结果。

2023-07-14 11:24:24 286

原创 关系型数据库范式

常见的范式有1NF、2NF、3NF、BCNF、4NF。下面对这几种常见的范式进行简要分析。

2023-07-13 17:30:54 293

原创 Redis基本全局命令(含key过期策略)

需要说明的是,redis不是每个100ms将所有的key检查一次,而是随机抽取进行检查(如果每隔100ms,全部key进行检查,redis岂不是卡死)。Redis过期删除采用的是定期删除,默认是每100ms检测一次,遇到过期的key则进行删除,这里的检测并不是顺序检测,而是随机检测。显然Redis也考虑到了这一点,当我们去读/写一个已经过期的key时,会触发Redis的惰性删除策略,直接会干掉过期的key。不是的,如果定期删除没删除key,然后你也没即时去请求key,也就是说惰性删除也没生效。

2023-07-12 19:42:27 10461 3

原创 初识Redis

站在数据冷热的⻆度,数据分为热数据和冷数据,热数据通常是指需要频繁操作的数据,反之为冷数据,例如对于视频⽹站来说,视频基本信息基本上在各个业务线都是经常要操作的数据,⽽⽤⼾的观看记录不⼀定是经常需要访问的数据,这⾥暂且不讨论两者数据规模的差异,单纯站在数据冷热的⻆度上看,视频信息属于热数据,⽤⼾观看记录属于冷数据。计数器在⽹站中的作⽤⾄关重要,例如视频⽹站有播放数、电商⽹站有浏览数,为了保证数据的实时性,每⼀次播放和浏览都要做加1的操作,如果并发量很⼤对于传统关系型数据的性能是⼀种挑战。

2023-07-10 10:11:40 320

原创 【static_cast、reinterpret_cast、const_cast、dynamic_cast】C++类型转换

因此C++为了加强类型转换的可视性,引入了四种命名的强制类型转换操作符,分别是`static_cast、reinterpret_cast、const_cast`和`dynamic_cast`。

2023-05-09 16:25:39 838 1

原创 【C++】智能指针

学习目标1.为什么需要智能指针?2. 内存泄漏3.智能指针的使用及原理4.C++11和boost中智能指针的关系

2023-05-07 15:30:44 963 2

原创 bitset(位图)的使用与模拟实现

所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。

2023-04-26 09:30:25 848

原创 【STL系列】unordered_set和unordered_map

在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时的效率可达到O(logN),即最差情况下需要比较红黑树的高度次,但当树中的结点非常多时,查询效率也不理想。最好的查询是,进行很少的比较次数就能够将元素找到,因此在C++11中,STL又提供了4个unordered系列的关联式容器,这四个容器与红黑树结构的关联式容器使用方式基本类似,只是其底层结构不同。unordered_set是不按特定顺序存储键值的关联式容器,其允许通过键值快速的索引到对应的元素。

2023-04-14 18:30:53 883

原创 AVL树介绍

二叉搜索树虽然可以提高我们查找数据的效率,但如果插入二叉搜索树的数据是有序或接近有序的,此时二叉搜索树会退化为单支树,在单支树当中查找数据相当于在单链表当中查找数据,效率是很低下的**。因此,两位俄罗斯的数学家G.M.A delson-Velskii和E.M.Landis在1962年发明了解决上述问题的方法:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1(需要对树中的结点进行调整),即可降低树的高度,从而减少平均搜索长度。

2023-04-13 16:25:48 586

原创 二叉搜索树

二叉树在前面已经讲过,本节介绍二叉搜索树。

2023-04-12 10:39:48 403

原创 【Linux练习生】高级IO

I/O(input/output)也就是输入和输出,在著名的冯诺依曼体系结构当中,将数据从输入设备拷贝到内存就叫做输入,将数据从内存拷贝到输出设备就叫做输出。对文件进行的读写操作本质就是一种IO,文件IO对应的外设就是磁盘。对网络进行的读写操作本质也是一种IO,网络IO对应的外设就是网卡。IO是输入input输出output的首字母缩写形式,直观意思是计算机输入输出,它描述的是计算机的数据流动的过程,因此IO第一大特征是有数据的流动;

2023-03-15 09:54:33 339

原创 【链表】无头单向非循环链表

概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。今天我们来讲常用的:无头单向非循环链表实际中链表的结构非常多样,以下情况组合起来就有8种链表结构

2023-01-15 21:07:58 692 9

原创 【MySQL】深入理解MySQL事务(上篇)

在实际业务场景中,如何保证操作的完整性是一个重要的议题,依次执行一系列逻辑强关联的操作,如果在中途发生了错误,就很有可能导致数据的错乱。设想一下在 ATM 取钱的场景,当我们取出一千元的时候,ATM 会在清点完成后一次性吐出一千元,而不是分十次每次吐出一百元,这就是为了保证操作的完整性,要么完整的取走一千元,扣除余额,要么一分钱都没有取走,余额不变,而不会出现中途机器故障导致数据不一致的情况。这样的一次完整操作叫做事务 transaction一个事务中的所有操作要么全部成功执行,要么完全不执行。

2023-01-13 23:11:14 763 9

原创 【MySQL】详解索引操作

索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

2023-01-07 16:22:19 957 13

原创 【MySQL】复合查询

MySQL复合查询

2023-01-04 15:30:15 416 1

原创 顺序表 —— 初始化、销毁、打印、增加、删除、查找、修改

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。

2022-12-31 16:36:02 1788 1

原创 C语言指针全解

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的内存单元,可以说地址指向该内存单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。

2022-12-31 15:08:19 368 5

原创 Linux虚拟机安装Hive(mysql安装)

Hive发展至今,总共历经了两代客户端工具第一代客户端(deprecated不推荐使用):$HIVE_HOME/bin/hive, 是一个 shellUtil。主要功能:一是可用于以 交互或批处理模式运行Hive查询;二是用于Hive相关服务的启动,比如metastore服务。第二代客户端(recommended 推荐使用):$HIVE_HOME/bin/beeline,是一个JDBC客户端,是官方推荐使用的Hive命令行工具,和第一代客户端相比,性能加强安全性提高。

2022-12-30 06:30:00 3104

原创 Hadoop伪分布式环境搭建

本案例采用伪分布模式搭建Hadopp,在一台主机模拟多主机,用于后续的程序开发。

2022-12-29 12:18:28 2625

原创 【C++】何为枚举类型

上面声明了一个枚举类型weekday,花括号中Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday称为枚举元素或枚举常量,表示这个类型的变量的值只能是以上7个值之一,它们是用户自己定义的标识符。因为枚举数据类型的符号名称与整数值相关联,所以它们可以在 switch 语句中使用,如下面的程序所示,该程序还演示了可以使用枚举的数据类型,而不实际创建该类型的任何变量。在上述示例中,Tom 的值将是 0,Sharon 的值为 1,等等。

2022-12-19 19:50:26 143

原创 MySQL表的操作

数据表属于数据库,在创建数据表之前,应使用语句“USE 数据库”指定操作在哪个数据库中进行,如果没有选择数据库,就会抛出 No database selected 的错误。在删除表的同时,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份,以免造成无法挽回的损失。创建完数据表之后,经常需要查看表结构(表信息)。新增列SQL中的after表示将该列新增到哪一列之后,如果想要将新增的列放到第一列,可以将after。语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。

2022-12-15 21:41:18 366 1

转载 【MySQL】having和where的区别

having子句与where都是设定条件筛选的语句,有相似之处也有区别。

2022-12-13 15:16:46 128

原创 【备战蓝桥】成绩统计-巧妙实现四舍五入

int类型在输出时是向下取整,就是说例如:6.1、6.4、6.8都作为6输出,那么在计算时我们可以将结果res:(res+0.5)来达到四舍五入的效果。

2022-12-11 14:06:52 194

原创 MySQL内置函数

1 .日期函数2.字符串函数3.数学函数4.其它函数5.综合练习题

2022-12-11 07:00:00 552

原创 【MySQL基本查询】Create(创建), Retrieve(读取),Update(更新),Delete(删除)

表的增删查改Create(创建), Retrieve(读取),Update(更新),Delete(删除)

2022-12-09 22:22:04 1841 9

原创 MySQL库的操作

创建数据库时通过charset和collate分别指明数据库的编码格式和校验规则SQL中的charset=utf8,也可以写成character set=utf8或character set utf8SQL中的collate=utf8_general_ci,也可以写成collate utf8_general_ci首先来了解一下什么是字符集和校规则,字符集是一套符合和编码,校验规则(collation)是在字符集内用于比较字符的一套规则,即字符集的排序规则。MySQL可以使用对种字符集和检验规则来组织字符。

2022-12-07 16:46:30 487

原创 【网络编程套接字】基于TCP协议的网络程序

上节我们实现了一个基于UDP协议的网络程序,本节,我们再来实现一个简单的TCP网络程序。

2022-11-11 23:27:18 700 12

原创 【算法基础】单调栈与单调队列

本节,我们简单做两道单调栈和单调队列的题,来理解原理。

2022-11-07 22:13:29 150

原创 【算法基础】用数组模拟栈和队列

本节,我们实现用数组模拟实现栈和队列,接下来,我们以题带知识点。

2022-11-05 08:59:25 509 1

原创 【网络编程套接字】基于UDP协议的网络程序

- UDP协议是无连接的,不可靠的网络协议。本章将介绍如何使用UDP协议进行程序设计,对UDP编程的基本框架进行介绍并给出程序设计的例子。- 使用UDP进行程序设计可以分为客户端和服务器端两部分。服务器端主要包含创建套接字、将套接字与地址结构进行绑定、读写数据、关闭套接字几个过程。客户端包括建立套接字、读写数据、关闭套接字几个过程。服务端和客户端两个流程之间的主要差别在于对地址的绑定(bind())函数,客户端可以不用进行地址和端口的绑定操作。

2022-11-04 17:33:54 1268 1

原创 【网络编程套接字】什么是socket,socket基本知识认识

一台机器上可能会有大量的进程,但并不是所有的进程都要进行网络通信,可能有很大一部分的进程是不需要进行网络通信的本地进程,此时PID虽然也可以标识这些网络进程的唯一性.就是说,在不同的场景下可能需要不同的编号来标识某种事物的唯一性,因为这些编号更适合用于该场景。socket函数对应于普通文件的打开操作。(2)其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享内存缓冲区,因此需要一种机制为希望通信的进程间建立联系,为二者的数据交换提供同步,这就是基于客户/服务器模式的TCP/IP。

2022-11-01 14:16:28 687 11

原创 【Linux练习生】线程池

一般来说,线程池都是采用预创建的技术,在应用启动之初便预先创建一定数目的线程。应用在运行的过程中,需要时可以从这些线程所组成的线程池里申请分配一个空闲的线程,来执行一定的任务,任务完成后,并不是将线程销毁,而是将它返还给线程池,由线程池自行管理。如果线程池中预先分配的线程已经全部分配完毕,但此时又有新的任务请求,则线程池会动态的创建新的线程去适应这个请求。当然,有可能,某些时段应用并不需要执行很多的任务,导致了线程池中的线程大多处于空闲的状态,为了节省系统资源,线程池就需要动态的销毁其中的一部分空闲线程。

2022-10-28 16:22:46 1140 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除