java
文章平均质量分 65
huibinwei
最近本人迷恋人工智能,好久没有更新过了
展开
-
使用TTL实现ThreadLocal的copy——兼容二方三方包已有的ThreadLocal的场景
说明首先TTL(transmittable-thread-local)是阿里开源用于解决线程池ThreadLocal的框架,详细介绍可以到官网查看。github开源地址我写这篇文章主要是为了介绍一个冷门的使用场景————如何兼容二方三方包已有的ThreadLocal的场景。案例:我有一个二方包,用户管理用户信息代码如下,如果单线程模式,完全没有任何问题,我将用户封装到ThreadLocal对象中,需要时通过get方法进行获取。public class UserContextUtil { p原创 2022-01-25 15:26:06 · 1380 阅读 · 4 评论 -
BlockingQueue队列有哪些
1、ArrayBlockingQueueArrayBlockingQueue是一个阻塞式的队列,继承自AbstractBlockingQueue,间接的实现了Queue接口和Collection接口。底层以数组的形式保存数据(实际上可看作一个循环数组)。常用的操作包括 add,offer,put,remove,poll,take,peek。2、DelayQueue 延时队列DelayQueue是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从原创 2021-02-05 22:33:37 · 476 阅读 · 0 评论 -
微信三方平台component_verify_ticket数据的解密
微信三方平台component_verify_ticket信息的解析首先,接收component_verify_ticket信息然后就是最坑的,解析这个消息错误实例正确方式合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX...原创 2019-12-23 16:16:32 · 2595 阅读 · 8 评论 -
MQTT断线重连
MQTT客户端:org.eclipse.paho.client.mqttv3 MQTT服务器:EMQ MQTT服务器官网:http://emqtt.com/ 如果第一次看MQTT,可以参考:http://blog.csdn.net/whb3299065/article/details/79088928 在之前的文章中我们简单介绍了MQTT的收发消息,并没有实现重连机制,我在实现重连时,发现...原创 2018-02-08 15:57:19 · 44074 阅读 · 20 评论 -
随手写的一个jackson序列化java对象的类,主要区分了List和Map
引入jar<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>j...原创 2019-03-12 10:18:13 · 449 阅读 · 0 评论 -
@JsonSerialize被弃用
@JsonSerialize弃用spring boot中,返回json默认是包含空串的,如果我们不想让json返回null值,可以在bean上添加一些注解。@JsonInclude(JsonInclude.Include.NON_EMPTY)后面的枚举值可以为 ALWAYS,NON_NULL,//属性为NULL 不序列化,就是为null的字段不参加序列化 NON_ABSEN...原创 2019-06-21 11:16:26 · 3680 阅读 · 0 评论 -
Java进行ssh登录linux 后执行命令
Java进行ssh登录linux 后执行命令最近,由于维护的服务器一直重启(非本地原因),每次部署都比较麻烦。于是抽空研究了一下如果通过java进行ssh登录,并发送一些命令的方案。这里我写一个简单例子,登录,然后获取服务器时间,并打印结果收先,这次我们采用JSch来进行实现,先发核心jar(其他jar放在最后):<dependency> <groupId>co...原创 2019-08-15 15:49:15 · 2750 阅读 · 3 评论 -
贴出一个httpUtils是基于HttpClient连接池的封装
import org.apache.commons.collections4.CollectionUtils;import org.apache.commons.collections4.MapUtils;import org.apache.commons.lang3.StringUtils;import org.apache.http.HttpResponse;import org.ap...原创 2019-09-03 18:59:13 · 748 阅读 · 0 评论 -
AES对字符串加密解密
AES算法,不管是性能还是安全性都比较高,今天项目里用得到,就顺手写了一个Utils,感觉还不错,就贴出来,方便以后使用import org.testng.annotations.Test;import javax.crypto.*;import javax.crypto.spec.SecretKeySpec;import java.security.InvalidKeyException...原创 2019-09-20 17:22:10 · 1664 阅读 · 0 评论 -
HttpClient 上传文件(案例:微信上传资源接口)
之前,写了一个HTTPClient的工具类,用着感觉还不错,但是用着用着发现功能不够健全,于是今天我又来做一些补充(其实就是调用微信接口的时候发现上传文件压根没写)。最后我会上传一个文件首先上传文件需要额外引入一个jar包,其他jar可以参考上一篇 <dependency> <groupId>org.apache.httpcomp...原创 2019-09-25 17:33:36 · 746 阅读 · 0 评论 -
RabbitMQ收发消息——原生API
dependency> groupId>com.rabbitmqgroupId> artifactId>amqp-clientartifactId> version>2.8.2version>dependency>首先是我们创建连接对象的函数//这里请手动填入,我是通过配置文件注入的protected ConnectionFactory getFactory() {原创 2018-01-29 16:47:56 · 1471 阅读 · 0 评论 -
java泛型
一、什么是泛型Jdk1.5版本后出现的新特性。用于解决安全问题,是一个安全机制 方法用声明 格式:通过在使用java提供的对象时,什么时候写泛型呢? 通常情况下在集合框架很常见,只要见到其实 中即可 好处: 1、将运行时期出现的问题,从运行时期转移到了编译时期,将运行时期的问题减少 2、避免了强制转换 集合定义:ArrayList 对象名称 = new ArrayL原创 2018-01-19 13:32:26 · 306 阅读 · 0 评论 -
java设计模式——装饰模式
当想要对已有的对象进行功能增强时, 可以定义一个类,将已有对象传入,基于已有的功能,并提供加强功能,那么自定义的类就称为装饰类。 装饰类通常会通过构造方法接收被装饰的对象,并提供更强的方法 并且可以通过多态提高复用性 例: `class Person { public void chifan() { System.out.println(“吃饭”);原创 2017-01-16 16:01:20 · 259 阅读 · 0 评论 -
java设计模式——单例设计模式
要想保证对象唯一: 1、为了避免其他程序过多建立该类对象,先禁止程序建立该对象 2、换为了让其程序可以访问到该类对象,只好在本类中,自定义一个对象。 3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 体现方法: 1、将构造函数私有化 2、在类中创建一个本类对象 3、提供一个方法可以获取到该对象 饿汉式class Single{ private Single()原创 2017-01-16 16:09:13 · 236 阅读 · 0 评论 -
java设计模式——简单工厂
好处: 每个功能都有自己的类,新增新的运算或移除某个运算时不需要改全部的代码 缺点:原理:通过客户选择来确定实例化哪个对象 例客户端:public class Text { public static void main(String[] args) { Operation operation= SelOperator.getIns('+'); ope原创 2017-01-16 16:22:47 · 225 阅读 · 0 评论 -
java设计模式——策略模式
定义:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。参与者: 1.Strategy 定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。 2.ConcreteStrategy 以Strategy接口实现某具体算法。 3.Context 用一原创 2017-01-16 16:27:02 · 231 阅读 · 0 评论 -
java设计模式——状态设计模式
对象的行为取决于它的状态,并且必须在运行时改变它的行为角色: 1.Context 定义客户感兴趣的接口。 维护一个ConcreteState子类的实例,这个实例定义当 2.State 定义一个接口以封装与Context的一个特定状态相关的行为。 3.ConcreteStatesubclasses 每一子类实现一个与Context的原创 2017-01-16 16:33:20 · 274 阅读 · 0 评论 -
关于java类和对象的新认识
1. 类:指同一类事务的抽象这些抽象体现在代码中可以是接口,抽象类,类,异常类,错误类等 a. 类与类的关系:在现实生活中,一类事务可以发展处另一类事务,如:• 我们已经定义了产品一系列最基本的功能,并为此做出了一个母版,其他产品,只需要在母版上去修改,我们称为基础• 在一个生产中拥有一个模型,我们所有的产品都要按照模型进行生成,那么我们就称为实现了模型• 在一个生成流程中,我们需原创 2017-12-29 15:14:43 · 152 阅读 · 0 评论 -
javolution.io.Struct序列化C语言数据结构
在网络传输时,我们接收到的数据都是10的形式,八个01(big)构成了一个byte字节,一个或多个byte又构成了不同的数据类型,接收到这些byte数组后,我们就需要对数组进行反序列化为java中的对象。而通过javolution.io.Struct就可以很容易的实现反序列化(序列化) 首先,我们要按照数据顺序定义结构体(java的class文件):该类型必须继承Struct,byte数组中,不原创 2018-01-22 16:18:42 · 3602 阅读 · 4 评论 -
MQTT协议初识——简单收发
第一部分:认识MQTT先来一段百度文库的介绍 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。 MQTT协议是为大量计算能力有限,且原创 2018-01-18 10:17:03 · 8508 阅读 · 0 评论 -
EMQ上下线消息订阅
很多时候我们的业务中需要监听设备是否上线,之前我们一直采用的两种方案,一种是设备客户端上线是自动发送一条消息;另一种是,找一个开源的服务器,通过源码监听。 最近发现EMQ的共同非常强大,会将系统信息封装成系统主题,所以我们只要订阅系统主题就可以接受到消息, 我订阅了:“$SYS/brokers/emq@127.0.0.1/clients/#”主题,其他论坛里说:“$SYS/brokers/em原创 2018-02-03 13:22:19 · 7250 阅读 · 1 评论 -
Properties(键值)对象
java.util.PropertiesProperties是hashtable的子类。也就是说他具备了map集合的特点,而且它里面存储的键值对都是字符串是集合中IO技术相结合的集合容器该对象特点:可以用于键值对相匹配形式的配置文件 可以直接从流中获取键值对; 在加载数据时需要数据有固定的格式:键=值#不加载:可以理解为注释原创 2016-09-23 21:58:18 · 2011 阅读 · 0 评论