自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Docker 核心技术与基本原理

Docker 核心技术与基本原理1. Docker 简介1.1 背景1.2 简介1.3 Docker 优点1.4 Docker 和虚拟机2. Docker 架构2.1 Host(宿主机)2.1.1 Docker Daemon(Docker 守护进程)2.1.2 Images(镜像)2.1.3 Containers(容器)2.2 Docker Client(Docker客户端)2.3 Registry(仓库服务注册)3. Docker 安装3.1 准备3.2 安装3.3 配置镜像加速4. Docker 常用操

2020-06-25 16:54:30 1584

原创 还不懂排序算法可以打我了!

排序算法0. 前言1. 冒泡算法2. 插入算法3. 希尔排序4. 归并排序5. 快速排序6. 堆排序7. 基数排序8. 总结0. 前言       评价一个算法的好坏,除了其是否具有较低的时间复杂度之外,还有其稳定性以及空间复杂度。       稳定性的判断标注是数组元素的值相同时,进行元素交换后,相对位置如果发生变化,变化则不具有稳定性。1. 冒泡算法&nb

2020-06-16 01:59:09 2135 5

原创 04-Flink Window API

Window API1. Window 简介概念窗口类型滚动窗口(Tumbling Windows)滑动窗口(Sliding Windows)会话窗口(Session Windows)2. Window APIWindowAssigne窗口创建窗口函数增量聚合函数全量窗口函数计数窗口1. Window 简介概念一般真实的流都是无界的,怎么处理无界的数据?可以把无限的数据流进行切分,得到有限的数据集进行处理(即转换为有界流)。窗口(window)就是将无限流切割为有限流的一种方式,它会将流数据分发

2021-11-29 23:46:45 1052

原创 03 - Flink 流处理 API

流处理 API1. EnvironmentgetExecutionEnvironmentcreateLocalEnvironmentcreateRemoteEnvironment2. Source从集合读取数据从文件读取数据从 kafka 读取数据自定义 Source3. TransformmapflatMapFliterkeyBy滚动聚合算子       Flink 流处理 API 的调用过程主要分为以下几个步骤: &n

2021-11-14 23:23:00 1697

原创 02- Flink 部署、运行架构

Flink 部署、运行架构1. Flink 部署1. Flink 部署       Flink有多种部署方案:standalone 方式、yarn模式,k8s部署。       由于环境限制,这里只展示 standalone 单机部署方案。       首先下载最新版,然后进行解压。&n

2021-10-31 23:38:38 1062

原创 01-Flink 入门

01-Flink 入门1. Flink 定义StreamsStateTimeAPI2. Flink 快速上手创建 maven 工程wordcount批处理流处理3.Flink DataStream 程序结构1. Flink 定义      Apache Flink is a framework and distributed process engine for stateful computations over unbounded and

2021-10-31 21:47:24 1065

原创 Vue.js 路由

路由1. vue-router 基本使用安装使用说明路由的默认路径修改为 history 模式router-link 补充tagreplacelinkActiveClass代码路由跳转动态路由路由懒加载懒加载效果懒加载方式2. vue-router 嵌套路由3. 参数传递4. 导航守卫5. keep-alive1. vue-router 基本使用       vue-router 是 Vue.js 官方的路由插件,适合用户构建单页面应

2021-09-25 20:08:00 1311

原创 Vue.js 组件化开发

三、组件化开发1.1 组件化的实现和使用步骤组件注册步骤解析1.2 全局组件和局部组件1.3 父组件和子组件1.4 注册组件语法糖1.5 组件模板抽离的写法       人面对复杂问题的处理方式:任何一个人处理信息的逻辑能力都是有限的所以,当面对一个非常复杂的问题时,我们不太可能—次性搞定一大堆的内容。但是,我们人有一种天生的能力,就是将问题进行拆解。如果将一个复杂的问题,拆分成很多个可以处理的小问题,再将其放在整体当中,你会发

2021-04-21 21:38:55 2619 9

原创 Vue.js 基础语法

二、Vue.js 基础语法1.1 插值文本1.1 插值文本       数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:

2021-04-18 14:02:41 974 2

原创 Vue.js 简介

一、Vue.js 简介1.1 认识 Vue.js1.2 Vue.js 安装1.3 Vue.js 初体验案例一案例二案例三1.4 Vue.js 的 MVVM1.5 Vue 实例的 options1.6 Vue 的生命周期1.1 认识 Vue.jsVue (读音 /vjuː/,类似于 view)Vue 是一套用于构建用户界面的渐进式框架,什么是渐进式的呢?渐进式意味着你可以将 Vue 作为你应用的一部分嵌入其中,带来更丰富的交互体验体验。或者如果你希望将更多的业务逻辑使用使用 Vue 实现,

2021-04-13 21:07:25 1746

原创 SpringMVC 执行流程(深入源码)

SpringMVC 执行流程1. 简介2. 深入源码2.1 Debug2.2 doDispatch2.2.1 getHandler(processedRequest)2.2.2 getHandlerAdapter(mappedHandler.getHandler())2.2.3 handle(HttpServletRequest request, HttpServletResponse response, Object handler)2.2.4 applyPostHandle(processedReque

2020-08-12 23:55:50 1132

原创 RPC 与 HTTP 区别

RPC 与 HTTP 区别1. 前言2. 正文3. HTTP 既然也是 RPC 的一种实现?为什么公司还要自研 RPC 框架?1. 前言       网上很多博客都是在说HTTP与RPC采取不同的协议,RPC所传输的数据是经过压缩的二进制数据,但是HTTP协议同样支持gzip压缩算法。其次,另一个说法就是HTTP的报头所占的有太多无效信息,但是20-60字节的首部长度会对业务有很大影响吗?以现阶段计算机处理及网络传输速度,应该并无影响

2020-08-06 10:45:18 5725 5

转载 大量的TIME_WAIT状态TCP连接,对业务有什么影响?怎么处理?

TIME_WAIT1. 声明2. 问题描述:什么现象?什么影响?3. 问题分析4. 解决办法5. 附录附录 A:查询 TCP 连接状态附录 B:MSL 时间附录 C:TCP 三次握手和四次握手1. 声明       本篇博客转载自面试官问:大量的TIME WAIT状态TCP连接,对业务有什么影响?怎么处理?2. 问题描述:什么现象?什么影响?       在四次

2020-07-31 22:43:54 1283

原创 Redis - 跳表

跳表0. 前言1. 结构源码2. 创建3. 插入4. 删除5. 获取0. 前言       Redis的跳表在面试过程中,经常被问到,这里通过源码深入研究一个其实现原理。1. 结构源码// 跳表中的每一个节点的结构typedef struct zskiplistNode { // 成员对象,sds 结构 sds ele; // 分值 double score; // 后退指针,指向当前节点

2020-07-25 19:58:43 270

转载 Spring - AOP

AOP0. 声明1. AOP 是什么2. AOP 概念2.1 JoinPoint2.2 Pointcut2.3 Advice2.4 Aspect2.5 织入和织入器2.6 Target3. Spring 中的实现3.1 Pointcut3.2 Advice(1)MethodBeforeAdvice(2)ThrowsAdvice(3)AfterReturningAdvice(4)MethodInterceptor(5)Introduction3.3 Aspect3.3.1 PointcutAdvisor3.3

2020-07-22 13:38:36 144

转载 Spring - Bean 生命周期

Bean 生命周期0. 声明1. 引言2. 生命周期的概要流程3. 扩展点的作用3.1 Aware 接口3.2 BeanPostProcessor3.3 InitializingBean 和 init-method4. 总结0. 声明       Bean生命周期可谓是面试的重点,恰好看到这篇生命周期讲解极为清楚的一篇文章,故转载。如何记忆 Spring Bean 的生命周期 1. 引言   &nbs

2020-07-22 09:36:38 179

转载 Spring - 事务

Spring 事务1. 解决什么问题2. 如何解决2.1 繁杂的事务管理API2.2 大量的异常处理代码2.3 业务处理代码与事务管理代码混杂3. 存在什么问题3.1 非public方法失效3.2 自调用失效3.3 检查异常默认不回滚3.4 catch异常无法回滚1. 解决什么问题       让我们先从事务说起,“什么是事务?我们为什么需要事务?”。事务是一组无法被分割的操作,要么所有操作全部成功,要么全部失败。我们在开发中需要通

2020-07-22 00:28:19 219

转载 Spring - 循环依赖

循环依赖1. 声明2. 循环依赖简介3. 正文3.1 注解属性注入3.2 构造器注入4. 小结1. 声明       循环依赖可谓是面试的重点,恰好看到这篇循环依赖讲解极为清楚的一篇文章,故转载。Spring源码-循环依赖(附25张调试截图)2. 循环依赖简介       在介绍循环依赖之前,我们先介绍一下为什么会产生循环依赖?在Spring中,我们完成Bean

2020-07-21 23:32:28 212

原创 I/O 复用:select 、poll 和 epoll 函数

I/O 复用1. 简介2. I/O 模型2.1 阻塞式 I/O2.2 非阻塞式 I/O2.3 I/O 复用 (select、poll、epoll)2.4 信号驱动式 I/O (SIGIO)2.5 异步 I/O (AIO)2.6 I/O 模型对比2.7 同步 I/O 和异步 I/O 对比3. select 函数4. poll 函数5. epoll 函数1. 简介       I/O指数据在内存和外部设备(磁盘、网卡、键盘等)之间来回复制

2020-07-17 13:58:48 299

转载 策略模式

策略模式1. 模式动机2. 模式定义3. 模式结构4. 时序图5. 代码分析6. 模式分析7. 优点8. 缺点9. 适用环境1. 模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。在软件系统中,有许多算法可以实现某一功能,如查找、排序等,一种常用的方法是硬编码(Hard

2020-07-07 12:31:35 309

转载 undo log与 redo log 原理分析

undo log 与 redo log0. 前言1. 简介2. undo log原理3. redo log 原理0. 前言       一直不是很理解redo和undo的工作原理,恰好在看到知乎用户张友东的这篇博客,讲的听清楚,故转载,在此鸣谢。1. 简介       数据库通常借助日志来实现事务,常见的有undo log、redo log,undo/redo

2020-07-06 11:45:55 725 1

原创 网络层

网络层1. 简介2. 数据交换方式2.1 电路交换2.2 报文交换2.3 分组交换3. 路由算法3.1 OSPF3.2 RIP4. ARP 协议1. 简介       主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。       网络层传输单位是数据报。       网

2020-07-05 21:24:33 1436

原创 HTTP

HTTP1. HTTP 协议本质2. HTTP 工作原理3. HTTP 请求响应实例4. Cookie 和 Session4.1 Cookie 技术4.2 Session 技术4.3 Session创建与存储5. HTTP 状态码1. HTTP 协议本质       HTTP协议是浏览器与服务器之间的数据传送协议。作为应用层协议,HTTP是基于TCP/IP协议来传递数据的(HTML文件、图片、查询结果等),HTTP协议不涉及数据包(P

2020-07-05 20:17:48 468

原创 三次握手、四次挥手

三次握手、四次挥手1. TCP 首部结构2. 三次握手3. 四次挥手1. TCP 首部结构      在介绍三次握手,四次挥手之前,我们需要了解TCP的首部结构,因为握手与挥手,都是通过TCP的首部结构所表示的数据所完成。(1)源端口和目的端口分别为通信双方所占用端口号。(2)序列号,在TCP 连接中传送的字节流中的每一个字节都是按顺序编号。       例如,一报文段

2020-07-05 18:38:35 284

原创 8-页面置换算法

页面置换算法最佳置换算法(OPT)先进先出置换算法(FIFO)最近最久未使用置换算法(LRU)时钟置换算法(CLOCK)改进的时钟置换算法      请求分页存储管理与基本分页存储管理的主要区别:      在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。      若内

2020-07-05 13:12:10 466

转载 代理模式

代理模式1. 代理模式2. 延迟加载2.1 延迟加载实例3. 动态代理3.1 动态代理实例(JDK)3.1.1 生成动态代理对象3.2 动态代理实例(CGLIB)3.2.1 定义接口3.2.2 定义实现类3.2.3 定义反射类及重载方法3.2.4 运行程序4. 代理模式的应用场合1. 代理模式       代理模式使用代理对象完成用户请求,屏蔽用户对真实对象的访问。     &nbs

2020-07-02 17:41:17 132

转载 适配器模式

适配器模式1. 适配器模式基本介绍2. 适配器模式使用示例代码3. 适配器模式在开源项目中的应用4. 适配器模式使用注意事项5. 结束语1. 适配器模式基本介绍       著名的设计模式“四人帮”这样评价适配器模式:       将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。——Gang

2020-07-02 13:48:12 157

原创 设计模式

设计模式1. 创建型模式1.1 概述1.2 常见创建型模式详解1.2.1 单例模式1.2.2 工厂模式1.2.3 建造者模式1.2.4 原型模式未完待续1. 创建型模式1.1 概述创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。创建型模式在创建什么(What),由谁创建(Who),何时创建(Wh

2020-07-01 20:36:38 155

转载 原型模式

原型模式1. 简介2. 原型模式介绍2.1 定义2.2 适用场景2.3 模式分析2.4 原型模式优点2.4 原型模式缺点3. 示例程序3.1 Product接口 (Prototype)3.2 Manager类(Client)3.3 MessageBox类(ConcreteProtorype)3.4 UnderlinePen类(ConcreteProtorype)3.5 Main类4 原型模式的角色分析4.1 Prototype(抽象原型类)4.2 ConcretePrototype(具体原型类)4.3 Cl

2020-07-01 20:35:39 216

转载 建造者模式

建造者模式1. 简介2. 建造者模式介绍2.1 定义2.2 建造者模式的优点2.3 建造者模式的缺点2.4 抽象工厂模式 VS 建造者模式2.5 模式结构2.5.1 UML结构图2.5.2 建造者模式主要包含四个角色3. 建造者模式分析4. 实例:KFC套餐4.1 Product(产品角色)4.2 Builder(抽象建造者)4.3 ConcreteBuilder(具体建造者)4.4 Director(指挥者)4.5 测试类(客户端类)1. 简介    &nbsp

2020-07-01 19:43:48 257

转载 工厂模式

工厂模式1. 工厂模式介绍1.1 工厂模式定义1.2 工厂模式的分类1.3 为什么要用工厂模式2. 简单工厂模式2.1 介绍2.2 适用场景2.3 简单工厂模式角色分配2.4 简单工厂实例2.5 使用反射机制改善简单工厂3. 工厂方法模式3.1 介绍3.2 适用场景3.3 工厂方法模式角色分配:3.4 工厂方法模式实例4. 抽象工厂模式4.1 介绍4.2 适用场景4.3 抽象工厂方法模式角色分配:4.4 抽象工厂的工厂和工厂方法中的工厂有什么区别4.5 抽象工厂模式实例1. 工厂模式介绍1.1 工厂模式

2020-07-01 18:55:16 132

转载 单例模式

单例模式1. 简介1.1 定义1.2 为什么使用单例模式1.3 为什么不使用全局变量确保一个类只有一个实例呢2. 单例的模式的实现2.1 饿汉式(线程安全)2.2 懒汉式(非线程安全和synchronized关键字线程安全版本 )2.3 懒汉式(双重检查加锁版本)2.4 懒汉式(静态内部类方式)2.5 饿汉式(枚举方式)1. 简介1.1 定义       保证一个类只有一个实例,并提供一个访问它的全局访问点。1.2 为什么使用单例

2020-07-01 18:51:00 113

原创 二叉树

二叉树1. 树(Tree)的基本概念2. 有序树、无序树和森林3. 二叉树4. 二叉树的性质5. 真二叉树6. 满二叉树7. 完全二叉树8. 完全二叉树的性质测试题9. 构建二叉树10. 二叉树的遍历前序遍历中序遍历后序遍历层序遍历11. 遍历的应用树状打印二叉树计算二叉树的高度判断一棵树是否为完全二叉树翻转二叉树重建二叉树1. 树(Tree)的基本概念       树(Tree)是n(n≧0)个结点的有限集。在任意一颗非空树中:有且

2020-07-01 17:24:08 606

原创 SpringBoot 配置文件

SpringBoot1. 前言2. SpringBoot 配置文件的种类3. 两种配置文件的区别3.1 内容格式比较3.2 执行顺序4. YML 语法4.1 基本语法4.2 值的写法4.2.1 字面量: 普通的值(数字、字符串、布尔)4.2.2 对象、Map(属性和值)(键值对)4.2.3 数组(List、Set)5. 两种配置文件获取值的方式5.1 通过 @ConfigurationProperties 注解5.1.1 使用@Component注解5.1.2 使用 @configuration 注解5.1

2020-06-30 01:26:55 1923

原创 SpringBoot 自动配置源码分析

SpringBoot1. SpringBoot 项目快速搭建2. HelloWorld 探究2.1 pom.xml2.1.1 父项目2.1.2 导入的依赖2.2 主启动类2.2.1 @SpringBootApplication2.2.2 @EnableAutoConfiguration@AutoConfigurationPackageAutoConfigurationImportSelector1. SpringBoot 项目快速搭建创建一个 maven 工程(jar)导入SpringBoot 相关

2020-06-29 21:38:32 318

原创 Java I/O

       部分内容参考:https://blog.csdn.net/yjp198713/column/info/18912I/O1. 概述1.1 I/O 是什么1.2 I/O 对性能的影响1.3 同步与异步1.4 阻塞与非阻塞2. BIO (Blocking I/O)2.1 传统 BIO 示例2.2 伪异步 BIO 示例2.3 阻塞的问题根源3. NIO (No Blocking I/O)3.1 Java NIO 简介Channel

2020-06-19 21:47:25 164

原创 剑指offer

剑指offer Coding1. 前言2. 数组中重复的数字2.1 找出数组中重复的数字2.2 不修改数组找出重复的数字3. 二维数组查找4. 倒序打印列表5. 重建二叉树1. 前言       打算刷一遍《剑指Offer》中的题,其中部分解法来自于原书,建议可以观看原书,相关分析很有益处,不要为了刷题而刷题。2. 数组中重复的数字2.1 找出数组中重复的数字/** * * 在一个长度为 n 的数组里的所有数字都在 0~n-

2020-06-19 01:54:44 149

原创 进程间通信

进程间通信1. 前言2. 使用文件实现进程间的通信3. 使用管道实现进程间的通信4. 共享内存5. 以上三种通信方式的区别6. 信号量7. 信号8. 消息队列1. 前言       进程间通信的方式可谓是面试热点,面试的时候也曾有幸被问到。当时呢是背的面试题,对进程间通信的原理也不是很了解。今天呢就深入了解进程间的通信。       首先捋一捋进程间的通信有哪几种

2020-06-18 13:01:56 268

原创 Java SE 不得不注意的地方

Java SE0. 前言1. 面向过程和面向对象2. JDK、JRE和JVM的区别3. 基本数据类型和包装类型4. 自动拆装箱4.1 实现原理4.2 缓存池5. Object6. String6.1 StringBuilder6.2 StringBuffer7. 抽象类与接口8. 重载和重写9. 多态0. 前言       以下内容,是我认为SE部分比较有意思的地方 ,故特此编写。如果有其他重要的点被遗漏, 欢迎评论区补充,补充后期

2020-06-15 19:30:38 364

原创 MySQL之读写分离

MySQL之读写分离1. 前言2. 复制的工作原理3. 主从不一致原因4. 主从不一致解决方案1. 前言       Redis 主从复制       MySQL读写分离的作用同Redis主从复制一样,写请求由Master负责,读请求由Slave负责。从而实现读写在不同实例完成,提高读写的并发量。2. 复制的工作原理   &nbs

2020-06-14 21:53:41 290

空空如也

空空如也

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

TA关注的人

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