自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 中使用 protobuf

protobuf

2023-04-14 12:26:07 1303 1

原创 SpringBoot整合Aspect实现AOP和注解方式的日志和编程

aop,注解,

2023-02-23 18:38:05 310

原创 多选多的一种通用处理逻辑

多选多

2023-02-10 11:19:57 537

原创 好用的在线工具集合

在线工具,GC

2023-01-11 16:06:53 162

原创 socket链接检测超时时间过短导致的问题

超时时间

2022-09-06 21:10:02 814

原创 Gson().toJson对于特殊字符的转义&等的转义处理

gson

2022-09-06 15:48:38 2082

原创 MAT的最常用分析

MAT

2022-06-12 19:01:52 657 1

转载 超实用的Navicat 常用快捷键整理

1.打开一个新的查询窗口: Ctrl + Q2.关闭当前窗口:Ctrl + W3.运行当前窗口的SQL语句:Ctrl + R4.运行选中的SQL语句:Ctrl + Shift + R5.注释选中SQL语句:Ctrl + /6.取消注释SQL:Ctrl + Shift + /7.选中当前行SQL:三击鼠标8.复制一行内容到下一行:Ctrl + D9.删除当前行:Ctrl + L10.在表内容显示页面切换到表设计页面:Ctrl + D11.在表设计页面,快速切换到表内容显示页面:Ctrl +

2022-05-24 22:15:12 6743

转载 idea查看某个接口的所有实现类及实现关系的树状图

查看所有的实现类在某个接口或者实现类上 Ctrl + h显示选中某个接口右键 -> Diagrams(show Diagrams) -> 再出来的图上选中某个接口右键 ->show Implementations ->出来的框框Ctrl + A ->Enter

2022-05-18 22:35:14 1653

原创 mysql+mycat搭建1主1备-互为主备的集群

mysql主机M1:192.168.24.102,版本号:5.7mysql主机M2:192.168.24.102mycat主机:192.168.24.102,版本号:Mycat-server-1.6.7.1-验证结果:1.可以实现两个mysql之前互为主备,互相同步对方的数据2.实现mycat写其中的一个库,读两个库3.实现其中一个mysql挂了,mycat自动切换到另一个去写.1.修改mysql配置文件后,重启mysql服务,并检测mysql服务器状态M1的my.cnf[clie

2022-05-15 13:16:28 1088

转载 ConcurrentHashMap1.8 - 扩容详解

简介        ConcurrenHashMap 在扩容过程中主要使用 sizeCtl 和 transferIndex 这两个属性来协调多线程之间的并发操作,并且在扩容过程中大部分数据依旧可以做到访问不阻塞,具体是如何实现的,请继续 。   说明:该源码来自于 jdk_1.8.0_162 版本 。   特别说明:不想看源码可直接跳到后面直接看...

2022-04-10 11:53:47 6028 6

原创 证书过期导致的错误:net::ERR_CERT_DATE_INVALID

证书过期导致的错误:net::ERR_CERT_DATE_INVALID最近在谷歌浏览器上,访问一个后端的时候,http的status直接是falied,提示信息是:ERR_CERT_DATE_INVALID最终定位出来,是服务器端的证书过期了,导致HTTPS协议,在建立链接的时候就报错了....

2022-01-08 21:36:50 5593

原创 解析excel

package com.hgh;import com.monitorjbl.xlsx.StreamingReader;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Sheet;import org.apache.poi.ss.usermodel.Workbook;import java.io.FileInputS

2021-12-07 22:43:40 192

原创 解决POI的XSSFWorkbook导入大excel的内存消耗过大问题

方式1:使用SXSSFWorkbook ,经过测试,这个情况无效,因为本质上SXSSFWorkbook 也是通过XSSFWorkbook来的,他可以解决写出excel的场景,但是解决不了我们这种用户上传且读取excel中的内容的场景 XSSFWorkbook XSSFWorkbook = new XSSFWorkbook(fileInputStream); System.gc(); SXSSFWorkbook SXSSFWorkbook = new SXSS

2021-11-28 19:59:03 10288

原创 redis的string类型和hash类型小数据类型大批量数据占用内存验证

结论,小数据类型的大批量数据,不适合用string类型存储.元数据空间占用了太多内存.1万个数据string的加了1万个127.0.0.1:6379> info memory# Memoryused_memory:1767568used_memory_human:1.69Mhash加了1万个127.0.0.1:6379> info memory# Memoryused_memory:1013984used_memory_human:990.22K100万个s

2021-06-30 21:27:27 392

原创 ES_DSL语法练习_

#查看所有索引GET /_cat/indices?v#c创建索引PUT /shopping33#查看单个索引GET /shopping33#删除索引DELETE /shopping33#c创建索引PUT /shopping#创建文档POST /shopping/_doc{"title":"小米手机","category":"小米","images":"http://www.gulixueyuan.com/xm.jpg","price":3999.00}#创建文

2021-06-06 10:35:07 295 1

原创 Maven的jar包冲突解决方案

Maven自身的解决方案1.最短路径原则谁的依赖树最短,就用那个版本的2.就近原则在路径相同的情况下,谁放在pom文件的最前面,就用谁的。依赖冲突分析和解决用idea的Maven helper插件进行检查。自带exinclude进行屏蔽...

2021-01-09 19:10:29 133

原创 位运算

位运算位与&,相同位数都是1,结果才是1,按位&&的意思。a&a=a,a&0=0位|,相同位数有一个是1,结果就是1,按位||的意思。a|a=a,a|0=a位异或^,相同位数的数字不同,结果才是1,不然都是0。判断相同位数是否数字相反。所以位异或就有一个特殊的情况。aa=0,a0=a。这种特性就可以用来寻找某个特定的消失的数据。上面三种运算,都满足数学的交换律和结合律。...

2020-11-09 08:52:12 122

原创 Java源码研究_集合_ArrayList

ArrayList概述ArrayList是容量可以改变的非线程安全的集合.内部使用数组实现,数组扩容时会创建更大的数组空间(原空间的1.5倍),把原来的数据复制到新数组空间中.ArrayList支持对元素的快速随机访问O(1),但是随机插入和删除时速度通常非常慢O(n),(除非是发生在数组的尾部,并且没有触发扩容操作),因为这个过程如果不是发生在数组尾部,需要移动其他元素(因为数组的内存空间是连续的),或者进行扩容.日常使用注意的问题注意指定合适大小的集合容量,避免扩容影响性能

2020-11-08 20:55:42 176

原创 JVM_虚拟机栈_局部变量表和操作栈_字节码

JVM_虚拟机栈_局部变量表和操作栈_字节码要正确理解Java的代码的执行步骤,需要去看其解析出来的字节码的执行顺序是什么样的.就比如我们常见的j=i++和j=++i的问题.就是局部变量表和操作栈_字节码这几个的关系决定 了他们的不同的结果.public class Test1 { public static void main(String[] args) { int i = 1; /* 这里涉及到jvm的 //1.i放入操

2020-11-05 21:42:49 187 1

原创 内部类和静态内部类

1.内部类可以访问外部类的属性 就算是私有的属性。2.可以外部类定义接口,内部类实现该接口3.可以在方法体内定义一个内部类4.内部类不能定义static元素5.内部类可以多层嵌套static内部类是内部类中一个比较特殊的情况,Java文档是这么描述的:一但内部类使用static修饰,那么它就升级为顶级类。也就是说它跟一个外部类是一样的 除了定义在内部。...

2020-11-04 14:20:40 151

原创 springcloud配置项支持热刷的方式

springcloud配置项支持热刷的方式1.使用configurationproperty注解,注释在类上面2.用refreshscope注解注释在类上面,在属性中用value注解获取3.注入spring的environment类,通过getproperty方法获取

2020-10-26 15:35:09 129

原创 记一次数据库不同导致的字符串字段长度不一致的问题

对方是oracle数据库,gbk编码,字符串长度100。所以只能存储50个汉字我们是postgresql,字符串长度100,可以存100个汉字。所以在我们这边没有问题,写入到他们那边就有问题了。

2020-09-28 16:13:32 958

原创 Java深拷贝到实现

1.对于实现了序列化的类,可以直接使用byteArrayOutStream和ObjectOutStream以及对应的输入流来实现2.用Apache beanutils的copyproperty方法来实现同名的属性的拷贝。集合拷贝则需要中转一下,用上面的方法一个个拷贝...

2020-09-24 16:22:04 102

原创 数据同步工具:kettle和spoon

数据同步工具:kettle和spoonkettle,spoon(可视化工具),组件的并行性,不同的线代表不同的含义,有多种组件:可以执行SQL脚步,Java,读取excel等等。看需要使用。转换,作业。水位线高替换插入更新组件。用tem表...

2020-09-01 07:28:56 507

原创 postgresql_字符串操作函数

/*单行函数1.字符函数*/select upper(‘aaBBcc’),lower(‘AAbbCC’),initcap(‘WoShiHe guan Hong’);select ‘111’||‘2222’,char_length(‘heg’),length(‘3333’),trim(both ‘x’ from ‘xaaxbbxccx’);select ltrim(‘213adawd321’,‘123’);select rtrim(‘21a3adawd3421’,‘123’);select s

2020-08-27 21:59:10 233

原创 记一次查询条件:取时间小于等于当前时间的数据引起的问题

最近系统上有个需求,要找某个时间之前的最新的数据数据A在时间B修改了一次,值为1;在时间C又修改了一次,值为2.有一个表记录了最新的值,有另外一个表记录了每次修改的时间,和每次修改后的值.结果表和过程表.我们这个需求就只能去过程表中取数据.查询条件是修改时间小于等于用户所选时间,默认为当前时间.而随着时间的推移,数据量越来越多,小于等于当前时间的数据也越来越多,最后的就OOM了.最终分析了用户的修改习惯,修改了SQL为小于等于当前时间,大于等于当前时间-一个月....

2020-08-26 21:10:18 1565

原创 横表和纵表

业务员大横表,横表就是表示各个纬度的数据,各自一个字段。例如一级单位是code1,二级单位是code2。要找一个二级的单位数据还得code2有值,codeE是空。就很麻烦纵表就是各个纬度的数据,在一个字段中。例如一级单位,二级单位等都在code字段中...

2020-07-20 22:53:57 282

原创 分析请求的链路上的所有节点

最近遇到了一个问题.客户端发起的请求参数,到了应用程序,却有些参数改变了.由此分析客户端发起请求,经过了哪些节点,可能是有些节点对请求入参做了处理.分析过程客户端->ngix->网关->应用A->应用B->最终应用等.最终定位为网关和应用A,都对请求入参做了SQL注入处理,导致了到最终应用的时候,请求入参发生了改变....

2020-05-30 21:38:27 508

原创 大数据开发:sqoop和hive

大数据开发:sqoop和hiveHadoop生态系统包含了用于协助Hadoop的不同的子项目(工具)模块,如Sqoop, Pig 和 Hive。Sqoop: 它是用来在HDFS和RDBMS之间来回导入和导出数据。Hive: 它是用来开发SQL类型脚本用于做MapReduce操作的平台我们以一般的从关系型数据库读取数据,然后大数据平台做分析处理,然后将处理完后的数据回写到关系型数据库中这种步骤为例操作步骤1.用sqoop工具,将关系型数据库写入到hive的数据库表中2.用hiveQL语句,对导入

2020-05-26 22:36:21 878

原创 记一次防止SQL注入引起的生产问题

记一次防止SQL注入引起的生产问题最近在生产系统上遇到了一个问题.在前后端代码都没有修改的情况下,某个用@RequestBody ADTO接受请求参数的接口,突然报错了错误信息大概是说,入参xxxupdateXXX,在 ADTO中找不到对应的属性.ADTO中有属性xxxUpdateXXX,就是差了一个大写一个小写.但是抓包看前端的入参,确实是xxxupdateValue但是到了请求里面,不知道怎么变成小写的了.然后听另外一个同事说,她那边也有select从大写被替换成小写的问题.才反应过来,两

2020-05-26 20:32:09 156 1

原创 MyBatis的缓存

MyBatis一级缓存是sqlsession级别的缓存MyBatis 的一级缓存存在于 SqlSession 的生命周期中,在同一个 SqlSession 中查询时, MyBatis 会把执行的方法和参数通过算法生成缓存的键值,将键值和查询结果存入一个 Map对象中。如果同一个 SqlSession 中执行的方法和参数完全一致,那么通过算法会生成相同的键值,当 Map 缓存对象中己经存在该键值时,则会返回缓存中的对象。强制刷新缓存的方式<select id=” selectByid” f

2020-05-16 14:27:29 194

原创 OOM解决方案

OOM解决方案-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+HeapDumpOnOutOfMemoryError内存映像分析工具(例如eclipse memory analyzer)堆dump出来的堆转储快照进行分析,重点是确认内存中的对象是否是必要的.也就是要先分清楚到底是出现了内存泄漏(memory leak)还是内存溢出(memory overflow)注意项目名称不要有下划线,不然会报错说找不到主类.[GC (Allocation Failure) 7

2020-05-16 14:20:00 386

原创 java注解

注解什么是注解?注解是一种元标签.注解也就是一种标签@Retention()注解@Retention可以用来修饰注解,是注解的注解,称为元注解。Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。RetentionPolicy有3个值:CLASS RUNTIME SOURCE

2020-05-16 14:15:27 132

原创 springmvc-异步请求-返回DeferredResult

61、springmvc-异步请求-返回DeferredResult1.线程中创建DeferredResult<Object> deferredResult对象并返回.主线程推出2.当拿到deferredResult对象的线程调用了deferredResult.setResult(order);方法之后,response就可以拿到结果并返回3.假如超出等待时间,则直接提示失败. @ResponseBody @RequestMapping("/createOrder") publi

2020-05-16 14:11:41 644

原创 java用命令行的方式启动jar包

格式java -jar [jar包的路径] [--参数名称键值对]例如java -jar springcloud_eureka.jar --spring.profiles.active=peer1java -jar springcloud_eureka.jar --spring.profiles.active=peer2

2020-05-16 14:09:20 1426

原创 Servlet为什么要3.0(异步)

在Servlet 3.0之前,Servlet采用Thread-Per-Request的方式处理请求。即每一次Http请求都由某一个线程从头到尾负责处理。如果一个请求需要进行IO操作,比如访问数据库、调用第三方服务接口等,那么其所对应的线程将同步地等待IO操作完成, 而IO操作是非常慢的,所以此时的线程并不能及时地释放回线程池以供后续使用,在并发量越来越大的情况下,这将带来严重的性能问题。即便是像Spring、Struts这样的高层框架也脱离不了这样的桎梏,因为他们都是建立在Servlet之上的。为

2020-05-16 14:01:44 172 1

原创 SQL尽量合并成一个,减少查询次数

在某些业务场景中,需要先查询a数据,根据数据是否满足条件,再用a去查b,b去查c。这样就会有多次查询要执行。可以考虑大部分都是满足的场景中,直接联合查询,一次查出ABC数据,然后进行判断。...

2020-05-12 20:04:20 251

原创 使用fastjson的问题

1.如果你的key对应的value是null,那么jsonobject.tojsonstring的时候,这个key会被去掉。2.如果对象中很多的值相同,那么就会显示为$ref,避免Stack Overflow。要避免有开关。

2020-05-10 15:17:02 148

原创 布隆过滤器_不存在的一定不存在_存在的不一定存在

布隆过滤器_不存在的一定不存在_存在的不一定存在是用哈希的方式,加上字节数组的方式。判断对应位是否是0,1。来实现过滤。因为哈希冲突不可避免,所以过滤器判断存在的不一定存在。...

2020-04-29 13:50:41 2377

空空如也

空空如也

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

TA关注的人

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