自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (1)
  • 收藏
  • 关注

转载 二分查找(拆半查找)算法图文演示

也称为折半查找(Binary Search),是一种高效的查找算法,特别适用于‌的查找。它的基本思想是:在有序数组中,通过不断地将查找区间一分为二,从而快速找到目标元素。具体来说,算法从数组的中间元素开始比较,如果中间元素正好是要查找的元素,则搜索过程结束;如果目标元素大于或小于中间元素,则在数组的另一半继续查找,直到找到目标元素或者查找区间为空(即找不到目标元素)。‌。

2024-07-22 16:24:04 8

原创 Shell脚本学习笔记(更新中...)

当命令或者程序语句写在文件中,我们执行文件,读取其中的代码,这个程序文件就称之为shell脚本。在shell脚本里定义多条linux命令以及循环控制语句,然后将这些Linux命令一次性执行完毕,执行脚本文件的方式称之为,非交互式方式。windows系统中shell脚本:以".bat"结尾的批处理脚本文件。Linux系统中shell脚本:以".sh"结尾的脚本文件。shell脚本规则。

2024-05-27 20:57:32 675

原创 并发包中的CompletableFuture介绍及使用示例

**CompletableFuture实现了Future和CompletionStage接口,诞生于jdk1.8。**CompletableFuture相对于Future具有以下优势:- **为快速创建、链接以来和组合多个Future提供了大量的便利方法。**- **提供了适用于各种开发场景的回调函数,它还提供了非常全面的异常处理支持。**- **无缝衔接Lambda表达式和Stream - API。**

2024-04-06 20:49:07 623 1

原创 Kubernetes集群搭建

Kubernetes是一个Google开源的全新的分布式容器集群管理系统,由于从字母到字母s中间有8个字母,所以简称K8s。

2024-02-03 21:39:56 788

原创 CentOS7虚拟机设置静态IP

虚拟机上ip是有时效性的,过期后会自动更换,因此如果想让ip不变,就得手动设置静态ip。

2024-02-02 12:12:45 666

转载 ElasticSearch-SpringBoot中三种分页查询总结学习

浅分页的原理很简单,就是查询前20条数据,然后截断前10条,只返回10-20的数据。这样其实白白浪费了前10条的查询。es默认采用的是from+size形式,在深度分页的情况下,这种效率是非常低的,但是可以随机跳转页面。es为了性能,会限制我们分页的深度,es目前支持最大的max_result_window = 10000,也就是from+size的大小不能超过10000。注意:es是基于分片的,假设有3个分片,from=100,size=10。

2024-01-16 21:09:30 1170 1

转载 创建索引的几点建议,列的离散度,前缀索引

我们容易有以一个误区,就是在经常使用的查询条件上都建立索引,索引越多越好,那到底是不是这样呢?因为索引对于改善查询性能的作用是巨大的,所以我们的目标是尽量使用索引。但这并不意味着索引越多越好,因为索引会占用内存,还需要维护,并且索引还会影响增删改速度(还要对(辅助)索引进行插入/删除)。所以我们创建索引时有什么能参考的属性,或者要遵守的原则呢?

2023-08-15 20:02:47 382

原创 基于logback 实现springboot的日志配置

java web 下有好几种日志框架,比如:logback,log4j,log4j2(slf4j 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用)它们都实现了slf4j的接口。其中性能最高的应该使 logback 了,而且 springboot 默认使用的也是 logback 日志,所以本篇将会详细的讲解 logback 的日志配置方案。

2023-05-06 11:49:45 1569 1

原创 实现自定义SpringBoot的Starter组件

springboot通过一个@SpringBootApplication注解启动项目,springboot在项目启动的时候,会将项目中所有声明为Bean对象(注解、xml)的实例信息全部加载到ioc容器当中。 除此之外也会将所有依赖到的starter里的bean信息加载到ioc容器中,从而做到所谓的零配置,开箱即用。

2023-02-07 20:36:25 2122 1

原创 springBoot+Cache(自定义有效时间配置)

自定义的类继承org.springframework.data.redis.cache.RedisCacheManager。if(!//表示天 return super . createRedisCache(key , cacheConfiguration . entryTtl(Duration . ofDays(cycleTime)));

2022-12-18 23:08:34 2419

原创 MySQL的EXPLAIN执行计划深入分析

MySQL提供了一个EXPLAIN命令,它可以对SELECT语句进行分析,并输出SELECT执行的详细信息,供开发人员有针对性的优化。

2022-09-12 22:45:38 981 2

原创 Idea开发工具操作git回滚提交步骤

使用idea开发java代码时,如果想回滚git提交的代码, 需要操作三步。

2022-09-04 14:50:46 21584

原创 Elasticsearch技术总结笔记

Elasticsearch(ES)是一个基于 Lucene 构建的开源分布式搜索分析引擎,可以近实时的索引、检索数据。具备高可靠、易使用、社区活跃等特点,在全文检索、日志分析、监控分析等场景具有广泛应用。......

2022-07-24 21:55:09 1355

原创 Elasticsearch倒排索引的原理介绍

Elasticsearch倒排索引的原理介绍

2022-07-24 21:31:05 902

转载 window安装redis

1、redis介绍Redis是有名的NoSql数据库,一般Linux都会默认支持。但在Windows环境中,可能需要手动安装设置才能有效使用。简单介绍一下Windows下Redis服务的安装方法。2、获取安装包Windows的Redis安装包需要到以下GitHub链接找到。打开网站后,找到Release,点击前往下载页面链接:https://github.com/MSOpenTech/redis3、下载安装包  (找到最后发行的版本(此处是3.2.100)找到Redis-x64.

2021-12-23 10:38:36 2473

原创 SpringBoot集成Ehcache、Redis示例

一、摘要 1.1、Spring3.1开始内置了五个缓存管理器实现,如下所示:SimpleCacheManager NoOpCacheManager ConcurrentMapCacheManager CompositeCacheManager EhcacheCacheManager 1.2、Spring3.2又引入了二、集成Ehcache三、集成Redis注意点:原生的spring cache不支持缓存过期,默认都是没有过期时间的,需要自定义...

2021-12-12 23:13:12 581

原创 五种方式助你排查Idea使用Lombok 编译报“找不到符号“的问题

1、问题描述项目中使用了lombok,但是在idea编译过程是出现找不到符号。报错如下图所示:如果碰到该问题,请一次按如下四种方式排查。排除方式一如果pom.xml没有引入jar,则需要引入。 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> .

2021-11-08 21:41:26 8910 1

转载 内存屏障的认识

目录一、摘要二、volatile变量规则2.1、定义2.2、可见性与重排序2.2.1、可见性2.2.2、重排序问题来源三、缓存一致性协议——MESI3.1、MESI协议介绍3.2、借助MESI协议理解可见性问题3.3、剩余问题3.4、编译器编译时的优化3.4.1、处理器执行时的乱序优化四、内存屏障4.1、标准4.2、x86架构的内存屏障指令Store BarrierLoad BarrierFull Barrier五、vo...

2021-10-21 14:59:17 450

原创 http接口公网对接时用到的RSA加密/解密实现示例

一、摘要企业间,业务对接时长需要服务api接口对接,而业务对接就必须做到接口互相安全认证,防止数据被截取破解泄露商业信息。此时就用到安全措施,如加白名单、数字认证证书等。其中,RSA非对称加密进行加签和验证是常用的一种。RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于

2021-10-20 18:02:38 6754

原创 redis主从配置搭建及复制同步原理

目录一、单机redis的风险与问题二、多台redis服务器连接方案三、主从复制介绍 3.1、建立连接阶段工作流程四、搭建4.1、主机配置4.2、从机配置文件6380.conf内容五、验证一、单机redis的风险与问题问题1. 机器故障 现象:硬盘故障、系统崩溃 本质:数据丢失,很可能对业务造成灾难性问题。 结论:基本上会泛起使用redis.问题2. 容量瓶颈 现象:内存不足,从...

2021-10-06 22:13:26 498

原创 SpringCloud Netflix集成Sentinel限流

一、摘要1.1、sentinel介绍Sentinel是阿里开源的项目,提供了流量控制、熔断降级、系统负载保护等多个维度来保障服务之间的稳定性。官网:Home · alibaba/Sentinel Wiki · GitHub2012年,Sentinel诞生于阿里巴巴,其主要目标是流量控制。2013-2017年,Sentinel迅速发展,并成为阿里巴巴所有微服务的基本组成部分。 它已在6000多个应用程序中使用,涵盖了几乎所有核心电子商务场景。2018年,Sentinel演变为一个开源项目。2020

2021-09-25 21:32:50 567

原创 Eureka Server集群服务搭建(包含权限认证)

目录第一步:使用官网上新建脚手架的的工具,创建项目。进入创建项目的界面。步骤二:根据官网文档配置。进入技术文档。​步骤三:配置服务​idea导入解压后的项目,并配置application.yml。步骤四:访问服务eureka-server1的注册信息结果查看。eureka-server2的注册信息结果查看。参考资料:Spring | Home。第一步:使用官网上新建脚手架的的工具,创建项目。进入创建项目的界面。步骤二:根据官网...

2021-09-12 13:05:43 1100 2

转载 kafka consumer 总结及配置详解学习

目录1、Consumer Group 与 topic 订阅1.1 Consumer 与 partition1.2 Consumer 与Consumer Group1.3 Coordinator1.4 Consumer Group Management2、Consumer Fetch Message2.1 poll 方法2.2 commit offset3、Consumer的线程安全性4、Consumer Configuration1、Consumer Group

2021-09-07 11:15:47 1764 1

原创 设计模式之责任链模式学习

责任链模式顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。介绍意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。主要解决:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无须关心请求的处理细节和请求的传递,所以职责链将请求的发送者

2021-09-05 22:37:10 229

原创 MyBatis底层原理学习

目录一、传统JDBC的弊端二、mybatis介绍三、MyBatis架构图核心类解释工作流程一、传统JDBC的弊端jdbc没有连接池、操作数据库需要频繁创建和关联链接,消耗资源很大。 在java中,写原生jdbc代码,硬编码不易维护(比如修改sql、或传递参数类型时、解析结果)。二、mybatis介绍MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyB...

2021-08-29 21:49:26 1602 1

原创 bzip2: Cannot exec: No such file or directory解决方法

问题:在linux系统上执行tar加压后缀位".bz2"的文件时出现“bzip2 执行失败,没有改文件或目录”,实际上是没有暗转bzip2安装插件。如下图:解决方式:安装bzip2插件命令:yum install -y bzip2...

2021-08-28 22:33:38 9365

原创 jdk1.8 HashMap中的hash方法

目录前言关键代码被使用的地方1、get方法用到2、put方法用到问题:为什么hash函数这么设计前言在HashMap中的hash函数实现代码如下图所示,为什么要这么设计?有什么好处? static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }另一个定位数组

2021-08-22 12:55:22 695 1

原创 Java位运算符学习

前言位运算符有 与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)、无符号右移(>>>)。位运算其实就是二进制的运算,加减乘除适用于十进制,而位运算就是二进制的运算。如果是非二进制数使用位运算符,系统会自动转换成二进制再进行运算。运算符与(&)概念:两个操作数中的位都为1,结果才为1,否则结果为0。如下图代码实践结果 运算过程 ...

2021-08-21 22:29:54 630

原创 gradle和maven对比总结

Gradle优势gradle够灵活:gradle使用的是groovy或者kotlin语言作为脚本的编写语言,这样极大的提高了脚本的灵活性,但是其本质上的原因是gradle的基础架构能够支持这种灵活性。你可以使用gradle来构建native的C/C++程序,甚至扩展到任何语言的构建。 性能比较:对于大型项目来说,一次构建可能会需要很长的时间,尤其对于自动化构建和CI的环境来说,当然希望这个构建是越快越好。小项目gradle与maven构建时间相差无几。 gradle依赖jar包时配置写起来比mav.

2021-08-17 14:00:34 1427 1

原创 idea创建gradle父子项目结合springBoot——详细介绍build.gradle

前言使用idea创建一个gradle父子工程,父工程里包含两个子工程。一个是经常被用作其他工程依赖的jar, 名为library;另一个是自己部署的业务逻辑代码应用,名为application. 工具 版本 Idea 2019.3.3 gradle 5.2.1 第一步:创建父工程选择Gradle,以及对应的jdk版本。下一步:配置父工程的名称、保存地址、组、工程标识

2021-08-16 16:36:38 5494 2

原创 build.gradle——单个项目的配置解释

//指定第三方插件, 类似maven的plugins标签plugins { id 'io.spring.dependency-management' version '1.0.11.RELEASE'//dependency-management插件实现依赖管理,对等maven中的dependencyManagement元素 id 'java' //java插件预定义了很多task,其中就包括编译、测试、生成jar包等task id 'idea' //定义idea插件,是让idea.

2021-08-11 16:09:29 2022

原创 Idea创建gradle项目后编译失败问题排查

目录一、问题二、问题排查三、问题尝试了解更多一、问题Idea创建gradle项目后控制台编译报“org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()Ljava/lang/String;”。问题截图如下:二、问题排查无从下手的问题,只能先百度搜索。发现在stackoverflow上有人遇到过(地址:https://stackoverflow.com/ques...

2021-08-09 13:44:45 17396 5

原创 ElasticSearch7.6 索引操作学习

一、Elasticsearch 的数据类型认识text: 全文搜索字符串keyword: 用于精确字符串匹配和聚合date 及 date_nanos:格式化为日期或数字日期的字符串byte, short, integer, long: 整数类型boolean: 布尔类型float,double,half_floa...

2021-08-01 20:37:46 350

转载 CentOSRPM包与源码包的区别

1、软件包分类源码包:代码压缩包(如zip、gz结尾)rpm包:编译之后的二进制包,rpm是编译好的程序安装包,可以通过rpm命令进行安装。2、源码包优点:开源;可以自由选择所需功能;可看源代码;卸载方便(直接删除安装位置);缺点:安装步骤过多;编译时间过长;3、RPM包优点:使用简单,只需要几个命令就可以实现包的安装、升级、查询、卸载;安装速度快;rpm是编译好的程序安装包,可以通过rpm命令进行安装。缺点:不能看源代码;功能选择不如源代码灵活;依赖性;RPM包命名和依赖.

2021-07-26 11:07:56 670

原创 springboot+sharding-jdbc(自定义精准分片)+SPI自定义雪花算法

步骤一:准备一个springBoot框架的maven项目主要框架版本如下(其他版本集成需要尝试才知道是否会有问题):主要框架 版本 springBoot 2.2.1.RELEASE sharding-jdbc-spring-boot-starter 4.0.0-RC1 mybatis-plus-boot-starter 3.3.2 druid-spring-boot-starte 1.1.24 项目pom.xml配置如下。<?xml ve

2021-07-20 00:15:05 2424 3

原创 日常正则表达式汇总——更新时间2021-07-14

日常表达式汇总下,省的每次用到时到处搜,搜来的还不一定正确。1、身份证:/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, 适用包括西藏、云南2、手机号:/^1[3|4|5|6|7|8|9][0-9]\\d{4,8}$/,适用包括联通最新16,19开头的手机号...

2021-07-14 18:15:56 118

原创 CentOS7.9 解决“No package xxx available“

目录摘要第一步:使用命令“yum search xxx”先查看是否有可安装的镜像包第二步:安装找到的安装包第三步:最后再次尝试ifconfig, 正确打印我们想要的信息。​注意: 如果出现“N/S matched:ifconfig”,则使用全局查找命令。摘要安装完CentOS7.9后,发现使用命令ifconfig时,报“no package ifconfig available”. 于是又打怪之路。如果出现相似的“no package xxx available”,都可参照.

2021-07-11 18:56:25 16326 1

原创 CentOS7.9安装部署superset

第一步:安装paython3.7下载python3的安装包cd到想保存安装包的路径下下载(去官网查看最新版下载链接):wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz1解压到当前目录:$: tar -zxvf Python-3.7.*.tgz (不同的安装包对应不同的解压方法)安装编译器(root用户):$: yum -y install gcc安装make需要的依赖包(需要root用户执行):...

2021-07-05 10:19:53 833 2

原创 Spring如何解决循环依赖问题的

目录摘要实现原理阅读源码一核心源码阅读二摘要面试时经常被问到spring循环依赖能否解决,如果能,是怎么解决?依赖关系如:类A中声明B属性,而类B中声明了A属性。其实,spring的bean在单例情况下并且不是构造函数赋值时,使用了三级缓存去解决依赖问题。实现原理1.先加载A,依次判断(一级缓存)、(二级缓存)、(三级缓存)中是否有A,没有就将A加入(三级缓存)2.A依赖B,先加载B 2.1依次判断(一级缓存)、(二级缓存)、(三级缓存)中是否有B,没有...

2021-06-30 21:09:46 107

转载 Java 常见五种 OOM排查学习

1、StackOverflowError(栈空间溢出)public class StackOverflowErrorDemo { public static void main(String[] args) { main(args); // Exception in thread "main" java.lang.StackOverflowError }}上面这种 OOM 比较好理解,在 main 方法中循环调用 main 方法,循环产生的大量形参都会在栈空间

2021-06-20 23:46:10 1221 1

maven组件依赖测试

maven组件依赖测试

2023-02-07

spring-boot自定义starter的源码示例

spring-boot自定义starter的源码示例

2023-02-07

springBoot+Cache(自定义有效时间配置)

springBoot+Cache(自定义有效时间配置)

2022-12-18

dubbo简单搭建使用示例

最简单的dubbo搭建示例,里面两个项目dubbo server和dubbo client。

2022-12-18

jdk1.8实现http接口rsa加密解密.zip

jdk1.8+springMVC实现http接口rsa加密解密

2021-10-20

空空如也

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

TA关注的人

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