自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(356)
  • 收藏
  • 关注

转载 Redis原理和机制详解

Redis原理和机制详解

2022-08-17 09:57:00 49

转载 原子操作增强类——LongAdder

AtomicLong与AtomicLong对比

2022-07-29 17:38:41 16

转载 @Transactional事务方法中包含多个同类事务方法,这些事务方法本身设置失效两种解决方案

@Transactional事务方法中包含多个同类事务方法,这些事务方法本身设置失效两种解决方案

2022-07-27 11:21:05 353

原创 Java 获取当前周,上一周,当前月份,上一月份,当前年份,上一年份的 第一天 最后一天 日期

获取当前周,上一周,当前月份,上一月份,当前年份,上一年份的 第一天 最后一天 日期

2022-06-02 19:43:23 709

原创 Java8的stream处理List集合的(交集、差集,重复)

Java8的stream处理List集合的(交集、差集,重复)public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("1"); list1.add("2"); list1.add("2"); list1.add("3"); list1.add("3"); list1.add("5");...

2022-05-18 20:52:37 728

转载 Mysql的INTERVAL()函数和INTERVAL关键字

一,INTERVAL()函数INTERVAL()函数可以返回分段后的结果,语法如下:INTERVAL(N,N1,N2,N3,..........)其中,N是要判断的数值,N1,N2,N3,...是分段的间隔。这个函数的返回值是段的位置:如果N<N1,则返回0,如果N1<=N<N2,则返回1,如果N2<=N<N3,则返回2。所以,区间是前闭后开的。举个例子:有这样的数据:然后执行以下sql:SELECT id,percent,IN

2022-05-09 16:27:20 703

转载 Redis基础

什么是NOSQLNot Only SQL 通常指的是非关系型数据库,通常用于提升数据查询的速度,有时也叫缓存。Redis是非关系型数据库的一种。非关系型数据库不能代替关系型数据库,只是关系型数据库的补充。非关系数据库的本质:内存存储(数据库存储运行在内存中)。如果不持久化,那么数据就会丢失。数据之间不存在对应关系关系型数据库:MySQL,Oracle,SQL Server等。数据与数据之间是有关系的:1对1,1对多,多对多。表中还有各种约束,数据添加进去的时候,约束的检查,关系型数据库还是事

2022-05-09 10:47:23 36

转载 [Mysql] RANK()函数 | ROW_NUMBER()函数 | DENSE_RANK()函数

窗口函数的基本语法<窗口函数> OVER ([PARTITION BY <用于分组的列>] ORDER BY <用于排序的列>)※ []中的内容可以省略注意:Mysql从8.0版本才开始支持窗口函数ROW_NUMBER()、RANK()、DENSE_RANK()的区别(1) ROW_NUMBER(): 依次排序,不会出现相同排名(2) RANK(): 出现相同排名时,跳跃排序(3) DENSE_RANK(): 出现相同排名时,连续排序导入数.

2022-05-07 09:47:37 28

转载 ​spring Assert 教程​

springAssert教程本文介绍spring Assert类,并通过示例说明如何使用。Assert类目的Spring Assert类帮助我们校验参数。通过使用Assert类方法,我们可以写出我们认为是正确的假设,反之,会抛出运行时异常。每个Assert的方法可以与java assert表达式进行比较。java assert表达式在运行时如果条件校验失败,则抛出Error,有趣的是,这些断言可以被禁用。Spring Assert的方法有一些特点:- 都是static方法- 抛出..

2022-04-20 14:38:28 72

转载 又一次被idea坑了(Shorten command line)

0. 问题背景在正式进入问题之前,我先简单描述一下背景。我司基于javaagent做了一套字节码插件平台。如果大家有了解过Skywalking的话,那基本上跟这个差不多,只不过我们这个字节码平台的特色就是:Easy Development Easy Management基于此平台,我司构建了一整套声明式API,把API与实现分离,彻底解耦了业务研发与中间件研发,使得中间件研发可以独立迭代,不再依赖于业务方。这个不是我们这次分享的重点,具体是如何做的,下次再分享。1. 为什么就我本地不

2022-04-16 19:22:30 1353 2

转载 redis分布式锁及秒杀系统实战

本文分为两部分:一、介绍redis分布式锁的原理和使用方法;二、使用redis分布式锁实现一个简单的秒杀系统。注意:本文使用java语言,最后的例子为springboot项目。但是原理是一样的。目录redis分布式锁原理进阶锁过期时间lock防误删确保删锁原子性秒杀系统示例redis分布式锁对并发有要求的系统常常面临一个问题,如何在实现并发的基础上保持数据的一致性。redis分布式锁能给出一个解决方案。redis相信大家都非常熟悉了,作为一个数据库缓存技术,简便

2022-01-29 18:19:52 285

转载 mysql随手记-我没有被面试官“锁”住

一位风尘仆仆的男子走了过来,对我说:小伙子,我看你简历上写的精通mysql,那我就问问你mysql的知识吧!正在上传…重新上传取消我:好的(千万别多问,千万别多问~~)面试官:对mysql锁了解的多吗?我:还行(其实就是很好)。面试官:那好,那我接下来主要问锁相关的知识我:好的好的(放马过来吧,我也就是客气一下。)正在上传…重新上传取消面试官:mysql支持哪些级别的锁?我:支持库锁、表锁、行锁。面试官:那先说说库锁吧,锁库有几种方式?我:两种,分别是FTWRL(F

2022-01-29 18:00:44 46

转载 Mysql基础巩固 ,SELECT的执行过程

文章目录一、多表查询1.1 笛卡儿积(交叉连接)解决方法:1.2 等值连接 vs 非等值连接1.3 自连接 vs 非自连接1.4 内连接 vs 外连接1.4.1 内连接(INNER JOIN)1.4.2 外连接(OUTTER JOIN)1.4.2.1 左外连接(LEFT OUTTER JOIN)1.4.2.2 右外连接(RIGHT OUTTER JOIN)1.4.2.3 满外连接(FULL OUTTER JOIN)1.4.2 UNION1.5 图解7种JOIN方式总结:1.6

2022-01-29 11:13:40 58

转载 volatile 关键字详解

volatile 1、禁用指令重排 2、内存中对线程的可见性volatile关键字可以说是Java虚拟机提供的最轻量级的同步机制,但对于为什么它只能保证可见性,不保证原子性,它又是如何禁用指令重排的,还有很多同学没彻底理解相信我,坚持看完这篇文章,你将牢牢掌握一个Java核心知识点先说它的两个作用:保证变量在内存中对线程的可见性禁用指令重排每个字都认识,凑在一起就麻了这两个作用通常很不容易被我们Java开发人员正确、完整地理解,以至于许多同学不能正确地使用volatile关于可.

2022-01-29 10:58:58 20

转载 分布式ID生成方案

分布式ID生成方案在业务系统中很多场景下需要生成不重复的 ID,比如订单编号、支付流水单号、优惠券编号等都需要使用到。在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据,数据库的自增ID显然不能满足需求;特别一点的如订单、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。那么这个全局唯一ID就叫分布式ID。

2022-01-29 10:51:53 149

转载 谈谈Dubbo框架的实现原理及与SpringCloud微服务之间的区别

一、简介Dubbo是由阿里巴巴开源的透明的高性能分布式RPC框架,基于dubbo协议实现,底层通信方式是基于TCP长连接,传输方式是NIO实现,提高服务的性能。主要有三个核心特性:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。二、Dubbo工作原理: 第一层:service层,接口层,给服务提供者和消费者来实现的 第二层:config层,配置层,主要是对dubbo进行各种配置的 第三层:proxy层,服务代理层,透明生成客户端的stub和服务单的s

2021-11-12 14:39:49 145

转载 Guava官方文档-RateLimiter类

Guava官方文档-RateLimiter类原文链接作者:Dimitris Andreou 译者:魏嘉鹏 校对:方腾飞RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证。如果必要的话,每个acquire()会阻塞当前线程直到许可证可用后获取该许可证。一旦获取到许可证,不需要再释放许可证。校对注:RateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔令牌,线程拿到令牌才能执行,比如你希望自己的应用程序QPS不要超过1...

2021-09-10 15:55:27 292

转载 限流(Rate limit)算法详解

一、前言保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。今天和大家谈谈限流算法的几种实现方式,本文所说的限流并非是Nginx层面的限流,而是业务代码中的逻辑限流。那么为什么需要限流呢?按照服务的调用方,可以分为以下几种类型服务1、与用户打交道的服务比如web服务、对外API,这种类型的服务有以下几种可能导致机器被拖垮:用户增长过快(这是好事)因为某个热点事件(微博热搜)竞争对象爬虫恶意的刷单这些情况都是无法预知的,不知道什么时候会有10倍甚至20倍的流量打进来,如果真碰上这种

2021-09-10 14:19:06 285

转载 ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder等学习...

无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数。你可知道,有很多现成的工具类可用,并且代码质量都很不错,不用你写,不用你调试,只要你发现。在 Apache Jakarta Common 中, Lang 这个 Java 工具包是所有 Apache Jakarta Common 项目中被使用最广泛的,几乎你所知道的名气比较大的软件里面都有用到它,包括 Tomcat, Weblogic, Websphere, Eclipse 等等。我们就从这个包开始介绍整个 commo...

2021-09-08 16:59:10 159

转载 EqualsBuilder的使用之全等

使用场景当我们创建一个bean后,往往需要重写它的hashCode方法和equals方法。当bean的属性很多的时候,equals方法的重写将会是个很麻烦的事情。举个栗子:public class Status { private String Id; private String Name; private String Left; private String Top; private String Width; private Strin...

2021-09-08 16:38:54 109

原创 bigDecimal 返回前端保留小数点后两位问题解决

bigDecimal 返回前端保留小数点后两位问题解决bigDecimal保留后两位小数且返回前端不丢失小数点后的0 位数不够补零例后端返回decimal 类型 5.00到前端会变成5import com.fasterxml.jackson.annotation.JsonFormat;例如private BigDecimal rentMonth;解决方法:第一步:1、加注解:@JsonFormat(shape = JsonFormat.Shape.STRING...

2021-09-08 16:33:26 4569 3

转载 Comparator与Comparable用法与区别

Comparator与Comparable用法与区别一、概述。  Comparator和Comparable两者都属于集合框架的一部分,都是用来在对象之间进行比较的,但两者又有些许的不同,我们先通过一个例子来看一下他们的区别,然后再分别学习下它们的源码。先来看一下Comparable的例子,定义实体类Student,实现Comparable,重写compareTo方法:public class Student implements Comparable<Student> {

2021-09-06 16:16:50 231

转载 stream流倒序排序_java8 stream多字段排序

stream流倒序排序_java8 stream多字段排序List list; 代表某集合//返回 对象集合以类属性一升序排序list.stream().sorted(Comparator.comparing(类::属性一));//返回 对象集合以类属性一降序排序 注意两种写法list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序list.stream().sorted(Com

2021-09-06 16:14:54 1881

转载 SQL创建索引和删除索引

SQL创建索引和删除索引使用CREATE 语句创建索引CREATE INDEX index_name ON table_name(column_name,column_name) include(score)普通索引CREATE UNIQUE INDEX index_name ON table_name (column_name) ;非空索引CREATE PRIMARY KEY INDEX index_name ON table_name (column_name) ;主键索引

2021-09-06 16:12:43 1328

转载 xshell常用命令

(1)命令ls——列出文件ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件ls a* 列出当前目录下以字母a开头的所有文件ls -l *.doc 给出当前目录下以.doc结尾的所有文件(2)命令cp——复制文件cp afile afile.bak 把文件复制为新文件afile.bakcp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/

2021-08-02 17:05:05 95

转载 csv导入mysql中文乱码等问题

1、日期格式选择不正确导致导入失败源日期格式:2018-05-31 23:49:44 ,导入时日期分隔符默认为“/”,调整为“-”,问题解决。2、中文导入后乱码原因:字符集选择错误,导入时默认选择如下:应该调整为搞定!...

2021-07-15 12:04:23 139

转载 java中String的格式化format()方法

String.format()字符串常规类型格式化的两种重载方式format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。format(Locale locale, String format, Object… args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。转换符 详细说明 示例 %s 字符串类型 “你好啊伙计” %c 字符类型 ‘m’ %b

2021-06-22 12:25:48 991

转载 java判断是否有中文字符

java判断是否有中文字符实现方式一 实现方式二 方式三 实现方式一针对每个字符判断public static boolean isChinese(String str) throws UnsupportedEncodingException { int len = str.length(); for(int i = 0;i < len;i ++) { String temp .

2021-06-17 14:37:07 266

转载 一张图彻底搞懂MySQL的 explain

一张图彻底搞懂MySQL的 explainexplain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。explain的用途1. 表的读取顺序如何2. 数据读取操作有哪些操作类型3. 哪些索引可以使用4. 哪些索引被实际使用5. 表之间是如何引用6. 每张表有多少行被优化器查询......explain的执行效果mysql> explain select * from subject where id = 1 \G****

2021-05-24 15:09:32 57

转载 MySQL常用函数大全(总结篇)

MySQL常用函数大全(总结篇)本篇文章讲解是是MySQL的函数方法,涵盖所有的MySQL常见的方法。下面是本篇文章的目录结构,可以根据自己需求点击右方目录查找:一、数字函数二、字符串函数三、日期函数四、MySQL高级函数(一)数字函数1、ABS(x) 返回x的绝对值SELECT ABS(-1);---- 返回1122、AVG(expression) 返回一个表达式的平均值,expression 是一个字段SELECT AVG(age) FROM student;1

2021-03-23 17:37:16 229

原创 Linux 命令 常用总结(三)

Linux 命令 常用总结(三)目录Linux 命令 常用总结(三)(41):zip(42):unzip(43):dmesg(44):uptime(45):stat(46):du(47):df(48):top(49):free(50):date(51):which(52):whereis(53):who(54):w(55):id(56):su/sudo(57):cal(58):telnet(59):ssh(41):zip

2021-03-11 15:24:09 179

原创 Linux 命令 常用总结(二)

目录(21):tree命令简介语法格式选项说明应用举例(22):pwd命令简介语法格式选项说明应用举例(23):file命令简介语法格式选项说明应用举例(24):chattr/lsattr命令简介语法格式选项说明应用举例(25):more命令简介命令格式选项说明应用举例(26):less命令简介命令格式选项说明应用举例(27):head命令简介命令格式选项说明应用.

2021-03-11 11:15:38 129

原创 Linux 命令 常用总结(一)

Linux 命令 常用总结(1) xargs命令简介xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的字符串内含有空格的时候,xargs可能会误判。简单来说,xargs的作用是给其他命令传递参数,是构建单行命令的重要组件之一。之所以要用到xargs,是因为很多命令不支持使用管道|来传递参数,例如:find/sbin-perm+700|ls-l...

2021-03-10 18:39:18 145

转载 MD5加密工具类--MD5Utils.java

Java实现MD5加密的方式MD5加密是一种常见的加密方式,经常用在保存用户密码和关键信息上。1、什么是MD5  MD5加密全称是Message-Digest Algoorithm 5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位运算,最终获取加密后的MD5字符串。  例如要加密一篇文章,会随机从每段话或者每行中获取一个字,把这些字统计出来后,再通过一定的运算获得一个固定长度的MD5加密后信息。因此,其很难被逆向破解。  MD5加密流程图!  2、MD5有哪些特点 MD5加密

2021-02-25 18:15:40 353

转载 MYSQL中IN与EXISTS的区别

MYSQL中IN与EXISTS的区别目录一、IN与EXISTS的区别1、IN查询分析2、EXISTS查询分析3、结论:在MYSQL的连表查询中,最好是遵循‘小表驱动大表的原则’一、IN与EXISTS的区别1、IN查询分析SELECT * FROM A WHERE id IN (SELECT id FROM B);等价于:1、SELECT id FROM B ----->先执行in中的查询 2、SELECT * FROM A...

2021-02-19 15:11:18 135

转载 SpringTask中cron表达式整理记录

SpringTask中cron表达式整理记录1.cron表达式格式:{秒} {分} {时} {日} {月} {周} {年(可选)}2.cron各选项的取值范围及解释:{秒}:取值范围(0-59),不允许为空值,若值不合法,调度器将抛出SchedulerException异常{分}:取值范围(0-59),不允许为空值,若值不合法,调度器将抛出SchedulerException异常{时}:取值范围(0-23),不允许为空值,若值不合法,调度器将抛出SchedulerExcepti.

2020-10-27 18:13:22 133

转载 mysql重点知识详解

mysql重点知识详解MySql一、Sql语句的分类 二、对数据库和表的操作(不是数据) 1.建表语句 2.查看建表语句 3.表的复制 数据类型(常用的) char和varchar如何选择? 三、约束(Constraint) 常见的约束 四、DML操作 insert插入数据语法格式 修改数据:update 语法格式 删除数据:delete语法格式 五、DQL操作 简单的查询语句 分组函数 分组查询group by 和havi

2020-10-26 15:56:42 220

转载 【数据结构与算法】高级排序(希尔排序、归并排序、快速排序)完整思路,并用代码封装排序函数

【数据结构与算法】高级排序(希尔排序、归并排序、快速排序)完整思路,并用代码封装排序函数本系列文章【数据结构与算法】所有完整代码已上传github,想要完整代码的小伙伴可以直接去那获取,可以的话欢迎点个Star哦~下面放上跳转链接https://github.com/Lpyexplore/structureAndAlgorithm-JS本篇文章来讲解一下更高级的排序算法,顾名思义,它们的排序思想一定更复杂,效率也一定比简单排序更高。为了更方便地理解高级排序算法,还是建议大家先把简单排序了解..

2020-10-12 10:23:08 179

转载 【数据结构与算法】简单排序(冒泡排序、选择排序、插入排序)完整思路,并用代码封装排序函数

【数据结构与算法】简单排序(冒泡排序、选择排序、插入排序)完整思路,并用代码封装排序函数本系列文章【数据结构与算法】所有完整代码已上传github,想要完整代码的小伙伴可以直接去那获取,可以的话欢迎点个Star哦~下面放上跳转链接https://github.com/Lpyexplore/structureAndAlgorithm-JS之前的文章,我已经把前端需要了解的数据结构都给说了一边,并且我们也都对其进行了封装。现在我们要开始对排序算法部分进行讲解,排序算法顾名思义,就是对一堆杂乱无..

2020-10-12 10:20:28 205

转载 org.apache.commons.lang3.time.DateUtils 日期工具类

org.apache.commons.lang3.time.DateUtils 日期工具类能动手不哔哔2020-09-25 11:01:2917收藏分类专栏:java文章标签:java版权/** * 判断两个日期时间是否是同一天 。 * * @param date1 第一个日期,不可修改,非null * @param date2 第二个日期,不可修改,非null */public static boolean isSameDay(final Date d...

2020-09-28 16:51:52 910

空空如也

空空如也

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

TA关注的人

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