
java
文章平均质量分 85
往前的
这个作者很懒,什么都没留下…
展开
-
jackson如何根据另个属性来确定实例化具体实现类(基于spring-boot)
对于如果属性在抽象类中这个利用@JsonTypeInfo 和 @JsonSubTypes 很容易实现,如果这个属性与将要反序列化在同一层级,那个应该怎么做,将下面举个例子,基于spring-boot环境public interface Item{ }public class Person{ private Integer age; private Item item;}// age<7public ChildItem implement Item { priv.原创 2021-07-08 21:20:19 · 922 阅读 · 4 评论 -
第29篇 rabbitmq BitSet源码分析
上节IntAllocator是对于BitSet的应用,我们来具体学习BitSet源码默认情况下所有bit初始化都是false不能设置null值不是线程安全的,需要外层做同步BitSet实现Cloneable 和 Serializable接口(说明它具有克隆和序列化功能)BitSet被打包成"字"数组,目前一个字是一个long, 由64位组成,需要6个地址位,也就移动1<<6==64二进制表示0或1,long是8byte, 64bit,也就是一个long.原创 2021-07-08 20:39:23 · 192 阅读 · 1 评论 -
Jackson注解入门示例
jackson目的是什么呢? 它是解决json和bean之间对应关系,json就是字符和java的bean如何进行关联,json字符和bean之间会有哪些问题呢?文章目录1、预先思考1.1、json和bean会有什么问题呢?2、具体jackson注解2.1、@JsonAnySetter2.2、@JsonGetter /@JsonSetter2.3、@JsonPropertyOrder2.4、@JsonRawValue2.5、@JsonValue2.6、@JsonRootName2.7、@JsonSeri.原创 2021-06-25 23:37:24 · 315 阅读 · 0 评论 -
JMH(java代码的微基准测试)入门和汇总
JMH 即 Java Microbenchmark Harness,这是专门用于进行代码的微基准测试的一套工具 API。JMH 由 OpenJDK/Oracle 里面那群开发了 Java 编译器的大牛们所开发 。何谓 Micro Benchmark 呢? 简单地说就是在 method 层面上的 benchmark,精度可以精确到 微秒级。为什么需要 JMH死码消除所谓死码,是指注释的代码,不可达的代码块,可达但不被使用的代码等等 。常量折叠与常量传播常量折叠 (Constant foldin.原创 2021-06-11 22:48:52 · 1352 阅读 · 0 评论 -
第11篇 rabbitmq使用LinkedBlockingQueue源码解析(下篇)
上篇介绍LinkedBlockingQueue的依赖接口和抽象情况,这节看一下LinkedBlockingQueue本身文章目录1、内部类1.1、Node 简单定义一下链表结构,只有后驱节点1.2、Itr implements Iterator 迭代器1.2.1、构造方法1.2.2、成员变量1.2.3、方法1.2.4、图示1.3、LBQSpliterator implements Spliterator1.3.1、成员变量1.3.2、构造函数1.3.3、Spliterator接口2、成员变量3、方.原创 2021-06-10 22:11:53 · 416 阅读 · 0 评论 -
第10篇 rabbitmq LinkedBlockingQueue(上篇)
这节主要分析和学习LinkedBlockingQueue队列特性,具体类图如下,我们理解它如何实现阻塞, 主要研究LinkedBlockingQueue的父类依赖抽象类和接口解析1、分析上图队列是集合的一种BlockingQueue接口却不继承AbstractQueue 也说明它不同于一般的队列,也就在普通队列增加新特性一样(类似马添加翅膀的属性,它就具有飞功能)它还实现Serializable接口说明具有在中网络传递该对象功能,支持序列化和反序列化Iterable接口 需要实现 迭代器功.原创 2021-06-09 22:19:50 · 576 阅读 · 4 评论 -
Optional你用对了吗?(26条件建议)
Optional设计者布赖恩·戈茨说过Optional旨在为库方法返回类型提供一种有限的机制,其中需要一种明确的方式来表示"无结果",而对这种情况使用null极有可能导致错误。那么,如何以预期的方式使用Optional呢?,通常,我们通过学习如何不使用它到学习使用它们过程,通过26的示例来优雅而轻松解决Optional的使用情况。1、不要赋值Optional以null值避免public Optional<Cart> fetchCart() { Optional<.翻译 2021-06-07 21:03:14 · 401 阅读 · 0 评论 -
Mybatis源码--annotations包
目录1、annotations描述2、示例1、@Arg 和 @ConstructorArgs2、@InsertProvider和@SelectKey(调用存储过程返回nameId)3、@Many 子查询,fetchType是否为延迟加载(EAGER立即加载)1、annotations描述这个包主要内容用于mapper接口时采用注解方式写sql需要注解类,其实就是xml写sql替换方式Arg...原创 2019-07-23 22:55:31 · 435 阅读 · 0 评论 -
ByteBuffer.clear()(没有清除内容)
概述:直接看clear()官方介绍Clears this buffer. The position is set to zero, the limit is set to the capacity, and the mark is discarded. Invoke this method before using a sequence of channel-read or put opera...原创 2018-03-23 12:12:36 · 9433 阅读 · 2 评论 -
System.arraycopy方法详解
概述:System.arraycopy是一个原生的方法,用于数组间的复制,当然延伸功能完成数组替换。1、翻译Java源码的注释 public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); @param原创 2017-08-17 11:31:21 · 5019 阅读 · 0 评论