-
Annotation-03-metadata
元注解
适用于其他注释的注释称为元注释。在 java.lang.annotation 中定义了几个元注释类型。
@Retention
指定标记的注解如何存储:
属性
说明
RetentionPolicy.SOURCE
标记的注释只保留在源层中,编译器将忽略它。
...
2018-07-02 10:33:37 |
Java
-
Annotation-02-built in
Java 内置注解
注解
Annotation(注解)是JDK5.0及以后版本引入的。它的作用是修饰程序元素。
注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记。
程序可以利用java的反射机制来了解你的类及各种元素上有无何种标记,针对不同的标记,就去做相应的事件。
后续会对这些进行讲解,本文主要讲解 Java 内置注解。
@Override
指示一个方法声明要覆盖...
2018-07-02 09:36:14 |
Java
-
Annotation-01-annotation
Java 注解
注解,元数据的一种形式,提供了程序本身之外的数据。注释对注释的代码的操作没有直接影响。
注解有许多用途,其中包括:
编译器的信息—编译器可以使用注释来检测错误或抑制警告。
编译时和部署时处理——软件工具可以处理注释信息来生成代码、XML文件等等。
运行时处理——可以在运行时检查一些注释。
这节课,还可以使...
2018-07-02 09:07:11 |
Java
-
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