自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 ElasticSearch理论及实操

1. 全文检索1.1 全文检索流程主要分两大部分:创建索引和查询索引1.2 全文检索概念在MySQL中查询某条记录使用的一定是列名,也就是在创建数据库时已经写死的列名名称。在查询时,使用该列名去匹配用户输入的查询内容。在ES中,创建索引库的时候,不是简单的写死列名,而是由一套流程根据原始的文档进行分词后创建的索引。在查询时,只需要将用户输入的索引与创建索引库时生成的那些索引进行匹配,若匹配则返回这个或者这些索引对应的原始文档。这种先建立索引,再对索引进行搜索的过程就叫全文检索(Ful

2021-09-21 17:57:58 209 1

原创 MQ消息队列之RabbitMQ的安装和原理

1. RabbitMQ安装1.1 推荐方法:docker安装一行命令搞定:docker pull rabbitmq:management开启宿主机与容器的两个重要的端口映射即可:docker run -id -p 5672:5672 15672:15672 rabbitmq:managementRabbitMQ在安装好后,可以访问宿主机IP地址:15672使用其默认用户名和密码均为guest进行后台管理界面登录。1.2. 在宿主机上安装(不推荐)安装包地址:http:/

2021-09-17 19:44:39 360

原创 Nginx服务器初步应用和说明

1. Nginx用途场景高性能HTTP服务器做网页静态服务器虚拟主机:可以虚拟出多个网站反向代理服务器反向代理,负载均衡电子邮件(IMAP/POP3)代理服务器2. docker安装Nginx使用docker安装:docker search nginxdocker pull nginx创建容器,设置端口映射,目录映射:# 在/root⽬录下创建nginx⽬录⽤于存储nginx数据信息mkdir ~/nginxcd ~/nginxmkdir confc

2021-09-15 22:11:53 141

原创 分布式RPC之Dubbo

分布式RPC之Dubbo1. 软件架构演变一个项目的概念是复杂的,可以由多个架构构成,每个架构里有多种框架,涉及多个进程等。补充知识点:垂直划分和水平划分的广泛意义,以日常生活中的成绩单为例将原本一张表垂直划分为两张表,分别列出文理科成绩。将原本一张年级成绩表水平划分为各个班级的表。1.1 单体架构从功能角度:全部集中在一个项目,同种语言开发前期优势:低成本,短周期。后期做大项目劣势:性能扩展只能增加集群节点,成本高。1.2 垂直架构功能上切割,大项目划分为多个单体项目

2021-09-08 22:03:57 137

原创 SpringCloud工程搭建之Fegin为消费者提供封装(可选)

七、Fegin为消费者提供封装(可选)7.1 导入依赖在消费者原有的依赖基础上新增:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>7.2 编写Feign客户端编写一个接口并交给spring容器

2021-09-07 23:45:18 277

原创 SpringCloud工程搭建之前后端分离搭建(可选)

六、前后端分离搭建(可选)6.1 创建前端工程6.1.1 导入依赖由于是纯前端部署,除了继承父工程依赖外,只需要引入web依赖即可:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>6.1.2 编写启动类不需要

2021-09-07 23:42:50 582

原创 SpringCloud工程搭建之网关微服务搭建(可选)

五、网关微服务搭建(可选)5.1 创建网关服务子工程5.1.1 引入依赖创建子工程同其他子工程一样,这里不赘述。除了继承父工程依赖外,还需引入gateway依赖和Eureka客户端:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId></d

2021-09-07 23:38:01 247

原创 SpringCloud工程搭建之配置中心服务搭建(可选)

四、配置中心服务搭建(可选)4.1 创建Git托管项目无论选择哪个Git云服务,在创建仓库时为方便测试,一定要选择公开或开源,避免在拉取项目时要指定用户和密码。仓库创建后新建配置文件billManager-dev.yml后的项目结构:远程仓库中的yml配置文件命名规则:{application}-{profile}.yml 或 {application}-{profile}.propertiesapplication为应用名称,profile用于区分开发环境,测试环境、生产环境等

2021-09-07 23:35:12 145

原创 SpringCloud工程搭建之Eureka服务搭建(必选)

3.1 创建Eureka子工程3.1.1 IDEA操作鼠标选中父工程并且点击鼠标右键选择新建一个module新建包结构和必要的启动类和配置文件如下:3.2 配置Eureka服务3.2.1 pom引入依赖除了从父工程继承的依赖外,还需要在本工程pom里配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" x

2021-09-07 23:33:15 226

原创 SpringCloud工程搭建之业务微服务搭建(必选)

二、业务微服务搭建(必选)2.1 创建业务服务子工程2.1.1 IDEA操作鼠标选中父工程并且点击鼠标右键选择新建一个module:新建包结构和必要的启动类和配置文件如下:2.2 配置业务微服务2.2.1 pom引入依赖除了从父工程继承的依赖外,还需要在本工程pom里配置:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"

2021-09-07 23:31:21 104

原创 SpringCloud工程搭建之创建SpringCloud父工程

一、创建SpringCloud父工程1.1.1 IDEA相关操作1.1.2 配置父工程pom文件需要特别注意的是packaging节点的值为pom:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2021-09-07 23:29:03 175

原创 C预处理器及其#号应用

C预处理器基本概念本质是:C 预处理器只不过是一个文本替换工具而已。如何完成文本替换,即代码替换:使用相应的预处理器指令指示编译器在实际编译之前完成所需的预处理。所有的预处理器命令都是以井号(#)开头。C 预处理器(C Preprocessor)简写为 CPP。预定义宏ANSI C 定义了许多宏。在编程中您可以使用这些宏,但是不能直接修改这些预定义的宏。宏描述__DATE__当前日期,一个以 “MMM DD YYYY” 格式表示的字符常量。__TIME__当前时

2021-05-02 01:48:00 178

原创 Java 核心类库面试题

核心类库面试题数组(Array) 和列表(ArrayList) 有什么区别?空间大小:Array是否固定,ArrayList是动态增长的。存储内容:前者可以包含基本类型和对象类型,而后者只能是对象类型。功能方法:后者是前者的增强版,提供了更多的方法。ArrayList 和 Vector的区别Vector是线程安全的,ArrayList不是线程安全的。ArrayList在底层数组不够用时在原来的基础上扩展0.5倍,Vector是扩展1倍,特殊情况除外。HashMap,TreeMap,H

2021-03-21 22:55:47 180

原创 Java 枚举&注解&反射

4-9 枚举&注解&反射枚举引入的目的:用于定义有限数量的一组同类常量,限定了使用者在使用时常量的取值范围。Java中枚举的演变:java1.5前使用类+final修饰变量+私有构造方法来实现,外部无法使用构造方法创建对象,只能使用类名来使用定义好的常量。java1.5引入了枚举类型,在定义的时候,简化了语法:第一种方法(简化内部调用构造方法):public enum Level { //使用Enum方法比较大小时根据传入的数字比较 LOW(

2021-03-21 22:53:58 166

原创 XML与JSON 及其对应的Java包 Gson FastJson

4-8 XML与JSONXML概述可扩展标记语言:xml与平台无关,是一门独立的标记语言。与任何编程语言无关。xml具有自我描述性,能够清晰地展现其特性。xml数据不一定是文件形式存储,也可以在内存中构建xml数据。Java编程语言是为了解决人和机器的交流问题,而xml是为了解决程序与程序之间的交流问题。XML应用场景:网络数据传输(不常用):原始数据传输或者加特定字符分隔,可能带来各种问题,例如特定字符无法传输的问题。虽然Java可以采用序列化的方式进行流传输,但是这并不适

2021-03-20 23:29:29 383

原创 Java多线程

4-5 Java多线程线程和进程线程与进程的关系:一个进程中可以包含多个线程,且这些线程共享这个进程的内存空间。多个线程之间可以自由切换(调度方法实现切换),是同一个进程中的多个执行路径。并发执行的本质:从宏观上看:由于线程之间可以快速切换,从宏观上表现为多个线程在"同时执行",但这个时间概念是相对于一个时间段而言,尽管这个时间段很短。从微观上看:即使线程切换时间再短,相对于某一个确定的时刻而言,只存在一个唯一的线程正在执行。线程调度机制:分时调度:又称为时间片轮转调度,所

2021-03-17 21:25:43 216 2

原创 Java 面向对象基础和进阶

3-2 面向对象基础面向对象概述课堂笔记面向对象是一种编程思想,是相对于面向过程的概念而言的。面向对象强调把数据和方法组织成一个整体来看待,将世间万物抽象成一个个对象来对待。面向对象与面向过程的区别:两者关注点不一样,前者关注的是具备功能的对象,后者关注执行过程。从过程到对象,程序员是从执行者向指挥者的转变。大象装进冰箱的例子:面向过程:逐步分解,代码按执行过程来编写。面向对象:先招一个工人,即构建一个能装大象的对象,指挥工人执行装大象即可。面向对象三大思想:OOA:

2021-03-14 21:53:08 151 2

原创 Java基础 面试题

课堂笔记XZK_JavaSE_001-面试题-Java基础JVM(java virtual machine)、JRE(java runtime environment) 和 JDK(java development kit)的关系JDK是Java开发工具包,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JRE是java的运行环境,包含JVM标准实现及Java核心类库。JVM是java虚拟机,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作

2021-03-14 21:50:36 84

原创 Java 面向对象高级

3-4 面向对象高级继承格式课堂笔记继承机制的引入使得类之间有了等级划分。继承是子类继承父类的行为和特征。子类还可以拥有专属于自己属性和方法。使用继承避免了重复定义某些类的属性和方法,代码复用率会提高。举例:学生类可以继承人类,因为学生也属于人类。继承格式:class Students extends Person{ //类描述}知识拓展JAVA中只有单继承,多重继承,没有多继承。C++语言中有多继承:一个子类可以有多个父类,这里有个问题,当多个父类有相同

2021-03-14 21:46:44 74

原创 JAVA 技术方向面试题OOP

JAVA 技术方向面试题OOP1.说说你对面向对象思想的理解?面向对象是一种编程思想,是相对于面向过程的概念而言的。面向对象强调把数据和方法组织成一个整体来看待,将世间万物抽象成一个个对象来对待。面向对象与面向过程的区别:两者关注点不一样,前者关注的是具备功能的对象,后者关注执行过程。从过程到对象,程序员是从执行者向指挥者的转变。面向对象思想要求在去做一件具体事情或任务前,必须提前做好备选的利器,工欲善其事必先利其器的思想类似。以上山砍柴这个任务为例:面向过程的思想:自己先上山,找

2021-03-14 21:44:07 111

原创 Java 异常处理

3-6 异常处理异常概念官方术语:异常是在程序中导致程序中断运行的一种指令流异常是程序进入`到了非正常状态但是又并非无法补救情况下的一种指令流。搞清楚指令流的过程即可轻松理解:程序员---->控制台---->JVM---->main---->正常的代码流程---->异常代码流程----->JVM抛给上一次的程序调用者----->如果代码中捕获则按捕获中的方式处理且结束指令流,如果没有则继续往上一层调用者抛异常------>JVM收到未被处理的异常,并

2021-03-14 21:40:11 83

原创 Java 常用类库

4-2 常用类库泛型概念:泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型使用格式:/*泛型类 使用XXX类创建data属性*/public class ClassName<XXX>{ private XXX data;}/*泛型接口 使用XXX类作为实现方法的返回值类型*/public interface IntercaceNam

2021-03-14 21:37:44 134

原创 Java 集合

4-3 集合类集概述引入的目的:数组这种数据结构无法满足各种应用场景,因此Java内部对各种数据结构进行了成熟的实现,最终JDK1.2后把这些类放在了一个java.util包中。类集中最大的几个操作接口:Collection、Map、Iterator,这三个接口为以后要使用的最重点的接口。Java类集结构图:链表与二叉树数组结构的分析:数组缺点:插入和删除操作均涉及到移动,比较繁琐,且效率低。数组优点:查找和存储比较快。链表结构分析:每个节点除了存储自己

2021-03-14 21:35:29 116

原创 SIMcom嵌入式Linux平台通用配置

修订记录修订日期修订作者修订备注创建第一版[email protected]文档版本V1.0.0文章目录第一部分 SIMcom嵌入式Linux平台通用配置1. 1 开发环境中的必要脚本1.1.1 SIMcom提供的备份脚本1.1.2 ibeelink提供的备份脚本1.1.3 SIMcom提供的启动脚本1.2 开发环境通用配置方法1.2.1 /data和/cache分区内文件的备份1.2.2 只读文件(Read-only)的备份方法1.2....

2021-01-27 18:23:49 904

原创 Lua+合宙框架知识点

Lua脚本(实用角度)整理本文以C语言视角,整理Lua脚本相关知识点。Lua脚本由标准C语言开发,源码地址:Lua组织官网下载1 变量全局变量无需声明,访问野变量,得到nil。局部变量前必须用local声明,注意作用域。Lua中的值有8种类型:nil、boolean、number、string、userdata、function、thread和table。总体:使用type(变量)得到类型,直接用print函数打印出来。nil: nil类似于空,用于区分和清空

2021-01-25 18:10:38 728

原创 Linux环境下交叉编译mosquitto及其依赖

本文的目录索引文章目录**本文的目录索引****Linux环境下交叉编译mosquitto**1.相关依赖(两个库外加一个交叉编译工具链)2.开发环境以及目标环境说明3.准备适用的交叉编译工具链4.获取OpenSSL和mosquitto源码5.创建编译源码后的输出文件路径6.编译OpenSSL并输出文件7.编译mosquitto源码并输出文件8.在目标工程中如何使用输出文件Linux环境下交叉编译mosquitto1.相关依赖(两个库外加一个交叉编译工具链)MQTT协议依赖于OpenSSL库

2021-01-22 11:22:37 2973

原创 四、指针高级应用总结

四、指针高级应用总结1 笔试积累指针数组本质是数组,数组元素全为指针。数组指针本质是指针,指向的是一个数组。typedef的意义在于简化书写和创造平台无关性。typedef重定义的类型不会原地展开,也就是说经其被重定义的类型享有编译器与原生类型同等的待遇。而#define宏定义会原地展开。使用typedef可以同时定义出结构体变量和该结构体指针。二重指针本质仍然是指针变量,只不过其指向的变量类型是一重指针(普通指针)。数组初始化时,可以在大括号内直接使用下标指定初

2020-08-16 13:08:06 182

原创 三、总结指针知识

三、总结指针知识1 笔试积累指针的全称为:指针变量。指针访问时需要注意其指向的内存,避免野指针和悬空指针的情况出现。const修饰的变量并非一定无法更改。2 理解和思想2.1 指针变量是外挂C/C++语言提供的指针变量类型是高级语言访问内存中的数据(变量或常量等其他数据)的外挂手段。一般的高级语言,如Java,python等都只能通过变量符号或其他与数据绑定的符号进行数据访问。2.2 指针变量的本质平时称呼时要牢记其本质是个变量,唯一区别只是这个变量的意义被编译器限制为存储其需要

2020-08-16 13:05:04 151

原创 二、总结内存知识

二、总结内存知识1 笔试积累根据代码和数据存放位置分为:哈佛结构和冯诺依曼结构,记忆:哈佛(half,即分成两半)是分开存放。内存RAM(random access memory),随机的意思是什么?举反例:磁带需要按序读取掉电丢失数据,DRAM,动态体现在需要刷新电路不断刷新电荷。除速度低于SRAM外,其他一般都比SRAMA好。栈在逻辑上是遵循FILO(first in last out)原则的(by the way 队列则为FIFO)。在32位系统和64位系统下只有指针类型和长整型字节数有

2020-08-16 13:03:34 191

原创 一、总结位操作心得

一、总结位操作心得1 解题思想2 应用举例2.1 心算"中间数"2.2 宏定义"中间数"2.3 组合题分步解3 位操作的实际意义1 解题思想位操作时需要注意分步骤,不要一蹴而就!为达到题目要求,一般需要先构造出一个"中间数",利用该数的位特点进行位操作。注意构造位0还是位1取决于哪个位更少,最后可以利用位取反得到最终结果。记住:置位用位或位0,清零用位与位1,取反用异或位1。构造"中间数"除了心算方法外,还可以利用左移全1后得到一定数量的位0后再位取反,最后在将位1左移到合适位置即可,常应用于使

2020-08-16 13:01:25 220

转载 要让读者在不看任何数学公式的情况下理解傅里叶分析。

这篇文章的核心思想就是:要让读者在不看任何数学公式的情况下理解傅里叶分析。声明:此篇文章是很久前截图截下来后进行文字提取整理得到的,原文出自知乎ID:Heinrich 微博:@花生油工人。感兴趣的请去自行搜索原文。傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实...

2019-04-07 15:24:46 803

原创 博客之旅准备,markdown简单记录

博客之旅准备富文本编辑器用来编辑WPS已经存在的文件,而markdown编辑器用来编辑原创从今天开始,正式开始博客之旅。所谓“工欲善其事必先利其器”,所以开篇是对编辑器markdown的简单总结。主要方便自己查看,若读者需要学习,请看官方说明:https://mp.csdn.net/mdeditor#Mar...

2019-04-07 14:23:17 123

原创 由电子领域延伸的技术视野

首先谈一下我写这篇废话的目的,纯粹是因为我在技术自学的路上掉进坑了,不得不重新梳理一下在我的认知里技术之间究竟存在怎样的关系,而我又将如何选择跳坑之路。由于个人水平有限,肯定存在偏颇之处,请见谅。 通过我近一年半的技术自学,我的半只脚总算踏入了技术世界的大门,从最先开始受到郭天祥于振南十年前写下的文章激励,到自己逐步去实践,现在想想,很值得,只是还是遗憾自己没能尽最大的努力。 技术

2017-11-24 23:12:24 532

原创 程序员工作方向

程序员工作方向     上过大学的人都知道,但凡专业与电子,计算机相关的同学们都会在一开始学习一门 叫做C语言的课程,一开始老师所教授的C语言是以Windows下的DOS(也就是我们在VC中看到的win32控制台)为背景的,而以数学计算为载体,进行C语言的应用教学,其实这些并不是C语言真正的使命,只用黑屏下的文字输出作为我们解决数学问题的手段只是C语言功能的一小小的部分而已。 

2016-10-29 20:12:32 665

STM32搭载FreeRTOS实现命令解释器功能以及其他功能绝对物有所值!

STM32,FreeRTOS,命令解释器,串口打印,位带操作,编程规范,详细功能见工程中README.TXT,此工程文件适合已经有STM32相关知识的初学者,以及FreeRTOS系统的初学者作为参考工程,本人花费一定的精力整理编写而成,还望珍惜,共同努力。联系[email protected]

2018-04-16

STM32 功能全面移植性好的NRF24L01驱动程序

STM32 功能全面移植性好的NRF24L01驱动程序,看不懂的可以咨询

2017-08-13

空空如也

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

TA关注的人

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