- 博客(33)
- 收藏
- 关注
原创 MySQL数据库五种索引类型
1.普通索引 最基本的索引,它没有任何限制,用于加速查询。 创建方法:建表的时候一起创建CREATE TABLE mytable ( name VARCHAR(32) , INDEX index_mytable_name (name) );建表后,直接创建索引CREATE INDEX index_mytable_name ON mytable(name);修改表结构ALTER TABL
2020-09-09 18:14:31
844
原创 跳跃表原理与操作过程
1.跳跃表在单链表中查询一个元素的时间复杂度为O(n),即使该单链表是有序的,也不能通过2分的方式缩减时间复杂度。如上图,我们要查询元素为55的结点,必须从头结点,循环遍历到最后一个节点,不算-INF(负无穷)一共查询8次。那么用什么办法能够用更少的次数访问55呢?最直观的,当然是新开辟一条捷径去访问55。...
2020-08-09 12:55:03
1247
原创 Flume实操指南与从Kafka拉取数据到HDFS
1. Flume简介 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 本文主要介绍Flume的实际操作,因此不对其原理和细节进行更多介绍,对于Flume的相关介绍可以参考以下文章:分布式日志收集系统 —— FlumeFlu
2020-06-07 22:56:33
1815
1
原创 Kafka实操指南与JAVA远程消息传递
最近由于是实验室项目需要,在linux虚拟机中下载安装了Kafka,实现了单机kafka运行,并实现了java到kafka的数据传输,后续将继续打通kafka-flume-hdfs的数据链路,并将单机kafka扩展为kafka集群。目前记录一些对于kafka的操作方法,用于后续参考。 附一篇对kafka基础知识介绍非常详细的博客 Kafka为什么那么快?1. 安装
2020-05-31 17:25:41
714
原创 进程用户态和内核态及其切换过程
1.进程的堆栈 内核在创建进程的时候,会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存在于内核空间。当进程在用户空间运行时,CPU堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,CPU堆栈指针寄存器里面的内容是内核栈空间地址,使用内核栈。2.进程用户栈和内核栈的切换 当进程因为中断或者系统调用而陷入内核态之行时,进程所使用的堆栈也要从用户栈转到内核栈
2020-05-24 22:50:10
4761
1
原创 SQL中group by与having语句的使用
1. GROUP BY GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结果集。 语法如下:SELECT column1, column2, ... column_n, ...
2020-05-06 13:03:37
304
原创 二叉树非递归后序遍历的两种方法(C/C++)
1.镜像二叉树先序遍历结果倒置我们可以知道,二叉树的镜像二叉树的先序遍历顺序为:根—右—左,而原二叉树的后序遍历顺序为:左—右—根。可以发现,镜像二叉树先序遍历的结果倒置过来,刚好是原二叉树的后序遍历结果,因此,可以利用如下代码实现一颗树的后序遍历:vector<int> postOrderNoRe(TreeNode* root){}...
2020-04-28 12:20:16
1464
转载 [转]JAVA重写和重载的区别
1. 重载方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。重载的时候,方法名要一样,但是参数类型和...
2020-04-27 18:17:00
116
原创 https连接建立过程学习笔记
1.HTTPS简介 HTTPS是在 HTTP(超文本传输协议)基础上提出的一种安全的 HTTP协议,因此可以称为安全的超文本传输协议。HTTP 协议直接放置在 TCP 协议之上,而 HTTPS 提出在 HTTP 和 TCP 中间加上一层加密层。从发送端看,这一层负责把 HTTP 的内容加密后送到下层的 TCP;从接收方看,这一层负责将 TCP 送来的...
2020-04-27 17:39:44
239
原创 数据库三大范式学习笔记
1.范式的作用 在设计与操作维护数据库时,最关键的问题就是要确保数据能够正确地分布到数据库的表中。使用正确的数据结构,不仅有助于对数据库进行相应的存取操作,还可以极大地简化应用程序中的其他内容(查询、窗体、报表、代码等),按照“数据库规范化”对表进行设计,其目的就是减少数据库中的数据冗余,以增加数据的一致性。 &n...
2020-04-22 23:09:16
203
原创 MySQL索引类型和建立方式
1、普通索引 最基本的索引,它没有任何限制,用于加速查询。 创建方法:a. 建表的时候一起创建CREATE TABLE mytable ( name VARCHAR(32) , INDEX index_mytable_name (name) );b. 建表后,直接创建索引CREATE INDEX...
2020-04-22 00:31:06
150
原创 Linux系统中CPU占用率过高排查方法
今天面试的时候被面试官问到在Linux系统中,CPU占用率过高该如何排查和解决,可我并没有答上来……因为自己确实没有去了解过,也没有遇到过这个情况。 不过在此之前也听别人讨论过这个问题,这应该是开发运维中常见的一个典型故障吧,因此查阅了相关资料,在自己的云服务器上操作了一下,有了一点浅显的了解。第一...
2020-04-15 22:59:10
728
原创 Nginx负载均衡与调度算法
1.负载均衡 随着互联网的发展,网站的访问量也越来越大,服务器网站所提供的服务模式也在发生着改变,例如:当一台服务器无法承受巨大的访问流量时,使用多台服务器共同承载访问流量;再比如对客户的访问做资源判断,静态资源请求使用调度器调度到后端静态服务器群进行响应,动态资源请求调度到后端动态资源服务器群进行响应。这样就可以使用户访问量得到有效的负载的效果。而...
2020-04-14 23:37:11
216
原创 MySQL引擎、锁以及MVCC关系梳理
最近又陆陆续续学了些MySQL的底层原理,感觉数据库真的是开发中异常高深玄妙的东西。毕竟作为最底层的存储结构,数据库的安全和稳定对整个系统的稳定运行起到着至关重要的作用。 每次学习数据库的相关知识的时候,都觉得会有新的收获和感悟,从零零散散的知识点,逐渐能够拼凑起一个简单的结构,因此打算简单梳理一下自己...
2020-04-14 00:36:48
165
原创 LRU缓存机制(C/C++实现)
在操作系统中,段式存储、页式存储与段页式存储是文件存储的重要方式。其中,在页式存储中,CPU为了快速获取页的内容,会在内存中缓存一些出现频率较高的页面,如果需要访问未存储在内存中的页面,需要去外设中进行访问,并将其导入到内存;但是,由于内存中不可能承载过量的页面,所以,随着页面数量的增多,系统会覆盖掉一些不常用的页面,这个过程也就是常说的页面置换算法...
2020-04-13 23:16:59
574
原创 SnowFlake算法及其JAVA源码分析
在订单系统中,当消费者成功下单后,都会生成一个用于唯一识别的订单编号。目前,大多数的服务系统都为分布式系统,如何在分布式系统中生成具有一定顺序的全局唯一编号,既方便用作唯一标识,又方便数据库存储和索引,SnowFlake算法就派上用场啦。 为了满足Twitter每秒上万条消息的请求,每条消息都必须分配一...
2020-04-04 22:03:11
215
原创 [一道笔试题]手动实现字符串split功能
今天线上面试某厂,面试官出了这样一道题,大意就是:给定一个字符串,和一个分割字符串,将字符串进行分割,存入到一个数组中。例如一个字符串为:aa;;bb;;;cc;;;;dd;;,其中分割字符串为:;;,将字符串分割为:“aa”,“bb”,”;cc“,"",”dd“,”“,并且输出。面试官让我20分钟跑通算例,一开始我理解错了,以为分割字符串是固定的,后来在面试官的提醒下才发现那只是一个样例...
2020-04-03 21:46:28
350
1
转载 [转]正则化与LASSO回归、Ridge回归
最近实验室一个项目要对电池的SOH进行预测,项目要求基于大数据和人工智能技术进行处理,出于对海量数据降维的学习需求,看到了一些采用lasso回归的论文,在博客上面搜索了一些数据降维的内容,发现了一篇讲述正则化与回归不错的文章,赶紧收藏~PS:以前学电气的时候,一直以为高数就是王道,后来接触了机器学习才发现原来线性代数和概率论那么有用……看来为了做好项目,又要好好复习本科知识liao…点击打开博...
2020-03-28 13:11:19
124
原创 TCP流量控制与拥塞控制学习笔记
流量控制与拥塞控制的区别流量控制主要是面向建立TCP连接的两个端点之间的数据传输。流量控制的目的是动态控制发送方发送数据的速率,防止接收方无法及时有效处理发送数据。目前,TCP连接主要采用滑动窗口来实现流量控制,当接收方处理数据的压力较大时,可以发给发送方一个较小的滑动窗口,防止发送方传输速率过大;当处理数据压力较小时,可以发给发送方一个较大的窗口,从而使发送方提速。拥塞控制不是从TCP两点...
2020-03-26 10:53:13
174
转载 [转]JMM和底层实现原理
最近学习了JMM的相关知识,发现了一篇比较优质的博文,https://www.jianshu.com/p/8a58d8335270~收藏一下,用作以后复习。
2020-03-24 16:49:35
136
原创 SpringBoot异步接受RabbitMQ消息失败问题解决方案
最近在家自主学习一个项目,打算采用RabbitMQ来异步处理消息。首先,将信息封装在一个类里,发送到MQ中,再通过异步监听相应的队列,取出Queue中的消息并处理。 但是今天在操作时,发送消息至MQ是没有问题的,但是从MQ中取出消息出现了错误。经过排查,终于找到了原因,原来是我在消息类里面自主创建了...
2020-03-18 13:18:49
1068
转载 线程池的submit和execute方法区别
转自https://www.cnblogs.com/liuchuanfeng/p/6956014.html.线程池中的execute方法大家都不陌生,即开启线程执行池中的任务。还有一个方法submit也可以做到,它的功能是提交指定的任务去执行并且返回Future对象,即执行的结果。下面简要介绍一下两者的三个区别:1、接收的参数不一样2、submit有返回值,而execute没有用到返回值的...
2020-03-15 17:35:00
152
转载 JAVA对象克隆
在学习JAVA克隆时,发现了一篇介绍非常详细的帖子,学到了~https://www.cnblogs.com/Qian123/p/5710533.html
2020-03-10 22:11:23
103
原创 (面经)自制JVM垃圾回收流程图
参考自https://github.com/pzxwhc/MineKnowContainer/issues/26,https://blog.csdn.net/ni357103403/article/details/51943379?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_rel...
2020-03-10 21:22:23
712
1
原创 Mybatis逆向工程不生成文件解决方案(connectionURL配置问题)
由于需要,希望生成mysql几个表的pojo类,mapper接口和mapper.xml文件,又由于手动操作太麻烦,因此希望用到Mybatis的逆向工程直接生成所需文件。结果却一直出现运行时不抛出异常和错误,但始终不能生成对应文件的问题。如图所示。 经过一系列排查之后,终于找到了问题所在……1...
2020-03-09 23:35:23
1113
4
原创 Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'.解决方案
最近在用IDEA学习过程中,想用IDEA直接操作MySQL数据库,但是中途出现了以下问题:Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezon’.经过查阅资料,发现是数据库时差问题。MySQL默认的时区是UTC时区,比北京时间晚8个小时。因此要修改MySQL的标准时间。可以通过cmd指令进...
2020-03-07 22:05:09
161
原创 Mysql官网下载过慢问题解决方案
最近希望通过搭建一个秒杀系统实战来学习springboot、redis、rocketMQ等知识,在搭建环境的过程中遇到了重重困难… 因为需要用到Mysql,之前只停留在理论学习,这次不得不实战了,因此决定去官网下载Mysql,之前一直了解到官网直接下载奇慢无比,今天终于找到了解决方案…首先...
2020-03-07 11:20:38
1485
原创 Spring Boot配置文件学习笔记
1. 配置文件SpringBoot使用一个全局的配置文件,配置文件名固定;application.propertiesapplication.yml配置文件的作用: 修改自动配置的默认值;因为SpringBoot在底层都已经配置好;YAML标记语言:以前的配置文件,大多都使用的是xxx.xml文件;以数据为中心,比json、xml更适合做配置文件语法更加简洁serve...
2020-03-06 17:33:51
95
原创 Spring Boot环境部署与Hello World
1.Spring Boot简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2.微服务2014 Martin Fowler提出微服务:架构风格一个应用应该是一个小型服务;可以通过HTTP的方式进行互通;单体服务:一个单题应用程序把所有功能放在一个单一进程中;微服务架构:把每个功能元素放进一个独立的服务中;每一个功能元素最终...
2020-03-05 22:04:43
76
原创 Redis常用数据结构学习笔记
在对Redis进行操作之前,首先要确定你要操作的数据库,Redis一共有16个数据库,当然也可以通过修改databases值调整,默认情况下我们操作的是0号数据库,可以通过以下指令进行修改:select n其中n就是我们期望操作的数据库。接下来就可以愉快地操作和摩擦咯。1. Redis常用数据类型String:Redis的String可以...
2020-03-02 13:48:32
105
原创 培养坚持写博客的(好)习惯...
立个flag…从今天起坚持写博客…1.记录自己近期所学与收获2.复习曾经学习过的重要知识3.反正也没啥人看……希望很久以后看到自己一点一滴(吭哧瘪肚)的学习历程,应该也会回忆满满吧~...
2020-03-02 10:28:56
100
原创 Redis安装、配置与启停
1. Redis简介 Redis 是完全开源免费的,遵守BSD协议(一种开源协议),基于key-value存储的单进程单线程的NoSQL(泛指非关系型)型数据库。Redis由ANSI C语言编写,可基于内存亦可持久化,支持订阅、事务等功能,同时提供多种语言的API,如JAVA的Jedis包等。 敲黑板重...
2020-03-02 00:34:29
141
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人