- 博客(63)
- 资源 (15)
- 收藏
- 关注
原创 go sync.Map包装过的对象nil值的判断
maptest.Store(“a”, test)设置进去的是*interface{},但是取出来的其实是interface{}|被sync.Map包装过的nil 对象,是不能直接用if xxx == nil的方式来判断的。interface{},说明被包装了一层,相当于返回一个对象,对象内容是。interface{},所以不能直接和nil做比较。
2023-09-21 14:47:31 303
原创 java agent开发 日志打印
简介目前java 打印日志用的比较多的就是slf4j配合log4j/logback进行日志打印,但是呢agent是独立的jar包,使用slf4j就需要将包引入agent中,这样就可能和业务自身的slf4j log4j日志产生冲突而且在agent包使用slf4j-api包后,需要保证agent的classLoader和业务的classLoader保持一致,否则找不到需求agent的日志打印可以不依赖于业务日志,如果用户有日志包依赖,也可以使用业务日志agent的日志设置,用户可以在环境变量设置
2022-05-31 14:29:03 1499
原创 slf4j Failed to load class “org.slf4j.impl.StaticLoggerBinder“ 错误 源码解析
slf4j Failed to load class "org.slf4j.impl.StaticLoggerBinder" 错误
2022-05-31 11:25:08 4297
原创 克隆vmware-笔记
管理-克隆克隆后的vm要做修改才能使用vi /etc/hostname 修改主机名,重启生效vi /etc/sysconfig/network-scripts/ifcfg-ens33 ifcfg-ens33为网卡名称,修改IPADDR和HWADDR,IPADDR是ip地址,如果设置了固定ip需要修改下。HWADDR为mac地址,可以在虚拟机网络设置中找到,每个虚拟机都是不一样的,所以要改成本虚拟机的mac地址。参考地址:VMware 如何通过现有虚拟机克隆新的虚拟机 (图文)...
2021-09-12 18:55:19 74
原创 zookeeper Unreasonable length错误导致无法启动
现象: 启动报错Exception in thread "main" java.io.IOException: Unreasonable length = 1860320 at org.apache.jute.BinaryInputArchive.checkLength(BinaryInputArchive.java:127) at org.apache.jute.BinaryInputArchive.readBuffer(BinaryInputArchive.java:92) at com.sf.
2021-04-15 18:56:46 4341
原创 zookeeper Unreasonable length = 2246947 错误
现象:1 客户端连接不上,报连接超时2 重启zk,无法启动,报Unreasonable length = 2246947原因:1 zk的maxClientCnxns(单个客户端最大连接数)为600,正常是够用的。但是业务方部署在k8s上面,k8s的pod都是共用宿主机资源,对于zk来说都是一个ip客户端(宿主机)这就导致了ClientCnxns有可能大于6002 Unreasonable length = 2246947错误是因为zk的datalog事物日志记录中有某一条record大小超
2021-03-19 21:29:19 1842 1
原创 zookeeper client细节注意点记录
1 非顺序节点不能重复创建,顺序节点会给名称自动加序号 2 创建完成后,zk client 会启动一个守护线程(ClientCnxn.SendThread)去发送心跳,大约3秒一次,让服务端知道客户端还在。所以要保持连接需要代码里面有while无限循环 3 顺序节点名称规则:path+10位数字,例如:path:a 顺序节点path: a0000000000 a0000000001 a0000000002 4 一个客户端就是一个连接,不管创建多少临时节点。 5 删除顺序节点的时候 ..
2021-02-25 10:19:26 114
原创 java springboot 获取类路径方式集合
//spring boot获取类路径 获取当前类路径 String springbooPath1 = ClassUtils.getDefaultClassLoader().getResource("").getPath(); System.out.println("springbooPath1:"+springbooPath1); String springbooPath2 = ResourceUtils.getURL("classpath:").getPat
2020-08-13 11:41:33 5387 1
原创 spring boot 时间戳和LocalDateTime相互转换
@RequestBody的解决方案package com.pasc.medical.esb.pmp.config;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.core.JsonProcess...
2020-04-29 09:27:32 2446
原创 mybatis LocalDateTime转换
mybatis 3.45版本不做任何处理就可以支持,以上版本可能不能支持。package com.pasc.medical.esb.pmp.db.handle;import org.apache.ibatis.type.LocalDateTimeTypeHandler;import java.sql.ResultSet;import java.sql.SQLException;imp...
2020-04-29 09:26:37 2402
原创 十大排序算法原理和代码示例(java)
package com.pamc.sort;import java.util.Arrays;/** * @author WUZONGLIN441 * @created 2020-2-27 14:42 */public class SortTest { static int[] arrays = {3, 5, 15, 2, 26, 4, 19, 27, 36, 44, 38...
2020-04-06 19:10:29 237
原创 1.8 hashMap.resize()的 重新散列算法
源码resize()的代码片段do { next = e.next; //判断是在原数组空间还是扩容空间 if ((e.hash & oldCap) == 0) { if (loTail == null) loHead = e; else loTail.next = e; ...
2020-03-22 19:41:15 479 2
原创 hashMap中容量为什么是2的n次方(最简单)
我们都知道hashmap进行hash散列的算法是hash&(length-1),而hash的容量建议都是取2的n次方首先我们先说说这个算法,算法的目的是为了得到小于lenth的更加均匀的数,如果不均匀容易产生hash碰撞,换句话说只有全是1,进行按位与才是最均匀的,因为1与上任何数都等于任何数本身为什么是length-1不是length了16是10000 15是01111。16...
2020-03-22 19:24:52 1749 3
原创 volatile原理-指令重排序
内容参考自《深入理解java虚拟机》1 保证可见性。volatile修饰的变量每次使用时,都会刷新工作内存,从主内存取出最新值2 禁止指令重排序指令重排序为了使cpu多核处理器高效利用,会对输入的代码进行乱序执行。比如a=1,b=1,处理器执行时可能是b=1,a=1。处理完成后,cpu会对执行结果进行重组,保证和顺序执行一样。在多线程时就是不安全的了从硬件上来说指令重排序是指cp...
2020-03-09 23:20:45 1214
原创 spring boot 应用启动通用脚本
#!/bin/bash#参数# $1 appName jar包前缀 必须传 例如medical-hdp-pmp-app-application# $2 sourceDir 源目标地址,后缀不要/ # $3 targetDir 目标地址,不传和sourceDir一致,默认会带上应用名称做后缀。if [ -n "$1" ]then appName="$1";else echo "...
2020-03-01 23:02:47 205
原创 Exchanger一个小demo
java.util.concurrent*包中的Exchanger类可用于两个线程之间交换信息可简单地将Exchanger对象理解为一个包含两个格子的容器,通过exchanger方法可以向两个格子中填充信息。当两个格子中的均被填充时,该对象会自动将两个格子的信息交换,然后返回给线程,从而实现两个线程的信息交换。package com.indi.wzl.Lock;import java....
2020-02-11 17:36:38 149
原创 Exchanger 1.8源码分析
java.util.concurrent*包中的Exchanger类可用于两个线程之间交换信息可简单地将Exchanger对象理解为一个包含两个格子的容器,通过exchanger方法可以向两个格子中填充信息。当两个格子中的均被填充时,该对象会自动将两个格子的信息交换,然后返回给线程,从而实现两个线程的信息交换。源码:构造函数public Exchanger() { //Partic...
2020-02-11 17:33:32 179
原创 生产者消费者2-lock.condition awiat()/single
package com.indi.wzl.Lock;import java.util.ArrayList;import java.util.List;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.Re...
2020-02-06 12:45:53 132
原创 生产者消费者java示例-wait()/notify()
package com.indi.wzl.Lock;import java.util.ArrayList;import java.util.List;/** * 生产者-消费者模型, wait()/notify() * @Auther: zonglin_wu * @Date: 2020/2/5 16:54 * @Description: */public class Prod...
2020-02-06 12:45:10 108
原创 JVM常用命令- 深入JVM虚拟机
内存-XX:MaxPermSize 设置永久代最大空间-XX:PermSize 设置永久代大小-Xms 设置堆最小值-Xmx 设置堆最大值-Xmn 设置新生代大小-XX:NewSize 设置新生代大小-XX:MaxDirectMemorySize 设置直接内存大小,默认是和xmx一样-Xss 设置栈容量-Xoss 设置本地方法栈大小,实际上无效-XX:+/-UseTLAB 设置...
2020-01-28 17:33:37 162
Hadoop权威指南(第2版)
2017-05-12
poi_api帮助文档
2017-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人