自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BIGBAI的博客

分享成长,交流进步!

原创 STM32的PID温控

  K_SENSOR热电偶作为温度传感器,50w电烙铁作为加温设备作为控制对象,预先设定一个温度值,微处理器为ARM公司Cortex-M3内核,STM32F103ZET6型号,开发板需用3.3v供电运行。采用MAX6675芯片作为K型热电偶信号调理电路,它将从热电偶读取温度值并转换为12位数字量...

2019-01-10 17:40:43 4012 0

原创 Mybatis插件原理分析分页插件

在Mybatis中插件最经常使用的是作为分页插件,接下来我们通过实现Interceptor来完成一个分页插件。 虽然Mybatis也提供了分页操作,通过在sqlSession的接口函数中设置RowBounds,给RowBounds设置初值(RowBounds源码)来实现逻辑分页,其实现原理就是通...

2019-09-26 16:09:45 56 0

原创 Mybatis逻辑分页原理解析RowBounds

Mybatis提供了一个简单的逻辑分页使用类RowBounds(物理分页当然就是我们在sql语句中指定limit和offset值),在DefaultSqlSession提供的某些查询接口中我们可以看到RowBounds是作为参数用来进行分页的,如下接口: public <E> L...

2019-09-26 16:05:09 40 0

原创 prim算法

class minMgraphTree { public void createMgraph(MGraph graph, int vertes, char[] vertex, int[][] weight) { for (int i = 0; i < vertes; ...

2019-09-21 21:51:10 81 0

原创 Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别

在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程...

2019-09-17 17:37:17 92 0

原创 AVL树

AVL树 给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在 上面BST(二叉排序树) 存在的问题分析: 左子树全部为空,从形式上看,更像一个单链表. 插入速度没有影响 查询速度明显降低(因为需要依次比较), 不能发挥BST的优势,因为每次还需要...

2019-09-15 09:31:40 57 0

原创 redis分布式锁(高并发)

redis分布式锁(高并发) redis是天生单线程特性,的内存缓存服务器,当有多个线程同时访问一台redis服务器时,redis会在内部对线程进行排队。所以redis可以用此特性进行分布式锁。 高并发的场景下,redis分布式锁很可能永久失效。 redis分布式锁使用了cas算法原理。 ...

2019-09-14 21:10:17 506 0

原创 哈夫曼树

哈夫曼树 wpl带权路径长度最小的树 二叉树树的思想: 创建节点, 创建二叉树, 其中二叉树的操作都定义在节点类里面,二叉树类里调用这些方法,其中定义方法的时候以一个节点为二叉树递归定义。因为一个节点就是一颗二叉树。 package binaryTree.huffmanTree; im...

2019-09-14 21:00:44 33 0

原创 Java中==和equals的区别(详细)

要想充分了解==和equals的区别需要对java的内存有所了解: Java内存模型中存在这两种内存区域:一种是栈内存,一种是堆内存。(注:程序计数器,运行时数据区,永久代,直接内存这里不讨论,因为java对象保存在栈内存(基本数据类型)和堆内存(引用数据类型和包装类)中)   在函数中定义的...

2019-09-12 21:16:48 59 0

原创 堆排序

1:堆 毫无疑问,排序两个字没必要去死磕,这里的重点,在于排序的方式,堆排序,就是以堆的形式去排序,毫无疑问,了解堆很重要。 那么,什么是堆呢? 这里,必须引入一个完全二叉树的概念,然后过渡到堆的概念。 上图,就是一个完全二叉树,其特点在于: 从作为第一层的根开始,除了最后一层之外,...

2019-09-10 15:52:20 43 0

原创 关于synchronized、wait、notify已经notifyAll的使用

前言:关于synchronized、wait、notify已经notifyAll大家应该不陌生,现在我大致说一下我的理解。 一:synchronized synchronized中文解释是同步,那么什么是同步呢,解释就是程序中用于控制不同线程间操作发生相对顺序的机制,通俗来讲就是2点,第一要有...

2019-08-04 16:19:59 94 0

原创 java单例模式

单例模式的五种实现方式 1、饿汉式(线程安全,调用效率高,但是不能延时加载): 1 2 3 4 5 6 7 publicclassImageLoader{ privatestaticImageLoader i...

2019-08-04 15:30:21 33 0

原创 springSecurity原理

最近在公司的项目中使用了springsecurity框架,所以有机会来学习一下,公司的项目是使用springboot搭建springBoot版本1.59 spring security版本4.2.3 (个人理解可能会有偏差,希望有不正确之处,大家能够指出来,共同探讨交流。) 一、Spring...

2019-05-16 14:07:26 600 0

原创 浏览器存储(cookie、localStorage、sessionStorage)

互联网早期浏览器是没有状态维护,这个就导致一个问题就是服务器不知道浏览器的状态,无法判断是否是同一个浏览器。这样用户登录、购物车功能都无法实现,Lou Montulli在1994年引入到web中最终纳入W3C规范 RFC6265中。 区别 cookie在浏览器请求中每次都会附加请求头中...

2019-05-15 13:45:08 41 0

原创 OAuth 2.0

The OAuth 2.0 Authorization Framework OAuth 2.0授权框架支持第三方支持访问有限的HTTP服务,通过在资源所有者和HTTP服务之间进行一个批准交互来代表资源者去访问这些资源,或者通过允许第三方应用程序以自己的名义获取访问权限。 为了方便理解,可以想象...

2019-05-12 19:14:52 32 0

原创 Spring Security OAuth 2.0

续·前一篇《OAuth 2.0》 OAuth 2.0 Provider 实现 在OAuth 2.0中,provider角色事实上是把授权服务和资源服务分开,有时候它们也可能在同一个应用中,用Spring Security OAuth你可以选择把它们分成两个应用,当然多个资源服务可以共享同一个授...

2019-05-12 19:12:38 60 0

原创 Webstorm注册码 永久有效

2RRJMBXW33-eyJsaWNlbnNlSWQiOiIyUlJKTUJYVzMzIiwibGljZW5zZWVOYW1lIjoi5b285bK4IHNvZnR3YXJlMiIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbn...

2019-05-07 15:47:17 513 1

原创 ssi include 命令 路径问题

ssi (server side include),将内容发送到浏览器之前,可以使用“服务器端包含 (SSI)”指令将文本、图形或应用程序信息包含到网页中 Include 命令可以把其它文档中的文字或图片插入到当前被解析的文档中,这是整个SSI的关键所在。通过Include命令只需要改动一个文件...

2019-04-26 11:41:01 204 0

原创 FastDFS测试

上传测试 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf 100sh.jpg 1 上传成功后返回 group1/M00/00/00/rBBNW1sJCvCAHgH7AAVGh5jPYok707.jpg 1 返回的文件ID由group、存储目录、两...

2019-04-22 17:02:50 680 0

原创 Nginx的location规则:优先级和路径替换

Nginx是反向代理和负载均衡的首选工具,nginx的location配置有许多细节内容在网上不容易找到资料,或者解释不清。本文对locaiton的常见特性进行介绍。 location的优先级 locaiton有四中类型的匹配规则,分别为完全匹配(=)、前缀普通匹配(^~)、正则表达式匹配...

2019-04-22 17:00:04 1536 0

原创 FastDFS

、简介 FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。 FastDFS 系...

2019-04-22 14:40:47 214 0

原创 Nginx详解(正向代理、反向代理、负载均衡原理)

Nginx配置详解 nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简单...

2019-04-19 11:27:54 60 0

原创 vue-Cli

1. 避坑前言 其实这次使用vue-cli的过程并不顺利,反复尝试几次都遇到以下这个报错: 创建vue-cli工程项目时的报错 在网上查了很多资料才发现原来是node版本过低的问题,虽然没有找到官方对这个“过低”问题的解释,但是根据国外网友的经验之谈,应该是至少使用node6,我将no...

2019-04-17 12:50:12 37 0

原创 Angular Cli-webpack

一、引言 Angular从开发再到生产环境部署都离不开Angular Cli工具集,而Angular Cli本质上是使用 Webpack(当前使用版本为2) 来打包资源。 Webpack 本身并不复杂,略用过一点都清楚,只需要创建一个 webpack.config.js 的文件并简单的配置,就...

2019-04-17 11:12:48 591 0

原创 全局安装 Angular CLI

网上关于Angular CLI的安装指南有很多,但总是缺一些细节,而这些细节总是导致各种各样的错误。现将安装过程记录如下。 安装前提:Nodejs已安装!Nodejs中包含npm,可用来下载各种工具插件。 安装步骤 (1)若之前安装过Angular CLI,则需要卸载,并清空缓存。 npm ...

2019-04-16 11:01:12 239 0

原创 SpringBoot整合Swagger2

相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。 手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时。 接口返回结果不明确 ...

2019-04-14 20:35:46 24 0

原创 Lombo使用

1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a spicier language by adding 'handlers' that know how to build and compile simple, boiler...

2019-04-14 12:46:06 418 0

原创 Spring cloud 2下使用Feign找不到@EnableFeignClients的解决办法

最近在实践Spring Boot 2+Spring Cloud(Finchley.M9),在用到Feign的时候发现@EnableFeignClients注解开不了,独立使用Feign是可以的,但就是开启不了Spring对Feign的支持.经过一番摸索终于把问题解决了,在这里分享一下解决方案和思路...

2019-04-12 16:32:58 393 0

原创 外网访问内网(内网穿透)方法总结

自建服务器或者监控时,如何使外网设备访问到内网,是个麻烦问题。 这个任务称为内网穿透,解决方法通常是端口映射与端口转发。 网上关于端口映射与端口转发之间区别的讨论很多,观点也不尽相同,在此我也无意争辩二者的区别,因为实际情况是,端口映射与端口转发这两个词在很多时候都混用了。 在本文中,请各位...

2019-04-10 11:10:20 18672 1

原创 TCP和UDP的区别和优缺点

1、TCP与UDP区别总结: 1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付 Tcp通过校验和,重传控制,序号...

2019-04-09 10:16:35 63 0

原创 socket,tcp,http三者之间的区别和原理

http、TCP/IP协议与socket之间的区别 下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置: 7 应用层 例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP 6 表示层 ...

2019-04-07 17:22:11 96 0

原创 RabbitMQ Connection Channel 详解

首先展示网络上的两种图: AMQP : Rabbit各关键组件交换流程: Rabbit 内部线程图: 1.ConnectionFactory、Connection、Channel ConnectionFactory、Connection、Channel都是Rabbit...

2019-04-07 17:10:58 4420 0

原创 Redis 持久化之RDB和AOF

Redis 持久化之RDB和AOF Redis 持久化之RDB和AOF Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,...

2019-04-02 10:02:12 58 0

原创 centos7下安装redis

一、安装redis 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz [root@iZwz991stxdwj560bfmadtZ local]# wget http://download.r...

2019-03-31 16:46:46 40 0

原创 CAP原则(CAP定理)、BASE理论

 CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。   CAP原则是NOSQL数据库的基石。Consistency(一致性)。 Availabilit...

2019-03-30 15:30:32 129 0

原创 cJSON在STM32中的应用

写在前面: 将JSON应用在STM32上面已经很普遍了,但还是有很多问题在网上找不到答案,毕竟自己造轮子和找轮子造车还是有点差别。 今天就总结一下最近在STM32上使用cJSON所遇到的一些问题。 -------------------------------------------正文开始线...

2019-03-28 21:52:44 287 0

原创 cJSON的构造和解析

1.JSON格式简述 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。...

2019-03-28 21:50:29 162 0

原创 【UCOSIII】UCOSIII的任务调度和切换

UCOSIII任务调度 可剥夺型任务调度 任务调度就是中止当前正在运行的任务转而去执行其他的任务。 UCOSIII是可剥夺型内核,因此当一个高优先级的任务准备就绪,并且此时发生了任务调度,那么这个高优先级的任务就会获得CPU的使用权! UCOSIII中的任务调度是由任务调度器来完成的,任务调度...

2019-03-22 17:21:32 143 0

原创 安装docker

Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如经过官方测试认证过的基础设施、容器、插件等。 社区版按照stable和edge两种方式发布,每个季度更新stable版本,如17...

2019-03-19 14:09:55 29 0

原创 Java 多线程 并发编程

1、操作系统有两个容易混淆的概念,进程和线程。 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。 线程:表示程序的执行流程,是CPU调度执行的基本单位;...

2019-03-18 20:14:45 33 0

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