个人简介

Echo Blog


江湖无名 安心练剑
  • Disruptor-03-技术实现细节
    # JMM JMM 系列 Disruptor Disruptor 是 LMAX一种新型零售金融交易平台, 后台架构的核心组件之一,能够在无锁的情况下实现网络的Queue并发操作, 官方描述: 一个线程里每秒处理6百万订单。 在设计Disruptor时要避免写竞争,让数据更久的留在cache里, 避免JMV 过度GC。 Disruptor的核心是一个circular array,有个...
    2018-07-02 06:30:21 | Concurrent
  • 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