自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (7)
  • 收藏
  • 关注

原创 算法题java

java实现四向链表

2023-10-20 15:16:39 713

原创 camunda入门教程及实现原理

camunda流程引擎介绍及使用

2022-12-12 19:17:33 27961 9

原创 Linux 内存 占用较高问题排查

一 查看内存情况#按 k 查看free #按兆M查看free -mtotal:总计物理内存的大小。used:已使用多大。free:可用有多少。Shared:多个进程共享的内存总额。Buffers/cached:磁盘缓存的大小。#所以空闲内存=free+buffers+cached=total-used内存的使用情况cat /proc/meminfo查看进程的内存占用pidstat -r -p 24427 1 5 内存占用高的前20ps aux | head -1;p

2021-06-03 10:59:36 4470

原创 for循环与串行化、并行化Stream流性能对比

并行流parallelStream注意事项1、parallelStream是线程不安全的2、parallelStream适用的场景是CPU密集型的,只是做到别浪费CPU,假如本身电脑CPU的负载很大,那还到处用并行流,那并不能起到作用3、I/O密集型 磁盘I/O、网络I/O都属于I/O操作,这部分操作是较少消耗CPU资源,一般并行流中不适用于I/O密集型的操作,就比如使用并流行进行大批量的消息推送,涉及到了大量I/O,使用并行流反而慢了很多4、在使用并行流的时候是无法保证元素的顺序的,也就是即

2021-02-03 15:02:52 1478 1

原创 java面试算法题整理

文章目录1.找到字符串的最长无重复字符子串?2.大数加法?3.字符串排序?4.合并有序数组?5 两个链表的第一个公共节点?(a+b=b+a思想)6.数组中的最长连续子序列?7.矩阵的最小路径和?8.矩阵查找?9.数字在升序数组中出现的次数?10.二叉树的层序遍历?11.反转单链表12.最小的K个数?13.包含重复数字的二分查找?14.寻找第K大的数?(快排思想)15给出一个整数数组,请在数组中找出两个加起来等于目标值的数?16.求平方根?17. 一个升序链表,删除链表中的所有重复出现的元素,只保留原链表中只

2021-02-02 12:06:27 665

转载 使用Redisson实现分布式锁

最近由于工作很忙,很长时间没有更新博客了,今天为大家带来一篇有关Redisson实现分布式锁的文章,好了,不多说了,直接进入主题。1. 可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。public void testReentrantLock(RedissonClient redisson){ RLock lock = redisson.getLock("

2020-12-30 17:40:27 169

原创 java中Assert的使用

Web 应用在接受表单提交的数据后都需要对其进行合法性检查,如果表单数据不合法,请求将被驳回。类似的,当我们在编写类的方法时,也常常需要对方法入参进行合法性检查,如果入参不符合要求,方法将通过抛出异常的方式拒绝后续处理。举一个例子:有一个根据文件名获取输入流的方法:InputStream getData(String file),为了使方法能够成功执行,必须保证 file 入参不能为 null 或空白字符,否则根本无须进行后继的处理。这时方法的编写者通常会在方法体的最前面编写一段对入参进行检测的代码,如下所

2020-12-24 16:17:48 3903 1

原创 MongoDB 对数组元素增删改的写法

例如:数据结构如下:要把participant数组中的role为AAAAA的元素改为BBBB,写法如下:db.getCollection('DEAL_XXXXX').update({ contractNo: "10000791", "content.participant.role": "AAAAA"},{ $set: { "content.participant.$.role": "BBBBBB" }});更多详细写法可参照:https://blog.csdn.net/les

2020-12-23 18:48:48 505

原创 使用wkhtmltopdf插件实现html转pdf

使用wkhtmltopdf插件实现html转pdf:下载地址:https://download.csdn.net/download/xiaolong2230/107599601、cd到bin目录如下:2、输入相应指令:(1)将本地html文件转换成pdf。wkhtmltopdf.exe --header-line --header-html https://dev-contract.ehomepay.com.cn/header.html --margin-top 20mm --heade

2020-12-22 18:39:56 511

原创 日志打印TraceId,一栈查log

1、在springBoot启动类上加上@ServletComponentScan2、添加filter类LogTraceFilter.java,其中Tid的生成规则可按需修改。package com.xxx.xxx.xxx.provider.common.filter;import cn.com.xxx.xxx.core.commons.utils.CommonIdGenerator;import lombok.extern.slf4j.Slf4j;import org.slf4j.MDC;

2020-12-22 15:32:22 2520 1

原创 maven的deploy配置

maven的deploy:1、需要在pom.xml中添加如下代码:<distributionManagement> <repository> <id>nexus</id> <url>http://nexus.xxx.com.cn/nexus/content/repositories/releases/</url> </repository> <snapshotRepository>

2020-12-17 14:29:22 466

原创 idea修改autowared校验级别

https://www.cnblogs.com/Eric-F/p/9992204.html

2020-12-03 15:35:55 599

转载 JDK8新特性之lambda和stream

1.java8中Lambda表达式基础语法:(x,y) -> {}左侧是一个小括号,里面是要实现的抽象方法的参数,有几个参数就写几个参数名,无参可写空括号,无需声明参数类型;中间是一个jdk8新定义的箭头符号;右侧是一个大括号,在括号内编写抽象方法的实现内容,有参时,可直接使用左侧括号中的对应参数,与正常方法的方法体相同;使用方式:实现只有一个抽象方法的接口时会自行匹配到该方法,在箭头左侧编写对应参数个数的参数名,箭头右侧编写方法的实现代码(代码实现为单行时可去掉大括号{})示例:@Te

2020-09-02 17:44:14 172

转载 Spring Boot 统一异常处理

统一返回数据结构定义接口返回数据结构先定义接口返回数据结构,code为0表示操作成功,非0表示异常。其中data只有在处理成功才会返回,其他情况不会返回,或者那些不需要返回数据的接口(更新、删除…){ "code": 0, "message": "SUCCESS", "data": { }}数据接口字段模型定义创建/domain/Result.java类,对以上数据接口涉及的字段进行定义。Result.javapackage com.angelo.domain;pub

2020-09-02 16:31:01 655

转载 Java设计模式之模板模式及使用场景

模板模式,顾名思义,就是通过模板拓印的方式。定义模板,就是定义框架、结构、原型。定义一个我们共同遵守的约定。定义了模板,我们的剩余工作就是对其进行充实、丰润,完善它的不足之处。定义模板采用抽象类来定义,公共的结构化逻辑需要在抽象类中完成,只将非公共的部分逻辑抽象成抽象方法,留待子类充实实现。所以上文所述不足之处就是这些抽象方法。总的来说,模板模式就是通过抽象类来定义一个逻辑模板,逻辑框架、逻辑原型,然后将无法决定的部分抽象成抽象类交由子类来实现,一般这些抽象类的调用逻辑还是在抽象类中完成的。这么看

2020-08-21 13:54:54 644 2

转载 Sharding-JDBC 执行原理

Sharding-JDBC 执行原理基本概念在了解Sharding-JDBC的执行原理前,需要了解以下概念:逻辑表水平拆分的数据表的总称。例:订单数据表根据主键尾数拆分为10张表,分别是 t_order_0 、 t_order_1 到t_order_9 ,他们的逻辑表名为 t_order 。真实表在分片的数据库中真实存在的物理表。即上个示例中的 t_order_0 到 t_order_9 。数据节点数据分片的最小物理单元。由数据源名称和数据表组成,例: ds_0.t_order_0 。绑定

2020-08-19 14:50:25 1194

转载 SpringBoot用Spring Data JPA的批量更新删除、事务处理

本文出处:https://www.jianshu.com/p/c84a91992c32SpringDataJPA到目前为止已经解决了大量的问题,但依然还有一些比较重要的问题没有解决:…批量删除和更新的操作…事务处理问题Spring最大的一个优点就是声明式的事务,在原来的开发环境中我们需要在beans.xml中配置事务在哪些类上有作用,现在SpringBoot已经帮助我们完成了这些配置,我们仅仅需要加几个Annotation就可以解决问题。我们假设我们的开发环境是这样的:有两个类,一个是Classr

2020-07-21 15:52:32 3693

原创 RocketMQ在windows环境下的安装

一.预备环境1.系统Windows2. 环境JDK1.8、Maven、Git二. RocketMQ部署1.下载1.1地址:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/1.2选择‘Binary’进行下载1.3解压已下载工程2. 配置2.1 系统环境变量配置变量名:ROCKETMQ_HOME变量值:MQ解压路径\MQ文件夹名2.2重启服务器启动3.1 启动NAMESERVERCmd命令框执行进入

2020-06-16 15:23:03 1002

原创 Git 修改已提交的commit注释

两种情况:一、修改最后一次注释1、在命令行输入如下命令,然后回车: git commit --amend2、在命令行的最上面会显示上次提交的备注,然后我们需要进入编辑模式进行修改,按i键3、开始编辑,修改备注4、修改完成后,按Esc退出编辑模式5、再按组合键 Shift + :6、输入wq,然后回车(w的意思是保存,q的意思是退出,这一步也可以拆成两步:输入w按回车、输入q按回车)7、修改完成,git push提交服务器二、修改历史的信息(包括已经push到远程库的信息)1、打开g

2020-05-25 15:02:44 12427

转载 分布式任务调度平台XXL-JOB搭建教程

关于分布式任务调度平台XXL-JOB,其实作者 许雪里 在其发布的中文教程中已经介绍的很清楚了,这里我就不做过多的介绍了,关于其搭建教程,本人依照其文档搭建起来基本上也没遇到啥问题,这里通过博客的形式记录下来。1、源码下载地址  ①、GitHub:https://github.com/xuxueli/xxl-job  ②、码云:https://gitee.com/xuxueli0323/xx...

2019-12-06 11:08:42 413

原创 如何发布RMI服务;Java实现简易RPC框架

1 、RMI是什么在 Java 世界里,有一种技术可以实现“跨虚拟机”的调用,它就是 RMI(Remote Method Invocation,远程方法调用)。例如,服务A 在 JVM1 中运行,服务B 在 JVM2 中运行,服务A 与 服务B 可相互进行远程调用,就像调用本地方法一样,这就是 RMI。在分布式系统中,我们使用 RMI 技术可轻松将服务提供者(Service Provider)与...

2019-12-03 16:39:58 229

原创 线程池任务执行器配置以及ExecutorService的invallkeAll、submit、execute方法的区别

一、任务调度器配置:task:scheduler/@pool-size:调度线程池的大小,调度线程在被调度任务完成前不会空闲task:scheduled/@cron:cron表达式,注意,若上次任务未完成,即使到了下一次调度时间,任务也不会重复调度<task:scheduled-tasks scheduler="scheduler"> <task:schedul...

2019-12-02 18:13:55 2099

原创 MySQL:字符串中的数字、英文字符、汉字提取

本文参考:https://blog.csdn.net/oYeZhou/article/details/81665643在进行字符串处理时,常常需要提取其中某一类型的字符,有时候需要提取其中的数字,有时需要提取其中的英文字符,而有时候则需要提取其中的中文字符。这里利用正则匹配,实现了该功能。废话少说,直接上码:DELIMITER $$ DROP FUNCTION IF EXISTS `N...

2019-10-22 20:54:35 1783 1

转载 MyBatis以及Druid 防止sql注入攻击

SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者)。[摘自] SQL injection - WikipediaSQL注入,大家都不陌生,是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如“or ‘1’=’1’”这样的语句),有可能入侵参数检验不足的应用程序。所以,在我们的应用中需要...

2019-07-25 17:23:46 6669

转载 java规范之卫语句以及try-with-resource语法

卫语句如果条件语句极其复杂,就应该将条件语句拆解开,然后逐个检查,并在条件为真时立刻从函数中返回,这样的单独检查通常被称之为“卫语句”(guard clauses)摘自《重构—改善既有代码的设计》卫语句的效果就是将原来需要仔细阅读代码、细心整理逻辑的条件判断整理成一眼能看透的逻辑关系,效果就像以下:if(it == 活的){ if(it == 人){ if(it...

2019-07-25 14:24:31 309

原创 myeclipse安装sonarlint插件失败

前言:在用高版本myeclipse安装sonarlint4.1插件时报错:下面通过离线安装方式来安装sonar插件:SonarLint 插件离线安装包:org.sonarlint.eclipse.site-2.0.0.20160404-1547-RELEASE.zip下载地址:https://bintray.com/sonarsource/SonarLint-for-Eclipse/rel...

2019-07-24 11:48:33 1569

原创 LongAdder及AtomicLong

AtomicLong原理  就像我们所知道的那样,AtomicLong的原理是依靠底层的cas来保障原子性的更新数据,在要添加或者减少的时候,会使用死循环不断地cas到特定的值,从而达到更新数据的目的。那么LongAdder又是使用到了什么原理?难道有比cas更加快速的方式?LongAdder原理这里让我困惑的一个问题是LongAdder中没有类似于AtomicLong中getAndIncr...

2019-07-23 19:41:16 259

原创 ThreadLocalRandom和Random区别与用法

Random原理:在JDK7之前包括现在java.util.Random应该是使用比较广泛的随机数生成工具类,另外java.lang.Math中的随机数生成也是使用的java.util.Random的实例。下面先看看java.util.Random的使用:public class RandomTest { public static void main(String[] args) {...

2019-07-23 16:39:56 2888

转载 ThreadLocal应用场景及实例

一、对ThreadLocal理解ThreadLocal提供一个方便的方式,可以根据不同的线程存放一些不同的特征属性,可以方便的在线程中进行存取。二、以session为例来理解ThreadLocal在web开发的session中,不同的线程对应不同的session,那么如何针对不同的线程获取对应的session呢?我们可以设想了如下两种方式:1.在action中创建session,然后传递...

2019-07-23 11:33:06 1115

转载 Oracle dbms_crypto加密解密包介绍

oracle从10gR2版本开始支持这个包,利用这个函数可以对字段进行加减密。包括可以给RAW和LOB类型的字段加密和解密,比如声音和图片,支持以下加密算法Data Encryption Standard (DES), Triple DES (3DES, 2-key and 3-key)Advanced Encryption Standard (AES)MD5, MD4, and SHA-...

2019-07-22 17:56:25 1719

原创 java多线程之倒计时器CountDownLatch

示例一、原文:https://www.relaxheart.cn/to/master/blog?uuid=83CountDownLatch是一个非常实用的多线程控制工具类。常用的就下面几个方法:CountDownLatch(int count) //实例化一个倒计数器,count指定计数个数countDown() // 计数减一await() //等待,当计数减到0时,所有线程并行执行...

2019-07-12 14:13:23 2398

转载 java多线程之DateTimeFormatter和SimpleDateFormat

1.SimpleDateFormat为什么不是线程安全的?如果我们把SimpleDateFormat定义成static成员变量,那么多个thread之间会共享这个SimpleDateFormat对象, 所以Calendar对象也会共享。public static SimpleDateFormat formater = new SimpleDateFormat( "yyy...

2019-07-12 13:58:09 853 1

原创 用策略模式优化代码的实例

实例一:利用利用策略模式实际开发中 if else 条件判断过多的问题,条件少还好,一旦 else if 过多这里的逻辑将会比较混乱,并很容易出错。比如:刚开始条件较少,也就没管那么多直接写的;现在功能多了导致每次新增一个 else 条件都得仔细核对,生怕影响之前的逻辑。重构之后这里的结构如下:最后直接变为两行代码,简洁了许多。而之前所有的实现逻辑都单独抽取到其他实现类中。拆分后的条件...

2019-06-14 17:20:01 999

转载 elasticsearch、head插件、kibina插件、ik插件 windows安装

一.elasticsearch 安装官网下载 选择历史版本5.5.0 安装即可,运行.bat文件二.kibana同es,运行.bat文件 5.5.0.x86版本,没找到64位的三.ik 分词器1.下载 https://github.com/medcl/elasticsearch-analysis-ik (下载源码,有pom文件那个)2.解压并进入elasticsearch-ana...

2019-05-30 11:26:01 4026 3

转载 elasticsearch集群搭建

现有两部机器:192.168.31.86,192.168.31.871、注意事项集群需要在同一网段2、配置elasticsearch.ymlcluster.name :配置es的集群名称,不同的集群用名字来区分, 如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。 node.name:节点名称,一部服务器一个节点,分别为node-1,node-2,node-3 。 ht...

2019-05-28 17:13:53 1695

原创 spring-data-elasticsearch简单案例

关于spring-data-es注解以及案例还可以参照https://blog.csdn.net/qq_43652509/article/details/83989257一、spring-data-elasticsearch 的工程介绍spring-data-elasticsearch 的工程,介绍 Spring Data Elasticsearch 简单的 ES 操作。Spring Data...

2019-05-28 11:14:25 1396

原创 Elasticsearch及其head插件安装

一、Elasticsearch下载官网地址:https://www.elastic.co/进去之后点右上角download,然后选历史版本。然后搜索Elasticsearch选择要下载的版本,进行下载,zip为windows版本,tar为linux版。二、安装1、建立安装目录并上传elasticsearch-2.4.3.tar.gz [hadoop@djt002 elasticsea...

2019-05-27 20:29:38 51847 8

原创 PostMan请求接口(模拟登陆状态)

前言:我们在开发测试过程中,总有一些接口是需要登陆才能进行访问的,而我们直接用postman来访问接口地址的时候会跳转到登陆页面的信息,下面看如何保持登陆状态来访问接口。**1、**在浏览器中输入用户密码进行登陆网站。2、按f12查看网页加载数据。选择application–&amp;gt;Cookies–&amp;gt;选择相应地址;如下图:**3、**查找sessionId(我们知道服务器保持ses...

2018-12-07 15:45:45 15177

原创 java多线程问题以及spring jpa事物问题以及httpost传输问题总结

1、多线程事物控制问题:在新线程中执行dao中的方法的时候出现错误如下java.lang.reflect.InvocationTargetExceptionorg.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax....

2018-11-01 18:36:24 1537

原创 linux下服务后台运行的指令(关闭终端仍然运行)

一、为什么要使程序在后台执行我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是用putty远程连接到日本Linux服务器。所以使程序在后台跑有以下三个好处:1:我们这边是否关机不影响日本那边的程序运行。(不会像以前那样,我们这网络一断开,或一关机,程序就断掉或找不到数据,跑了几天的程序只能重头再来,很是烦恼)2:不影响计算效率2:让程序在后台跑后,不会占据终端,我们可...

2018-10-26 11:11:03 1708

org.sonarlint.eclipse.site-3.6.0.201806071228-RELEASE .zip

eclipse离线下载org.sonarlint.eclipse.site-3.6.0.201806071228-RELEASE 包解压后,手动导入插件即可。

2019-07-24

Elasticsearch案例.zip

附件elasticsearch-6.3.0就es的windows版本带ik(也是6.3.0版本)和head插件的(已配置好的)。 案例里面是针对es的基本插入查询等操作。 两个版本一个是低版本(elasticsearch-2.4.3结合spring-boot-1.5.12.RELEASE)的案例,一个是高版本(elasticsearch-6.3.0结合spring-boot-2.1.4.RELEASE)案例。

2019-05-30

elasticsearch.zip

该案例,整合了spring-boot和spring-data-elasticsearch;简单的做了插入以及查询操作。

2019-05-28

elasticsearch-head-master (1).zip

Elasticsearch-Head插件,使用些插件用于查看Elasticsearch中的数据以及配置信息。

2019-05-27

wkhtmltopdf Windows版

wkhtmltopdf Windows版,用于把html文件转换成pdf文件。版本:wkhtmltox-0.12.5-1.msvc2015-win64

2018-11-02

VNCViewer资源下载

VNCViewer用于打开连接centos等系统,非常好用的窗口化工具。

2018-11-02

HttpClientUtil 类

包含普通http的get和post传输方式,还包含multipart/form-data方式的post传输方式。

2018-11-02

空空如也

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

TA关注的人

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