自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Kafka学习笔记

1.概述1.1.定义开源消息引擎系统,支持两种消息传输模型:点对点发布/订阅模型Kafka同时支持这两种模型,采用消费组实现(后续介绍)。1.2.作用削峰填谷:缓冲上下游瞬时突发的流量。松耦合:减少发送方和接收方的耦合性2.架构2.1.架构图2.2.术语Producer:生产者,发送消息。Consumer:消费者,接收消息,进行业务逻辑处理。Broker:服务代理节点。理解为:独立的Kafka节点 or Kafka实例一个或者多个Broker组成Kafka集群

2021-12-28 16:25:34 1413 2

原创 从设计层面上谈谈抽象类和接口的区别

为什么想谈谈抽象类和接口呢?当我百度抽象类和接口的区别时,网上会有一堆千篇一律的回答,就像下面:接口的方法默认是public,所有的方法在接口中不能有实现(JDK8开始方法可以实现,不过要增加static或者default修饰符);而抽象类可以有非抽象的方法,也就是可以实现方法,也就是方法可以有方法体。一个类能实现多个接口,但是一个类只能继承一个抽象类。从方法上来说,接口中的方法默认以public abttact 修饰,而抽象类中的抽象方法可以有 public、protected 和 defaul

2020-10-06 22:22:56 355

原创 关于我对Socket的暂时理解

为什么说是对Socket的暂时理解呢,因为Socket这玩意真要深入了解那可以很深很深,其涉及到的TCP/IP协议栈里面包含了太多内容了,而我之前是对Socket一无所知的,上次面试有面试官问:“你会Socket编程吗?”, 我一脸懵逼直摇头。于是此次,用这次博文,记录下自己对Socket的暂时理解,希望以后能在工作中通过这门技术去完成某项工作,然后在实践和尝试中去加深对Socket的理解。1. Socket原理要写网络程序就必须要用到Socket,甚至有句话说“一切皆Socket”,听起来夸张,其实事

2020-10-02 18:09:49 237

原创 浅谈远程过程调用——RPC

在复习SpringCloud的时候总是会遇到RPC这一词,但又不知道是何方神圣,上网冲浪了解了一下RPC,在此记录下对RPC的初步认识。1. 什么是RPC1.1 本地过程调用如果我们需要将本地的Student对象的age加1,那么就需要写一个Student addAge(Student student)方法,将student对象作为形参传入,将student的年龄进行+1,再返回student对象即可。这个过程我们称作本地过程调用。本地过程调用的函数体通过函数指针来指定。1.2 远程过程调用那么如

2020-09-29 21:59:15 503

原创 MySQL高级篇笔记(四)锁机制

文章目录四、MySQL锁机制1. 概述1.1. 定义1.2. 生活例子2. 锁的分类2.1. 从对数据操作的类型分类2.2. 从对数据操作的颗粒度分类3. 三锁3.1. 表锁(偏读)3.1.1. 特点3.1.2. 案例分析3.1.3. 分析表锁定3.2. 行锁(偏写)3.2.1. 行锁特点3.2.2. 事务特点3.2.3. 并发处理事务带来的问题3.2.4. 事务隔离级别3.2.5. 案例分析3.2.6. 行锁分析3.2.7. 面试题:如何锁定一行3.2.8. 行锁总结3.3. 页锁(了解)3.2.7. 面

2020-09-06 16:41:34 142 1

原创 快速理解脏读、不可重复读和幻读

MySQL的InnoDB引擎是支持事务的,但是并发事务的处理又会带来以下问题:脏读不可重复度幻读一、脏读脏读指事务A读取到了事务B更新了但是未提交的数据,然后事务B由于某种错误发生回滚,那么事务A读取到的就是脏数据。具体的说,一个数据原本是干净的,但是事务B将它进行修改使得其不再干净,此时事务A读取到事务B修改后的数据,也就是脏数据,称为脏读,后来事务B由于良心发现又将数据回滚为最初的样子,而事务A不知道事务B进行了回滚操作,最终事务A读取到的是脏数据,称为脏读。结论:读取未提交的数据!

2020-09-04 21:38:21 7355 6

原创 MySQL高级篇笔记(三)查询截取分析

文章目录三、查询截取分析1、查询优化(1)小表驱动大表(2)order by关键字优化(3)group by关键字优化2、慢查询日志(1)慢查询日志是什么?(2)慢查询日志的用法3、日志分析工具mysqldumpslow(1)查看mysqldumpslow的帮助信息(2)工作常用参考4、批量数据脚本(1)创建表(2)创建函数(3)创建存储过程(4)调用存储过程5、Show Profile(1)分析步骤(2)参数说明(3)日常开发6、全局查询日志(1)配置启用(2)编码启用(3)永远不要在生产环境开启此功能6

2020-08-29 14:18:20 260

原创 MySQL高级篇笔记(二)索引优化分析

二、索引优化分析1、性能下降、SQL慢、执行时间长、等待时间长的原因查询语句写的差索引失效单值索引:新建索引的语句只实施在一列上复合索引:在多个列上建立索引关联查询太多join(设计缺陷或不得已的需求)服务器调优及各个参数设置(缓冲\线程数等)2、索引简介(1)索引是什么MySQL官方对索引的定义为:索引是帮助MySQL高效获取数据的数据结构,所以索引的本质是:数据结构,可以理解为排好序的快速查找数据结构索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个

2020-08-20 17:01:46 304

原创 MySQL高级篇笔记(一)MySQL存储引擎

文章目录一、存储引擎介绍1、MyISAM2、InnoDB3、两种存储引擎的对比一、存储引擎介绍1、MyISAMMyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM 不支持事务和行级锁(MyISAM改表时会将整个表全锁住) ,有一个毫无疑问的缺陷就是崩溃后无法安全恢复MyISAM管理非事务表,所以关注点在于性能上,可以提供高速存储和检索,支持全文搜索那么为什么MyISAM会比InnoDB快呢? [待做]2、InnoDBInnoDB是MySQL的默认事务型引擎

2020-08-20 15:57:36 197

原创 Docker一探究竟

本篇是Docker学习笔记,基本上可以深入了解了Docker!文章目录Docker概述Docker为什么会出现?Docker历史Docker能干嘛容器化技术DevOpsDocker安装Docker架构镜像(image):容器(container):仓库(repository):安装Docker环境查看安装卸载阿里云镜像加速Docker run流程Docker底层原理Docker命令帮助命令镜像命令docker images查看本机所有镜像docker search搜索镜像**docker pull下载镜像

2020-08-19 00:36:38 282

原创 Git之工作区、暂存区和版本库分别是什么

工作区git的工作区就是我们本机的目录,在电脑文件资源管理器中可以真实查看到的目录,如下图所示,我所创建的test目录就是一个工作区。暂存区git相比较其他版本控制工具有一个比较独特的东西,那就是暂存区。顾名思义,暂存区就是暂时存放文件的地区,那么什么文件将被存放在暂存区呢?相信我们会经常用到git add这条命令,这条命令可以将工作区中的文件加入到暂存区。例如:在test目录中我...

2019-09-05 16:41:35 714

原创 Git之手把手创建Git版本库

Git和SVN最主要的区别SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的...

2019-09-04 19:32:23 230

原创 数据结构复习<4> 循环队列的顺序存储和连接存储

队列的定义队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。插入的一端称为队尾,删除的一端称为队头。 队列具有“先进先出”的特性,如下图所示: 队列的顺序存储结构及其实现设置队头队尾指针,减少时间开销。采用循环队列,解决假溢出问题。队空和队满的判定问题初始化空队时,令front = rear = 0 , 当队空时:front = rear。 当队满...

2018-07-16 10:53:23 444

原创 数据结构复习<3> 栈的顺序存储和链接存储

栈的定义栈是限定仅在表尾进行插入和删除操作的线性表,允许操作的一端称为栈顶,不进行操作的一端称为栈底,不含任何数据元素的栈称为空栈。栈具有“后进后出”的特性,就如同一叠盘子,要从这叠盘子中取出盘子或者放入一个盘子,只有在其顶部操作是最方便的。1.栈的顺序存储结构——顺序栈//栈的顺序存储template &lt;class T&gt;class SeqStack{publ...

2018-07-15 12:47:13 609

原创 数据结构复习<2> 线性表的链接存储结构及其实现

在此之前,我整理了用顺序表存储线性表的方法,但是顺序表具有以下缺点:列表内容插入和删除非常费劲。需要移动大量元素。表的容量难以确定。因为顺序表中数组的长度需要事先确定,所以难以确定合适的规模。造成存储空间的“碎片”。数组要求连续的存储空间,若不连续则不能使用,造成存储空间的“碎片”现象。这一次,我们尝试用单链表存储线性表。一、 单链表的存储方法通过每个指针的指针...

2018-07-09 17:24:08 502

原创 数据结构复习<1> 线性表的顺序存储结构及其实现

由于线性表的数据元素类型不确定,所以采用C++的模板机制。在写模板时,由于长时间未写过C++了,对其模板机制的概念非常模糊,如以下代码存在基础语法错误或者丑陋的代码,请指出来,我将虚心改错,感谢。顺序表——线性表的顺序存储结构一、顺序表的定义顺序表是用一段地址连续的存储单元依次存储线性表的数据元素。二、顺序表的存储通常用一维数组来实现顺序表,使用时要注意区分数组的下标与...

2018-07-08 20:40:55 606

原创 关于cb输出中文乱码的解决方法

之前有朋友用CodeBlocks遇到过这个问题,然后我实在才疏学浅,无法帮助他解决这个问题。 很不幸,这个问题在前段时间来到了我的身边,而且久久未解决。(果然别人的问题也是问题,不然会变成自己的问题,令人悲伤)以下是一个令无数人糟心的截图 解决方法如下: 1.打开CodeBlocks–&amp;amp;gt;settings–&amp;amp;gt;compiler 2.选择Other compiler op...

2018-07-08 20:12:39 4928 3

原创 怎样用C语言去实现一个日程管理系统

本次用纯C语言设计一个机器人管理系统可以实现的功能如下:① 插入一个事件安排,包括事件的时期、具体时间(时分秒)、事件内容 (用一个结构体实现)② 对所有的事件进行一个按时间的先后排序③ 删除一个事件,按照时间或者事件内容删除(两种删除都要实现)④ 查找具体事件具体要被完成的事件⑤ 修改一个事件的具体时间⑥ 到点提醒,到确切的时间点后,提醒张三该去做那件事情(获取系统当前时间即可)涉及到的知识点:...

2018-06-29 14:30:17 4528 3

空空如也

空空如也

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

TA关注的人

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