
Java
sisi.li8
热爱技术,拥抱开源
展开
-
canal报错show master status‘ has an error!
记一次dbus-canal线上日志报错解决dbus表检查数据线,发现dbus数据线不通,数据线显示进程停止到canal去找日志,解压最后一个日志文件gzip -d 1.log.gz2021-01-10 23:58:32.964 [destination = evoicedc , address = /dbus-mysql:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destinat原创 2021-01-16 23:25:50 · 3489 阅读 · 0 评论 -
解析含有多个对象的并使用mybatis存数据库
解析含有多个对象的并使用mybatis存数据库{ "status": 0, "message": "ok", "payload": { "heartBeatLeader": [ { "host": "dbus-n1", "pid": "8413\n", "state": "ok" }, {原创 2021-01-16 23:08:49 · 568 阅读 · 0 评论 -
如何用Java构建json对象
如何用Java构建json对象在使用java构建json之前,首先需要先明确json的概念:https://blog.youkuaiyun.com/qq_35885488/article/details/80310062啥是JSONObject,啥是JSONArray。下面是两个例子:json{ "RequestHead":{ "BusiType":"LIS-WX000-02", "SaleChnl":"WX", "DataType":"03"原创 2021-01-16 22:57:06 · 6007 阅读 · 1 评论 -
Java自增流水号生成
redis自增流水号生成需求如下:单号生成规则: “4位年份”+“1位渠道”+“6位流水号”+“1位校验”其中6位渠道的生成和本篇文章的内容主角:redis有关6位流水号——从“000001”开始,到“999999”结束;看下面这个数据结构(本地搭建redis,用redis客户端做实验)127.0.0.1:6379> set visitors 0OK127.0.0.1:6379> incr visitors(integer) 1127.0.0.1:6379> incr原创 2021-01-16 22:46:15 · 5136 阅读 · 2 评论 -
Linux下JDK的安装
Linux下JDK的安装下载并解压在官网 下载所需版本的 JDK,这里我下载的版本为JDK 1.8 ,下载后进行解压:tar -zxvf jdk-8u144-linux-x64.tar.gz -C ~/app/设置环境变量vi ~/.bash_profileexport JAVA_HOME=/home/hadoop/app/jdk1.8.0_144export PATH=...原创 2019-11-20 10:37:39 · 230 阅读 · 0 评论 -
Kafka出现异常kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.解决
java客户端连接到kafka出现kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.下午自己在java客户端连接到kafka,然后就出现了这个错误。按照网上的说法,修改各种配置文件都未能解决。最后重启了Zookeeper和Kafka解决了思考与建议:因为这个是不能连接到Kafka的...原创 2019-11-18 16:29:17 · 2357 阅读 · 0 评论 -
最强PostMan使用教程
最近需要测试产品中的REST API,无意中发现了PostMan这个chrome插件,把玩了一下,发现postman秉承了一贯以来google工具强大,易用的特质。独乐乐不如众乐乐,特此共享出来给大伙。Postman介绍Postman是google开发的一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的的Chrome插件。其主要功能包括:模拟各种HTTP requests...原创 2018-07-20 20:11:35 · 15593 阅读 · 3 评论 -
Java序列化
对于一个存在Java虚拟机中的对象来说,其内部的状态只是保存在内存中。JVM退出之后,内存资源也就被释放,Java对象的内部状态也就丢失了。而在很多情况下,对象内部状态是需要被持久化的,将运行中的对象状态保存下来(最直接的方式就是保存到文件系统中),在需要的时候可以还原,即使是在Java虚拟机退出的情况下。对象序列化机制是Java内建的一种对象持久化方式,可以很容易实现在JVM中的活动对象与字节...原创 2018-12-04 18:37:40 · 132 阅读 · 0 评论 -
eclipse批量替换,修改变量名或单词(两种方法)
第一种(常用): ①如图:双击选中变量名id,右键选择Refactor中的Rename ②之后如下图所示,红箭头的带有方框的就是选中修改的变量名,此时修改提示框的内容,后面带方框的也跟着修改, 而蓝色箭头的不被选中的同名单词不会被修改,这也是和第二种方法的区别第二种: 按下ctrl+f, 弹出下面右边界面,输入要寻找的id,替换为ID,在Options下...转载 2018-06-24 15:53:04 · 39708 阅读 · 0 评论 -
linux系统在tomcat中指定jdk的版本
在tomcat中指定jdk的版本查看tomcat中的catalina.sh可以看到,意思是不应该改动本身的脚本,而是应该创建一个名为senten.sh的脚本在catalina_base/bin目录下增加如下脚本指定jdk版本echo "start set env"echo "CATALINA_BASE:$CATALINA_BASE"export JAVA_HOME='/paymen原创 2018-09-26 22:22:38 · 1450 阅读 · 0 评论 -
ArrayList/Vector 的底层分析
ArrayListArrayList 实现于 List、RandomAccess 接口。可以插入空数据,也支持随机访问。ArrayList相当于动态数据,其中最重要的两个属性分别是:elementData 数组,以及 size 大小。在调用 add() 方法的时候: public boolean add(E e) { ensureCapacityInternal(s...原创 2018-11-23 21:24:06 · 191 阅读 · 0 评论 -
HashSet
HashSetHashSet 是一个不允许存储重复元素的集合,它的实现比较简单,只要理解了 HashMap,HashSet 就水到渠成了。成员变量首先了解下 HashSet 的成员变量: private transient HashMap<E,Object> map; // Dummy value to associate with an Object in t...原创 2018-11-23 21:27:26 · 243 阅读 · 0 评论 -
LinkedHashMap 底层分析
LinkedHashMap 底层分析众所周知 HashMap 是一个无序的 Map,因为每次根据 key 的 hashcode 映射到 Entry 数组上,所以遍历出来的顺序并不是写入的顺序。因此 JDK 推出一个基于 HashMap 但具有顺序的 LinkedHashMap 来解决有排序需求的场景。它的底层是继承于 HashMap 实现的,由一个双向链表所构成。LinkedHashMap...转载 2018-11-23 21:28:15 · 367 阅读 · 0 评论 -
LinkedList 底层分析
LinkedList 底层分析如图所示 LinkedList 底层是基于双向链表实现的,也是实现了 List 接口,所以也拥有 List 的一些特点(JDK1.7/8 之后取消了循环,修改为双向链表)。新增方法 public boolean add(E e) { linkLast(e); return true; } /** ...原创 2018-11-23 21:28:47 · 198 阅读 · 0 评论 -
类装载器ClassLoader
类装载器ClassLoader类装载器工作机制类装载器就是寻找类的节码文件并构造出类在JVM内部表示对象的组件。在Java中,类装载器把一个类装入JVM中,要经过以下步骤:[1.]装载:查找和导入Class文件;[2.]链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的:[2.1]校验:检查载入Class文件数据的正确性;[2.2]准备:给类的静态变量分配存储空间;[2.3]解...原创 2018-12-04 18:46:59 · 236 阅读 · 0 评论 -
JVM 类加载机制与类加载器介绍
1.JVM 类加载机制JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。1.1.加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既可以从 ZIP 包中读取(比如从 jar 包和 war 包中读...原创 2019-07-06 08:56:21 · 213 阅读 · 0 评论 -
Base64字节数组转图片的工具类
问题引出:在某些情况下Rest API约定不允许通过流形式直接GET提供到客户端直接展示图片。如果是这样,那么就只能把后端生成的图片转成ByteArray返回给前台,让前台重新把它变成图片!这里提供两种解析方法第一种方法: data中包含了一个PNG图片验证码的ByteArray。这个信息可以放在Base64转图片的在线工具上。转换{“code”: “200”,“msg”: “操作成功”...原创 2018-10-24 17:21:33 · 1186 阅读 · 0 评论 -
Java内部类详解
说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正。 请尊重...转载 2018-07-04 21:33:15 · 150 阅读 · 0 评论 -
使用mockmvc进行单元测试
使用mockmvc进行单元测试0906:首先构建测试基类:@WebAppConfiguration表明该类会使用web应用程序的默认根目录来载入ApplicationContext, 默认的更目录是"src/main/webapp", 如果需要更改这个更目录可以修改该注释的value值。@RunWith(SpringJUnitClassRunner)Spring集成Jun...原创 2018-09-08 10:52:49 · 2789 阅读 · 0 评论 -
Java委派模式
委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。委托模式是一项基本技巧,许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承,它还使我们可以模拟mixin。简单的Java例子在这个例子里,类模拟打印机Printer拥有针式打印机RealPri...原创 2018-03-14 23:52:59 · 1552 阅读 · 0 评论