Disruptor-02-Get start
Get start
maven 导入
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.4.2</version>
</dependency>
...
2018-07-02 06:30:21 |
Concurrent
Disruptor-01-Introduction
Disruptor
Disruptor 是一个高性能的线程间消息传递库。
简介
要理解 Disruptor 是什么,最好的办法就是把它与人们理解得很透彻、目的很相似的东西进行比较。
在 Disruptor 的情况下,这将是Java的阻塞队列(BlockingQueue)。
与队列一样,Disruptor 的目的是在同一进程的线程之间移动数据(例如消息或事件)。
然而,Disruptor...
2018-07-02 05:50:44 |
Concurrent
Reflection-14-Java中如何获得A泛型中T的运行时类型及原理探究
简介
如果经常写工具类,很大概率会遇到一个比较实际的问题,就是需要在泛型表达式 A<T> 中获取T的运行时类型。
获取它需要一些技巧。但这个技巧很少被透彻的解释过为什么会生效。在接下来的文章里,我们会从Java的泛型(Generics)谈起,结合JLS(Java语言标准,Java Language Specification)和JVMS(Java虚拟机标准,Java Virt...
2018-07-01 09:07:11 |
Java
Reflection-13-javabean 内省 PropertyDescriptor
PropertyDescriptor
应用场景
大家都知道Java类中的私有的(private)属性是获取不到的(即使使用继承依然获取不到),那如果非要获取私有属性的值怎么办呢?
一般的做法是将该java类封装称为一个JavaBean,即封装该私有属性,提供一对共有的get,set方法来访问私有属性。一般情况下都会这样做!
但遇到特殊情况呢?比如,先现有一个需求:访问一个Java类的...
2018-07-01 09:07:11 |
Java
Reflection-12-getFields 顺序确定吗
getFields() 结果顺序固定吗?
背景
前端时间同事说遇到了 getFields() 顺序可能不一致的问题。
自己觉得这违反直觉。
因为觉得固定的 jdk 编译为 class 肯定是固定的,相同的 jvm 加载处理的策略肯定也是固定的。
那么反射获取的字段顺序肯定也是有序的。
结果查下来,却是超出自己意料之外的。
顺序固定吗
答案是不固定的。
如果想知道为什么,请继...
2018-07-01 09:07:11 |
Java
Reflection-11-lombok 和反射 toString
Reflection
getClass()
Here is the jdk1.7 doc.
public Class<?>[] getClasses()
The actual result type is Class<? extends |X|> where |X| is the erasure of the static type of the ex...
2018-07-01 09:07:11 |
Java
Reflection-10-modules 模块
Java反射——模块
这个Java模块反射教程将解释如何通过Java反射访问Java类所属的Java模块。
Java模块的概念通过Java平台模块系统添加到Java 9中。
Java模块是一组Java包。
因此,每个Java类属于一个包,并且该包属于一个模块。
Java模块由Java模块java.base中的Java反射类java.lang.Module表示。
通过此类,您可以与...
2018-07-01 09:07:11 |
Java
Reflection-09-dynamic classLoading & ReLoading 动态类加载和重新加载
Java反射——动态类加载和重新加载
可以在Java中运行时加载和重新加载类,尽管它并不像人们希望的那样简单。
本文将解释何时以及如何在Java中加载和重载类。
您可以争论Java的动态类加载功能是否真的是Java Reflection的一部分,或者是核心Java平台的一部分。
无论如何,这篇文章已被放入Java Reflection小道,因为它缺乏一个更好的地方。
ClassLo...
2018-07-01 09:07:11 |
Java