Listen's Blog

Move on

Java并发编程Tips

距离上一次更新博客已经过去了半年的时间了。现在回过头来看,这半年我学习了关于Java并发编程、JVM、设计模式、ES相关的内容。 一直没更新博客原因,一是因为自己懒,工作一忙就懒得再去花时间写博客,二是因为总觉得看的越多越不知道要写什么,总结下来还是深度不够, 以后除了广度外,还要注重技术积累的深度。这篇博客将会写一些前段时间学习的关于Java并发编程的Tips,之所以称为Tips, 意思是写的点可能会比较散,不是那么系统,但都是一些在Java并发编程中非常常用的东西。

Java8学习笔记

Java8是2014年发布的,至今也已经有快三年的时间了,之前虽然有学习过,但是学的比较零散,不成系统,而且也没有覆盖到Java8所有的特性。 由于公司已经使用了JDK1.8,所以工作中能使用Java8的机会还是很多的,因此决定来系统地学习一下Java8的新特性,这是对我最近学习Java8的一些记录, 以备在有些细节记不太清的时候可以查询。

我的2016年书单

临近年底,最近公司也开始年终的绩效考评了,想想2016年马上就要过去了,我也来个2016年的总结吧,列下我2016年看过的技术书, 每本书都会附上一些简单地书评和链接,并会有我个人主观的推荐指数,仅供参考,图就不贴了,有兴趣的同学可以点链接去看详情。

RabbitMQ指南(下)

在上一小节中我们改进了log系统,由于使用fanout类型的exchange只能进行全局的广播,因此我们使用direct类型的exchange做了代替, 使得我们可以选择性的接收消息。尽管使用fanout exchange改进了log系统,但它仍然有限制——不能基于多个条件做路由。

RabbitMQ指南(中)

上一篇文章中,介绍了使用RabbitMQ的Hello World例子, 以及如何创建一个work queue。在work queue的例子中每条消息都只会被传递到一个work queue中。 在这篇文章中我们将会学习另一种完全不同的传递消息的方式——每条消息将会被传递给所有的consumer,这种模式一般被称为“发布/订阅”

RabbitMQ指南(上)

RabbitMQ是一个消息中间件,在一些需要异步处理、发布/订阅等场景的时候,使用RabbitMQ可以完成我们的需求。 下面是我在学习RabbitMQ的过程中的一些记录,内容主要翻译自RabbitMQ官网的Tutorials, 再加上我的一些个人理解。我将会用三篇文章来从RabbitMQ的Hello World介绍起,到最后的通过RabbitMQ实现RPC调用, 相信看完这三篇文章大家应该会对RabbitMQ的基本概念和使用有一定的了解。

Spring AOP的实现原理

AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ;而动态代理则以Spring AOP为代表。本文会分别对AspectJ和Spring AOP的实现进行分析和介绍。

在Spring Boot框架中使用AOP

Spring Boot是基于Spring的用来开发Web应用的框架,功能与Spring MVC有点类似,但是Spring Boot的一大特点就是需要的配置非常少。Spring Boot推荐convention over configuration,也就是约定大于配置,因此Spring Boot会帮你做许多自动的配置,并且Spring Boot使用的是Java Config,几乎可以做到零XML文件配置。

JDK集合框架源码分析之ArrayList

作为一个Java开发者,JDK中的集合框架在我们平时的开发过程中使用频率是非常高的,比如说ArrayList,LinkedList,HashMap,HashSet等。阅读并分析这些API的JDK源码,可以帮助我们更好的理解它们底层的实现原理、适用和不适用的场景,以及在使用过程中需要注意些什么等等。