Java基础-泛型

泛型是参数化类型,也就是类型成为了变量。泛型只在编译期有效,运行期实际上泛型是不存在的,这称为类型擦除。本文给出了实战中使用泛型Class对象和读取泛型真实类型的例子代码。

阅读全文

Java基础-动态代理

本文从静态代理到动态代理,由浅入深逐步分析引入动态代理的目的以及JDK动态代理的原理。本文详细分析了Proxy.newProxyInstance()方法实现原理,并对源码进行解析。

阅读全文

Java基础-注解

使用@interface定义注解,最常用的元注解是@Target和@Retention。Class、Method和Field类都提供了getAnnotation()方法返回注解信息。在Spring中可以调用容器类的getBeansWithAnnotation()方法得到声明了注解的Bean对象,或者实现BeanPostProcessor接口在Bean对象创建完成时进行解析和处理。

阅读全文

Java基础-反射

反射是Java语言的一种特性,通过反射机制,应用程序可以在运行期动态加载类信息。常用的类有Class、Method、Filed、Constructor和Proxy,常用的方法有newInstance()和invoke()。

阅读全文

Spring-AOP

面向切面编程是Spring除了IoC之外的又一个重要特性,本文介绍在Spring中配置和使用切面编程的方法,包括XML文件配置和注解配置,以及AspectJ的一些基本原理。

阅读全文

Spring-IoC

IoC是Spring最重要的组织部分,面向接口编程是IoC的基础,本文介绍IoC的基本概念以及如何使用XML文件、注解和Java代码配置Bean对象。

阅读全文

SpringBoot热部署

TODO

阅读全文

并行包源码分析

Reentrantlock类源码和实现原理分析。

阅读全文

Java并行包

Java从1.5开始提供了并发工具包java.util.concurrent,极大简化了多线程编程的难度。本文将介绍常见的ConcurrentHashMap、BlockingQueue、AtomicInteger、ReentrantLock、CountDownLatch、Semaphore等常见类的用法。

阅读全文

SpringBoot整合RocketMQ

虽然RocketMQ已经在2018年提供官方starter实现了和Spring Boot集成,但目前提供的功能还太简单,距离实际应用还有差距。这里我给出自己的开源实现waterloo-starter-rocketmq。

阅读全文