自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stormkai的专栏

努力是唯一能让自己站住脚跟的依靠

  • 博客(122)
  • 资源 (15)
  • 收藏
  • 关注

原创 vue集成百度地图vue-baidu-map

vue安装vue-baidu-map

2024-04-25 20:43:12 2249

原创 JDK8对List对象根据属性排序

JDK8对List对象根据属性排序。排序字段为空时候报空指针异常,处理方式:1.Comparator.nullsLast:排序字段为null的排在后面 2.Comparator.nullsFirst:排序字段为null的排在前面。Stream流的方式students.stream().map(student -> { if("".equals(student.getName())){ student.setName(null);

2024-01-30 21:59:26 2041

原创 Java线程中join()方法

join() 等待线程运行结束t.join()阻塞调用此方法的线程,,直到线程t执行完成后,此线程再继续执行。

2024-01-30 20:00:45 577

原创 使用POI生成word文档的table表格

poi生成word文档的table表格,2种方式:1.生成一行一列的table,然后添加合并等操作;2.生成固定行列的table。table表格列合并:row4.getCell(0).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART); row4.getCell(1).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);分页的两种方式:document.creat

2024-01-24 19:55:12 1607

原创 spire.doc合并word文档

spire.doc合并word文档Document document = new Document(file1);//将文档file2内容完全插入到文档file1document.insertTextFromFile(file2, FileFormat.Docx_2013);document.insertTextFromFile(file3, FileFormat.Docx_2013);document.saveToFile(mergeFilePath, FileFormat.Docx_2013)

2024-01-24 19:12:56 911 1

原创 git本地创建分支并推送到远程关联起来

如:基于本地dev分支创建test分支,并把test分支推送到远程,然后将本地test分支和远程test分支关联起来。git本地基于当前分支创建个新的分支,然后推送到远程,并把本地新创建的分支和远程分支关联。

2024-01-05 23:46:14 656

原创 ES集群分片数据的高可用

集群中的索引主分片和副分片在不同的计算机上,如果某个主分片所在的节点宕机,则原有的某个副分片会提成为主分片继续对外进行服务,如果宕机的节点恢复了服务并加入集群中,该节点主分片会降为副分片,缺少的数据会从别的节点上提升为主分片的分片进行补充。请求地址:http://localhost:9202/shopping/_search。请求地址:http://localhost:9201/shopping/_doc/1。分片1:香蕉(id=2),苹果(id=3),桔子(id=4)分片2:甜瓜(id=1)

2024-01-05 23:27:28 467

原创 ElasticSearch集群(Windows)

把elasticsearch文件夹改名为node-9201,删除data文件夹,清空log日志,拷贝成三份,分别叫node-9201,node-9202,node-9203。请求地址:http://localhost:9201/product。请求地址:http://localhost:9203/product。status字段表示当前集群在总体上是否工作正常。请求方式:PUT请求。

2024-01-04 23:23:06 597

原创 git在本地创建dev分支并和远程的dev分支关联起来

git在本地创建dev分支并和远程的dev分支关联起来。1.git命令:git checkout -b dev origin/dev;2.使用idea工具。查看本地分支和远程分支的关系git branch -vv; git branch -vv -a

2024-01-04 00:16:59 959

原创 Oracle修改用户密码

Oracle用户修改密码:alter user 用户 identified by 密码;Oracle两种常见的锁定状态:LOCKED(TIMED)是密码错误次数超过了系统设置的允许最大次数被锁;EXPIRED & LOCKED 账号过期被锁。改为不要求密码限制输错次数:alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;密码改成永不过期:alter profile default limit password_life_time unlim

2024-01-03 23:01:58 2622

原创 ElasticSearch数据同步

ElasticSearch中酒店数据来自于mysql数据库,因此MySQL数据发生改变时,ElasticSearch也必须跟着改变,这个就是ElasticSearch和MySQL之间的**数据同步**增量的有三种方式:同步调用,异步通知,监听binlog

2024-01-03 22:19:02 1140

原创 Redis持久化

Redis持久化RDB、AOF。RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做,简单来说就是把内存中的所有数据都记录到磁盘中。当Redis故障重启后,此磁盘读取快照文件,恢复数据。AOF全称为Append Only File(追加文件),Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件

2024-01-02 11:45:00 378

原创 Redis双写一致性

Redis数据双写一致性:当修改数据库中数据也要同时更新缓存的数据,缓存和数据库的数据要保持一致。延迟双删(有脏数据风险):先删缓存,再修改数据库,延时再删缓存(删除可能是脏数据的缓存)。延迟时间不可控。异步通知(数据最终一致性):基于MQ;基于canal;分布式锁(数据强一致性,性能低):使用读多写少的情况,强一致,性能低

2024-01-02 10:45:00 1242

原创 Redis数据淘汰策略

Redis数据淘汰策略:当Redis的内存不够用时,此时向Redis添加新的key,那么Redis就会按照某一种规则将内存中的数据删除掉,这种数据删除操作被称之为内存的淘汰策略。LRU:最近最少使用;LFU:最少频率使用。8种淘汰策略:noeviction(默认)不淘汰任何key,当内存满时不允许写入新数据,会直接报错;volatile-ttl对设置了ttl的key,比较key的剩余ttl值,越小越优先淘汰;allkeys-random对全体key,随机进行淘汰;volatile-random对设置了ttl

2024-01-02 09:45:00 375

原创 Redis缓存穿透,缓存击穿,缓存雪崩

Redis缓存穿透,缓存击穿,缓存雪崩。缓存穿透:查询一个不存在的数据,mysql查询不到也不会写入缓存,导致每次请求都查数据库。解决方案:1.缓存空数据;2.使用布隆过滤器。缓存击穿:某个key设置了过期时间,过期时候有大量并发请求过来,这些并发请求瞬间把mysql压垮。解决方案:1.互斥锁;2.逻辑过期.缓存雪崩:同一时间大量的缓存key同时过期或者Redis服务宕机,导致大量的请求到达mysql,给mysql带来巨大压力。解决方案:1.redis集群提高服务可用性;2.多级缓存;3.降级限流;4.给k

2024-01-02 09:00:00 1095

原创 Redis数据删除策略(惰性删除+定期删除)

Redis数据删除策略:惰性删除+定期删除。惰性删除:设置key过期时间后,不管它,需要用该key时,再检查是否过期,过期就删掉,没过期返回。对CPU友好,对内存不友好。定期删除:每隔一堆时间,对一些key(随机)进行检查,删除里面过期的key。两种模式:SLOW模式和FAST模式。SLOW模式:定时任务,执行频率默认10hz,每次不超过25ms。在redis.conf中修改。FAST模式:执行频率不固定,两次间隔不低于2ms,每次耗时不超过1ms。优点:可以限制操作的执行时长和频率来减少对cpu的影响缺点

2024-01-02 02:46:13 1010

原创 策略设计模式

策略(Strategy)模式:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。**策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法实现分割开来,并委派给不同的对象把这些算法进行管理。**主要角色:1)抽象策略(Strategy)类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法,一般使用接口或者抽象类来实现。2)具体策略(Concrete Strategy)类:实现了抽象策略定义

2023-12-03 22:26:54 176

原创 centos rpm方式安装jenkins

rpm方式按照jenkinsyum方式按照jenkins

2023-09-27 21:24:35 968

原创 Redis之zset类型

Redis之zset类型:添加元素:ZADD key score member [score member ...]按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素:ZRANGE key start stop [WITHSCORES]获取元素的分数:ZSCORE key member删除元素:ZREM key member [member ...]获取指定分数范围的元素:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset

2023-09-27 20:17:28 231

原创 Redis之set类型

Redis之set类型:添加元素:SADD key member [member ...]删除元素:SREM key member [member ...]获取集合中的所有元素:SMEMBERS key判断元素是否在集合中:SISMEMBER key member获取集合中的元素个数:SCARD key从集合中随机弹出一个元素,元素不删除:SRANDMEMBER key [数字]从集合中随机弹出一个元素,出一个删一个:SPOP key将元素从一个集合转移到另外一个集合:SMOVE ...

2023-09-25 21:27:29 325

原创 使用JAXB将Java对象转xml

使用JAXB将Java对象转xmlpublic class XmlUtil { public static String objToXml(Object obj) { try { //创建JAXB对象,用于映射java类和xml JAXBContext context = JAXBContext.newInstance(obj.getClass()); //创建Marshaller对象,用于将java对象序列

2023-09-22 23:32:05 444

原创 Redis之list类型

Redis之list类型:向列表左边添加元素:LPUSH key value [value...]向列表右边添加元素:RPUSH key value [value...]从列表左边弹出元素:LPOP key从列表右边弹出元素:RPOP key查看列表:LRANGE key start stop获取列表中元素的个数:LLEN key删除列表中指定的值:LREM key count value获取/指定索引元素的值:LINDEX key index; LSET key index value

2023-09-21 21:41:22 129

原创 Redis之hash类型

Redis之hash类型设置/获取一个字段:HSET key field value; HGET key field一次设置/获取多个字段:HMSET key field value [field value ...]/HMGET key field [field ...]获取所有字段值:HGETALL key获取kye内全部field数量:HLEN key删除key内字段:HDEL key field判断字段是否存在:HEXISTS key field...

2023-09-20 20:47:47 273

原创 Redis之String类型

Redis之String类型:赋值/取值:set key value ; get key同时设置/获取多个值: mset key value [key value ...]; mget key [key ...]数值增减:INCR key; INCRBY key increment; DECR key; DECRBY key decrement;获取字符串长度:STRLEN key向尾部追加值:APPEND key value分布式锁:setnx key value;

2023-09-19 21:41:08 262

原创 使用JAXB将xml转成Java对象

使用JAXB将xml转Java对象JAXBContext类,是应用的入口,用于管理XML/Java绑定信息Unmarshaller接口,将XML数据反序列化为Java对象@XmlType,将Java类或枚举类型映射到XML模式类型@XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化- PUBLIC_MEMBER :默认值,public权限亦或是具有get/set方法属性- FIELD:对象中的所有属性- PROPERT:对象中所有具备get/s

2023-09-18 21:31:26 903

原创 Linux命令awk

Linux命令awk将文件逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行分析处理基本用法:awk [选项参数] '/pattern1/{action1} /pattern2/{action2}...' filenamepattern: 表示awk再数据中查找的内容,就是匹配模式action: 在找到匹配内容时所执行的一系列命令选项参数说明:-F: 指定输入文件分隔符-v: 赋值一个用户定义变量内置变量:FILENAME: 文件名NR: 已读的记录数(行号

2023-07-18 21:31:53 415

原创 Oracle存储过程的使用DEMO(一)

Oracle存储过程的使用DEMO(一)1. Oracle中块的使用2. IF使用2.1 IF...ELSE...2.2 IF嵌套3. CASE...WHEN...4. LOOP5. WHILE6. FOR

2023-07-06 14:39:40 479

原创 Linux命令sort(文件排序,并将排序结果标准输出)

Linux命令sortsort命令是将文件进行排序,并将排序结果标注输出,**文件内容并没有改变**。1. 基本语法sort(选项)(参数)-n:依照数值的大小排序-r:以相反的顺序来排序-t:设置排序时所用的分隔字符-k:指定需要排序的列参数:指定待排序的文件列表

2023-07-04 23:34:18 816

原创 Linux文本处理工具sed(流编辑器)

sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区(模式空间)中,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送到屏幕。接着处理下一行,这样不断重复直到文件末尾。**文件内容并没有改变**,除非你使用重定向存储输出。1. 基本用法sed[选项参数] ‘command’ filename2. 选项参数-e:直接在指令列模式上进行sed的动作编辑3. 命令功能a:新增,a的后面可以接字符串,在下一行出现d:删除s:查找并替换

2023-07-04 23:13:45 1013

原创 Oracle序列

Oracle序列:1.删除序列:DROP SEQUENCE TEST_SEQ1;。2.创建序列:CREATE SEQUENCE TEST_SEQ1MINVALUE 1 --第二次循环MAXVALUE 20START WITH 3 --第一次循环INCREMENT BY 2CYCLENOCACHE;3.获取序列的值:SELECT TEST_SEQ1.NEXTVAL FROM DUAL;SELECT TEST_SEQ1.CURRVAL FROM DUAL;

2023-07-04 11:47:06 846

原创 通过properties和反射优化数据对接时候属性名不一样的问题

数据对接时候,传过来的数据和自己数据库表字段的数据不一致,一般if去转换处理,但是当字段特别多时候,比如一些软属性,有几百个,分别对应到自己数据库不同表不同字段上,这个时候if这样转换代码就特别多,而且有的属性修改时候是个很大的工作量。

2023-07-03 16:43:25 346

原创 map父子维护的ebom父子部件关系计算组套数量

使用ebom时候,把部件父子关系和安装数量维护在了map上面,要计算组套数量,需要递归从当前往上取出父级安装数量相乘,一直取到最顶层。B的组套数量:B=2。

2023-07-03 11:38:37 117

原创 Linux文本处理工具cut(截切数据)

cut在文件中负责剪切数据用的。cut命令从文件每一行剪切字节、字符、和字段并将这些字节、字符和字段输出。1. 基本用法cut [选项参数] filename说明:默认分隔符是制表符2. 选项参数说明-f::列号,提取第几列-d:分隔符,按照指定分隔符分割列-b:以字节为单位进行分隔-c:以字符的单位取出,固定字符区间

2023-07-03 00:42:45 506

原创 Shell中的函数

语法:​ Action;funname1)必须在调用函数的地方之前,先声明函数,shell脚本是逐行运行。2)函数返回值,只能通过$?系统变量获得,可以显示加:return 返回,如果不加,将以最后一条命令运行结果作为返回值。return后跟数值n(0-255)

2023-07-02 00:53:59 274

原创 Shell中使用read读取控制台输入

read (选项)(参数)选项:-p: 指定读取值时的提示符:-t: 指定读取值时等待的时间(秒)参数:变量:指定读取值时的变量名在8秒内提示“请输入您的姓名:”,输入后会显示“您的姓名是:输入的名字”;如果超过8秒没有输入,就会显示“您输入的姓名是:”

2023-07-02 00:11:58 442

原创 Shell中的流程控制(if/case/for/while)

1)case行尾必须为单词“in”,没一个模式匹配必须以右括号“)”结束。双引号包含时,$*会将所有的参数作为一个整体,以$1 $2 $3 …3)最后“*)”表示默认模式,相当于java中的default。​ 如果变量的值都不是以上的值,则执行此程序。​ 如果变量的值等于值1,则执行程序1。​ 如果变量的值等于值2,则执行程序2。for 变量 in 值1 值2 值3…if [ 条件判断式 ];while [ 条件判断式 ]elif [ 条件判断式 ]if [ 条件判断式 ]if [ 条件判断式 ]

2023-07-01 23:55:05 477

原创 Shell中的条件判断

Shell中的条件判断1. 语法1)test condition2)[ condition ]注意: condition前后要有空格条件非空返回true,[ abc ]返回true,[ ]返回false常用条件判断:字符串比较;整数比较;文件权限判断;文件类型判断;多条件判断:[ 5 > 3 ] && echo success || echo fail[ ] && echo ok || echo notok[ 5 > 3 ] && echo "5 > 3" || echo "5 < 3

2023-07-01 00:37:07 313

原创 Shell中的运算符

1. 语法1)$((运算式)) 或 $[运算式]2)expr +, -, \*, /, % 加, 减, 乘, 除, 取余注意:expr运算符间要有空格

2023-06-30 00:03:51 241

原创 Shell中的变量

语法1)定义变量:变量=值2)撤销变量:uset 变量3)声明静态变量:readonly 变量。注意:不能unset变量定义规则1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写2)等号两侧不能有空格3)在bash中,变量默认类型都是字符串类型,无法直接进行数值运算4)变量的值如果有空格,需要使用双引号或者单引号括起来可以给变量user_name的等号两边加个空格,测试下变量定义规则2)

2023-06-29 00:12:17 1275

原创 Shell脚本执行的几种方式

Shell脚本执行的几种方式:1. sh/bash 脚本的相对路径/绝对路径2. 脚本的相对路径/绝对路径(需要x权限)3. source 脚本的相对路径/绝对路径4. .空格脚本的相对路径/绝对路径shell父子进程演示

2023-06-28 00:26:16 4104

kettle的web版本(webspoon)

kettle的web版本,自己编译的war包,直接放到tomcat下运行,然后http://localhost:8080/spoon/spoon就可以访问 参考地址:https://github.com/HiromuHota/pentaho-kettle

2021-01-11

postman win64位

postman win64位,以上资源含有两个版本 Postman-win64-7.1.1-Setup Postman-win64-7.1.0-Setup

2020-12-15

test-docker.zip

该资源是博客idea使用docker插件部署项目到docker所使用的spirngboot工程代码,里面包含了pom.xml的配置和Dockerfile

2020-04-01

Kettle循环遍历结果集作为参数传入转换.zip

Kettle8.2做的,Kettle循环获取转换中的结果集传递到下一个转换中,并最终输出到txt文档

2020-03-26

Kettle循环遍历结果集.zip

是自己基于Kettle8.2做的Kettle在job中循环遍历转换中的结果集的输出到日志。主要演示遍历功能...

2020-03-26

springboot整合fastdfs纯净版(只有配置和测试类)

这是我自己做的springboot整合fastdfs的demo,只有简单的测试类,有需要的可以下载看下

2019-03-16

redis4.0.10_linux安装包

redis4.0.10的linux安装包,版本号redis-4.0.10.tar.gz,具体安装测试可以参考我的博客https://blog.csdn.net/stormkai/article/details/86141908。 担心重名,我把它放在压缩包里面redis4xxx文件夹下

2019-03-13

lombok eclipse的插件

用于eclipse或者STS开发工具所使用的lombok插件。lombok.jar。 使用时候解压缩,在eclipselombok文件夹里面有个lombok.jar,将其拷贝到eclipse或者STS安装根目录,然后执行 java -jar lombok.jar

2019-03-13

DbVisualizer-8.0.7

一款java开发的数据库连接工具,非常好用,可以连接DB2,Oracle, Mysql数据库。使用起来觉得挺方便

2019-02-18

jdGUI—java反编译工具

是java反编译工具,可以把class文件转为java源码。很好用

2019-02-18

AxureRP 的元件库

Axure RP的元件库,这个元件库几乎涵盖了所有的控件,有需要的朋友可以下载体验下,用着感觉不错.......

2018-12-21

AxureRP8的bootstrap4元件库

AxureRP8的bootstrap4的元件库,可以用其扩展axure功能,画出bootstrap效果的原型

2018-12-21

springmvc之@RequestMapping的demo

springmvc之@RequestMapping的简单demo

2016-04-28

java语言程序设计 陆迟

陆迟编著的java语言程序设计课件ppt

2012-03-09

空空如也

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

TA关注的人

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