自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南有南无

敬畏技术,严格律己!

  • 博客(93)
  • 收藏
  • 关注

原创 视频解析工具类

<dependency> <groupId>com.googlecode.mp4parser</groupId> <artifactId>isoparser</artifactId> <version>1.1.18</version></dependency>import org.junit.Test;import java.io.*;import java.net.M.

2022-03-15 16:31:24 439 1

原创 超好用的 Kafka 客户端管理工具 Offset Explorer

我们在项目开发中根据实际业务需求会使用到一些中间件,比如缓存redis、消息队列Kafka/RocketMQ/RabbitMQ等,在代码中集成后,可以通过命令来查看数据的走向,但我们更希望的是有一些可视化的辅助工具,来帮助我们快速的查看和监控服务以及数据的走向。很多中间件官方并没有给我们提供一些比较好的可视化工具。以Kafka为例介绍kafka可视化工具offset explorer的使用,更加方便我们对kafka数据的直观感受。一、下载安装1、从kafka tool官网下载Offset Exp

2022-03-06 20:42:35 11568 5

原创 Bigdecimal心得

BigDecimal cnt;BigDecimal totalCnt = new BigDecimal(total);cnt = new BigDecimal(po.getId() * 100);Double d = cnt.divide(totalCnt, 2, BigDecimal.ROUND_HALF_UP).doubleValue();在这里100要先乘以整数,否则放到除完后再*100,则会出现没有保留两位小数的情况;一些BigDecimal的参考:BigDecimal.se.

2022-01-19 20:47:22 240

转载 new 对象生成所有set方法

idea 快速生成new 出来对象的所有set方法,插件安装 - 程序员大本营

2022-01-10 17:14:41 434

原创 好文章列表

mySql覆盖索引与回表https://www.jianshu.com/p/8991cbca3854

2021-08-03 08:20:43 94

原创 数据库三范式

1:字段不可拆分,如:名字字段,王小二,在国外“王”和“小二”是要分开的2:需要有主键,其他字段通过主键关联3:不冗余额外信息,如code对应的name

2021-07-06 19:10:38 79

原创 默认关闭IDEA的注释doc的rendered view模式

图下图

2021-05-22 23:50:08 7097

原创 正则表达式取反/正则不包含

^((?!hello).)*$是否匹配到:hello

2021-05-22 13:39:18 1418

原创 使用Visual Paradigm画ER图/Visual ER图

Visual Paradigm:多功能设计制图工具。一:new-project新建项目二:new entity relationship diagramnew entity relationship diagram :新建实体关系图三:拖拽一个实体出来四:open specificationopenspecification :打开说明五:增加行/字段六:结果图...

2021-05-15 08:34:53 5626 1

原创 架构思考

领域事件我们知道领域模型的变化会产生领域事件。例如,用户在完成注册后,系统会发出一封带有确认信息的邮件到用户的邮箱;用户关注的好友发送动态后他会收到相应的通知等等。在业务比较简单或者不用考虑性能的情况下,我们可以直接把对领域事件的处理嵌入到领域服务中。考虑这样一个场景:用户回复了某条评论,那么被回复的那个用户(也就是那条评论的所有者)需要收到一个PUSH消息。如果直接把发送PUSH的动作嵌入到了回复的逻辑中。这样做有以下两个问题:回复动作处理了它不关心的逻辑。发送PUSH不是回复的强关联逻辑,也

2021-05-07 23:43:45 144

原创 metaq原理介绍

1. 前言本文档旨在描述RocketMQ的多个关键特性的实现原理,并对消息中间件遇到的各种问题进行总结,阐述RocketMQ如何解决这些问题。文中主要引用了JMS规范与CORBA Notification规范,规范为我们设计系统指明了方向,但是仍有不少问题规范没有提及,对于消息中间件又至关重要。RocketMQ并不遵循任何规范,但是参考了各种规范与同类产品的设计思想。产品发展历史大约经历了三个主要版本迭代一、Metaq(Metamorphosis)1.x由开源社区killme2008维护,开

2021-04-16 16:10:34 2074

原创 转载metaq消息push过程

https://www.cnblogs.com/chenjunjie12321/p/7922362.html

2021-04-16 15:57:48 96

原创 SPI和API的区别

API(Application Programming Interface):由于实现方完成接口实现SPI(Service Provider Interface):由调用方实现接口常见例子:插件模式开发数据库驱动 Driver 日志 Log dubbo扩展点开发

2021-04-13 17:05:08 615

转载 有限状态机FSM(Finite State Machine)及实现方式介绍(转)

原文:https://www.cnblogs.com/barrywxx/p/12860573.html一、为什么引入有限状态机?  最近做一个项目,项目中很多实体(Entity),每个实体都有很多状态(State),各状态会经过不同事件(Event)触发后转换到另一个状态。这些事件包括但不限于:用户页面点击触发,生效时间或失效时间到达,其他依赖实体状态变更等。在状态变更后还会有一系列动作(Action)处理。一旦相互依赖实体或实体本身状态增多,状态转换变多,处理这些状态的业务代码也会分散在各处,..

2021-02-20 17:15:08 3431

原创 记一次线上死循环导致的内存溢出

系统水位图GC耗时峰值达到1000K毫秒(16分钟)线程总数下跌(出现死循环,线程被hold住)dump文件由于图片可以看出系统堆内存有1G多

2020-11-22 14:45:20 377

原创 计算机:字节与字符转换关系

位(bit):计算机存储信息的最小单位,音译比特,二进制的一个”0“或”1“字节(byte):计算机存储容量基本的单位,8个二进制组成1个字节。一个英文字母占用1个字节,一个汉字占用2个字节。1024B=1KB1024KB=1MB1024MB=1GB1024GB=1TB...

2020-11-22 14:37:36 619

原创 Spring启动过程

开始创建beanFactory加载beanDefinition,并注册到IOC容器中XmlBeanDefifinitionReaderBean实例化流程BeanDefinitionParser

2020-10-25 22:58:11 104

原创 IDEA Diagrams使用实现类图(类关系图、子类、父类)

目录1:右键选择:show diagrams2:结构图效果3:功能说明4:定位源码位置5:添加子类、子实现、父类idea diagrams图标功能是查看类、接口继承和实现的工具。使用方法介绍如下。1:右键选择:show diagrams2:结构图效果3:功能说明num 按钮 功能 1 Fields 域 2 Constructors 构造器 3 Method 方法 4 Properti..

2020-09-06 14:57:48 7737

原创 记录一次aop报错

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderPredictBizServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error...

2020-08-19 18:55:45 164

原创 JAVA知识树

2020-06-21 22:10:14 220

原创 maven中的groupId和artifactId的含义

一:定义groupId和artifactId被统称为“坐标”,是为了保证项目的唯一性而提出的。如果你要把项目弄到maven仓库中,查找的时候就必须用groupId和atifactId去查找。二:规范groupId一般分为多段。这里我只说两段:第一段为域:域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。第二段为公司名称:如apache、alibab...

2020-05-05 21:32:35 1637

原创 Java并发编程:Callable、Future和FutureTask

一:背景创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。  这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。  如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。  而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务执行结果。...

2020-05-04 01:08:04 302

原创 MySQL Workbench

PK:primary key 主键NN:not null 非空UQ:unique 唯一BIN:binary 二进制数据UN:unsigned 无符号(非负数)ZF:zero fill 填充0 例如字段内容是1 int(4), 则内容显示为0001AI:auto increment 自增...

2020-05-01 22:31:19 740

原创 Spring理解篇章随记

1

2020-03-08 21:32:55 161

原创 mysql相关

一:数据库事务具有ACID四大特性原子性(atomicity) :事务最小工作单元,要么全成功,要么全失败 。 一致性(consistency): 事务开始和结束后,数据库的完整性不会被破坏 。 隔离性(isolation) :不同事务之间互不影响,四种隔离级别为RU(读未提交)、RC(读已提交)、RR(可重复读)、SERIALIZABLE (串行化)。 持久性(durability) ...

2020-02-16 14:43:06 123

原创 常用软件安装教程地址

1:mac安装tomcathttps://www.jianshu.com/p/87121d912d10

2020-02-05 13:25:20 271

原创 阿里集团使用的各种中间件和基础产品

中间件: HSF:阿里高性能服务框架 TDDL:分库分表数据库服务 ONS:分布式消息服务 Diamond:分布式持久配置系统 Tair:分布式缓存 Notify:分布式消息服务 Switch:轻量级开关与动态配置项目管理框架 Sentinel:限流 EagleEye:链路监控 SchedulerX...

2020-01-11 14:45:14 808

原创 Java正则表达式&Sublime正则使用

一:解释正则表达式定义了字符串的模式;正则表达式可以用来搜索、编辑、处理文本;正则表达式并不仅限于某种语言,但是在每种语言中有细微的差别二:正则表达式实例java.util.regex 包主要有以下类:Pattern类:pattern对象是一个正则表达式的编译表示。 Matcher类:Matcher对象是对输入字符串进行解释和匹配操作的引擎。三:案例package tes...

2020-01-11 14:08:36 473

原创 学习心得

一:mybatis二:spring三:springMVC四:MYSQL

2019-12-22 14:38:25 114 1

原创 tar包、jar包、war包、tar.gz包的区别(通过assembly打tar.gz包)

一:文件类型不同tar包:属于打包文件。Lniux系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件后缀为“tar”。简单说tar就是打包;jar包:属于打包文件。即Java Archive的Java包。Java编译好之后生成class文件,但是如果直接发布这些class文件的不方便,所以就把许多class文件打包为一个jar包。jar包中除了class文件还包括一些资源和配...

2019-11-16 13:03:12 5531

原创 多线程工具CountDownLatch使用

一:CountDownLatch概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。二:CountDownLatch的用法CountDownLatch典型用法:某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为new CountDownLatch(n),每当一个任务线...

2019-11-10 16:38:41 192

转载 可重入锁

一:打水故事理解可重入锁背景:有一口井水,村民都在那边打水。但是人打水人太多,需要用规则保证打水秩序。规则:家庭为单位,家庭任何人到井边,这个家庭就有打水权(七大姑八大姨等亲戚)看井人:保证按秩序交接打水示意图如下 :是不是感觉很和谐,如果打水的人打完了,他会跟看井人报告,看井人会让第二个人接着打水。这样大家总都能够打到水。是不是看起来挺公平的,先到的人先打水,当然不是绝对...

2019-11-03 21:55:47 130

原创 与运算(&)、或运算(|)、异或运算(^)、进制转换

参加运算的两个对象,按二进制位进行运算。进制转换地址:http://tool.oschina.net/hexconvert/一:与运算符(&)预算规则:0&0=0;0&1=0;1&0=0;1&1=1即:两个同时为1,结果为1,否则为0例如:3&5十进制3转为二进制的3:0000 0011十进制5转为二进制的5:0000...

2019-10-26 23:49:30 245067 17

转载 SpringBoot之MultipartFile文件上传使用

一:定义MultipartFile:文件上传处理(excel等)转

2019-10-14 17:09:57 2535

原创 @Slf4j注解的使用

在使用slf4j日志系统的时候,我们经常需要在类中添加如下代码用于打印日志(在日志文件中,就会将类名打出来):问:创建日志实例,为什么使用static和final呢?因为:final修饰为不可变常量;static修饰变量,不管new多少次,都只创建一个实例,节省空间;import org.slf4j.Logger;import org.slf4j.LoggerFactory;...

2019-10-13 18:04:05 375

原创 Mybatis之TypeHandler使用介绍

一:TypeHandler概念TypeHandler类型转换器,在mybatis中用于实现JAVA类型和JDBC类型的相互转换。列如:mysql表字段类型是个varchar,但是java代码对应字段是个对象VO,对象类型肯定无法存入mysql中。此时需要将对象VO转换为字符串类型,才能存入mysql数据库中,typeHandler就起到了这个作用。二:案例 <update ...

2019-10-13 17:42:54 778

原创 ThreadLocal用法和原理

一、用法ThreadLocal用于保存某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。ThreadLocal.get::获取ThreadLocal中当前线程共享变量的值。 ThreadLocal.set:设置ThreadLocal中当前线程共享变量的值。 ThreadLocal.remo...

2019-10-07 22:24:03 173

原创 git push错误failed to push some refs to解决方法

一:原因当我们在git版本库中发现一个问题后,如你在git上对它进行了在线修改,但是没有对本地库进行同步(做到push之前,都先pull下代码,就可以保证本地库和远程库代码一致)。这个时候你再次commit,想把本地库提交到远程git库中,就会出现push失败问题。failed to push some refs to二:解决方法:2.1跟因就是远程库与本地库代码不一致导致...

2019-10-06 12:11:33 113984 6

原创 【设计模式】简记

推荐书:Head First 设计模式 https://book.douban.com/subject/2243615/一:6大设计模式软件开发之所以会有这些原则,就是因为复杂多变且不可预料的需求。并不是说在实际项目开发中对这六大原则中的每一条都遵循到极致,而是说在项目开发过程中,根据项目的实际需要尽量的去遵循这些原则。当然能真正做到、做好的恐怕也只有具有丰富经验的人能运用自如。...

2019-09-15 21:30:30 103

原创 【IDEA】断点Breakpoints解释

2019-09-15 17:41:13 4749

空空如也

空空如也

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

TA关注的人

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