自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

link88889的博客

越努力越幸运

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

原创 java打印内存地址

<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.16</version></dependency>

2022-01-19 08:43:39 622

原创 java绑定具体核心

<dependency> <groupId>net.openhft</groupId> <artifactId>affinity</artifactId> <version>3.2.3</version> </dependency> public static void main(String[] args) {

2021-11-16 14:34:18 351 1

原创 枚举策略模式

枚举策略模式

2021-11-12 08:57:00 303

原创 缓存同步map

Map<Object, Object> map = Collections.synchronizedMap(new WeakHashMap<>(16));

2021-11-08 17:57:50 95

原创 关于一次JVM测试

byte[] array1 = new byte[2 * 1024 * 1024]; array1 = new byte[2 * 1024 * 1024]; array1 = new byte[2 * 1024 * 1024]; array1 = null; byte[] array2 = new byte[128 * 1024]; //第一次GC 存活1m 移动到老年区 byte[] array3 =...

2021-11-02 17:55:37 50

原创 属性适配器

核心方法public class Adapter { public T filter(String strJson, Map<String, String> link, Class<T> clazz) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException { return filter(JSON.pars

2021-08-30 11:15:54 55

原创 docker 部署mongodb 创建数据库并指定用户

docker run -d -p 27017:27017 --name mongo -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=673185413 mongodocker exec -it mongo mongo admindb.auth('admin', '123456')use datadb.createUser( { user: "user01", pwd: "123456", roles: ["re

2021-07-08 10:45:16 867

原创 redis集群

predixy

2021-06-07 21:23:37 66

原创 docker 部署mongdb挂载

docker run -itd --name mongodb --restart=always --privileged -p 27016:27017 -v /usr/local/mongo/data:/data/db -v /usr/local/mongo/conf:/data/configdb -v /usr/local/mongo/logs:/data/log/ mongo -f /data/configdb/mongod.conf --bind_ip_all

2021-05-21 08:33:24 145

原创 SpringBoot拦截XSS攻击

<!--XSS 安全过滤--> <dependency> <groupId>net.dreamlu</groupId> <artifactId>mica-core</artifactId> <version>2.0.9-GA</version> </dependency> <dependency> <groupId>net.dreamlu&l

2021-03-16 17:20:34 185

原创 java stream 去重求和

/**stream typeId去重,count求和**/ armaGroupDTOS=armaGroupDTOS.stream() .collect(Collectors.toMap(ArmaGroupDTO::getTypeId, a -> a, (o1,o2)-> { o1.setCount(o1.getCount() + o2.getCount()); .

2021-03-09 18:12:37 539

原创 Array 如何做到线程安全

1. new Vector();2. Collections.synchronizedList();3. ConyOnWriteArrayList();

2021-02-23 20:34:28 300

原创 canal

可以同步数据库和reids的数据,类似主从

2020-12-21 20:26:05 76

原创 JMeter端口占用

监控java项目 jvisualvm

2020-12-20 19:19:36 353

原创 Elastcseaarch

Elasticsearch的工作原理是什么原始数据会从多个来源 (包括日志、系统指标和网络应用程序)输入到Elasticsearch中,数据采集指在Elasticsearch中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在Elasticsearch中索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在Kibana中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对Elastic Stack进行管理。Elasticsearch索引是什么Elas

2020-12-20 19:18:53 269 1

原创 nginx转发给网关

nginx转发给网关的时候会丢失很多信息,包括host信息解决办法在nginx的配置文件配置proxy_set_header Host $host;proxy_pass http://转发的ip地址还有一点需要注意网关转到具体的域名 需要配置在网关的最后...

2020-12-20 18:56:54 1316

原创 liunx显示行号

set number

2020-12-20 18:12:56 81

原创 wait和notify使用场景

1.wait和notify方法必须要在同步块或者方法里面且成对出现使用2.先wait后notify才ok传统的synchronized和Lock实现等待唤醒通知的约束线程先要获得并持有锁,必须在锁块(synchronized或Lock)中必须要先等待后唤醒,线程才能够被唤醒LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport是一个线程阻塞工具类,所有的方法都是静态方法,可以让线程在任意位置阻塞,阻塞之后也有对应的唤醒方法,归根结底,LockSupport调用U

2020-12-20 10:27:42 764

原创 docker 开机自启容器

sudo dockr update mysql --restart=always

2020-12-20 10:27:14 64

原创 阿里开源DataX

DataX是 阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(Mysql,Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。三大功能Reader:数据采集模块,负责采集数据源的数据,将数据发送给FrameworkWriter:数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。Framework:用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问

2020-12-20 10:26:51 331

原创 Redis实现分布式锁

可靠的分布式锁,要具备以下几个特性1.互斥性。在任意时刻,只有一个客户端能持有锁2.不会发生死锁,即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。3.具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。4.解铃还须系铃人。加速和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。5.锁不能自己失效。正常执行程序过程中,锁不能因为某些原因失效。加锁流程首先去看redis是否包含这个key,如果有再看下value是否匹配,如果有,执行hin

2020-12-20 10:25:54 64 1

原创 布隆过滤器

使用场景redis缓存击穿,可以使用布隆设置一个白名单或黑名单过滤非法请求优点1.因为存储的是二进制数据,所以占用空间很小2.是利用哈希值来计算的,所以查询和插入的速度很快。时间的复杂度是O(n) n是代表你使用多少次hash算法来计算布隆过滤器可以用来过滤一些非法请求参数缺点误判默认布隆过滤器其实是一个二进制的数组,保存0 1 数据,数据用hash算法来保存对应数据的位置,如果存在就返回1,不存在就返回0, 但这里会有误判的概率,因为不同数据的哈希值可能是一样的,布隆过滤器很难进行删除操

2020-12-19 22:35:57 96 1

原创 Zookeeper实现分布式锁原理

ZK总共有四种节点类型1.临时节点2.临时有序节点3.持久节点4.持久有序节点ZK节点是唯一的,多线程创建节点,只有一个能创建成功zk实现分布式锁的原理是根据临时节点有序节点来实现的,多线程同时创建节点,创建的节点是相同的,有序排序,最小的节点拿到锁,其他节点使用事件监听Watch来监听比它小的节点序号,例如 A、B、C线程同时去创建zk接口 A创建的节点是1,B创建的节点是2,C创建的节点是3,那么B回去监听A,C会去监听B,A线程执行完,临时节点会自己释放掉,B线程会看自己的节点文件是不

2020-12-19 22:19:38 417 1

原创 Seata总结

Seata由四部分组成:XID:全局唯一 的事务IDTC:事务协调器,维护全局事务的运行状态,负责协调 并驱动全局事务 的提交或回滚;TM:控制全局事务的边界,负责开启一个全局事务,并 最终发起全局提交或全局回滚的决议;RM:控制分支事务,负责分支注册,状态汇报,并 接收事务协调器的指令,驱动分支(本地)事务的提交和回滚;具体处理流程1.TM向TC申请一个全局事务,全局事务创建成功并生产一个全局唯一的XID;2.XID在微服务调用链路的上下文中传播 ;3.RM向TC注册分支事务,将其纳入XI

2020-12-06 15:28:39 221 1

转载 java 对象拷贝相同属性到另一个对象

BeanUtils.copyProperties(对象1,要赋值的对象);

2020-11-28 16:54:43 2095

转载 java8线程安全自增

LongAdder优于AtomicLongpublic class TestAtomicLong { private static AtomicLong ai = new AtomicLong(0); public static void main(String[] args) throws InterruptedException { MyThread mt = new MyThread(); Long time = System.currentT

2020-11-25 12:19:54 914

原创 java 多个字段排序

class EmpComparator implements Comparator<AddrCode> { @Override public int compare(AddrCode o1, AddrCode o2) { int cr = 0; //按统计数降序 int a = o2.getCount() - o1.getCount(); if (a != 0) {

2020-11-06 09:13:59 159

原创 JAVA Map Key转驼峰

package com.zhending.util;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;/** * @author * @description * @className CommTool */public class CommTool { /** * 把map的key转换成驼峰命名 * @pa

2020-11-06 09:11:59 717

原创 异步注解

在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。@Async

2020-10-23 20:34:22 558

原创 JDK1.8+时间戳转化

String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));

2020-06-15 17:21:49 1160

转载 算法复杂度

什么是算法?算法是用于解决特定问题的一系列的执行步骤使用不同算法,解决同一个问题,效率可能相差非常大那我们如何去评判一个算法的好坏?如果单从执行效率上进行评估,可能会想到这么一种方案比较不同算法对同一组输入的执行处理时间这种方案也叫做:事后统计法上述方案有比较明显的缺点执行时间严重依赖硬件以及运行时各种不确定的环境因素必须编写相对应的测算代码测试数据的选择比较难保证公平性一般...

2019-07-14 11:58:45 150

原创 Arrayslist和LinkList性能对比

最近在看数据结构记录一下笔记1.数组与集合的区别在哪? 动态大小ArrayList 底层是由数组构建成,默认大小是10LinkList底层是由链表构建成,链表格式有单向链表、单向循环链表、双向链表、双向循环链表,默认采用的是双向循环链表ArrayList 和LinkList在性能对比添加元素:LinkList效率更高删除:LinkList综合来讲效率高获取和设置:Arra...

2019-06-28 20:34:23 674

原创 maven打包失败解决方案

mvn clean install -Pprod -Dmaven.test.skip=true

2019-05-07 11:19:43 1184

原创 如何使用Java循环解析json

/*** 解析json保存到list中* @param code 传入json数据解析* @return*/public static String analysisJson(String code) {List list = new ArrayList<>();//fastjson解析方法JSONObject json = JSONObject.parseObject...

2019-04-30 19:15:46 2828 1

转载 SpringBoot整合RabbitMQ

1.什么是RabbitMQRabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗RabbitMQ有三大模式第一步:在你的pom.xml导入依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.b...

2019-01-24 14:39:34 113

原创 Elasticsearch Docker环境下安装出现的问题

我用java程序连接远程的docker的时候报错 NoNodeAvailableException[None of the configured nodes are available:[{#transport#‐1}{exvgJLR‐RlCNMJy‐hzKtnA}{192.168.184.135}{192.168.184.135:9300}]]atorg.elasticsea...

2019-01-24 11:11:26 730

转载 elasticsearch与MySQL数据同步

什么是LogstashLogstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件。下载Logstash解压,进入bin目录logstash ‐e 'input { stdin { } } output { stdout {} }'stdin,表示输入流,指从键盘输入stdout,表示输出...

2019-01-24 10:54:31 459

转载 分布式搜索引擎ElasticSearch

ElasticSearch简介Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。...

2019-01-24 10:15:43 122

原创 springBoot整合MongoDB

我们要使用一个东西,首先要了解这个东西是用来干嘛的,有什么优点和缺点,首先我们来了解什么是MongoDBMongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。Mongo...

2019-01-24 09:48:18 110

原创 SpringBoot整合Redis和Spring Cache

第一步在你的pom.xml依赖 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;spring-boot-starter-data-redis&amp;lt;/artifactId&am

2019-01-24 09:20:15 160

空空如也

空空如也

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

TA关注的人

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