HashMap源码解析(jdk1.8) java.util.HashMap实现了java.util.Map接口,是存储key、value的一种数据结构。key 和value都可以为null,但是key不可以重复,若是重复则会覆盖。jdk1.7中,HashMap是数组+链表实现的;jdk1.8中,HashMap是数组+链表+红黑树实现的。下面主要介绍jdk1.8的Hash源码。
Spring MVC源码详解 Handler是controller中带请求路径的方法,最常用的是Controller中@RequestMapping注解标注的方法。如下面getProduct方法是Handler,loginPage方法不是Handler。@Slf4j@Autowiredlog.error("你妹的");model.addAttribute("name","登科");Spring中共四种Handler加RequestMapping注解的方法(常用的)
Spring中Bean的生命周期及源码详解 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#initializeBean(java.lang.String, java.lang.Object, org.springframework.beans.factory.support.RootBeanDefinition)是初始化bean的方法,里面主要包含初始化前、初始化、初始化后三个步骤。依赖注入就是属性填充。
Spring 三级缓存解决循环依赖源码分析 上面代码的链路已经了解,做下总结。1.1 首先获取ServiceA的实例AbstractBeanFactory.getBean(String name),name是"serviceA"1.2.1 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton,从三级缓存中获取serviceA实例,未获取到。如果取到了直接返回。
Redis学习笔记 synchronize、Lock接口等都是单机锁,分布式系统中的分布式锁应该独立于我们的业务服务,如用redis中间件实现。只能有一个线程访问互斥资源其他线程要么等待要么报错把数据分配到不同节点,如果某些节点数据异常,其他节点可以正常工作。类似于微服务的思想。
设计模式之责任链模式 责任链模式是将链中的每一个节点看成是一个对象,每个节点处理的请求不同,且内部自动维护一个下一个节点对象。当一个请求从链的首端发出时,会沿着链的路径依次传递给每一个节点对象,直至有对象处理这个请求。属于行为型设计模式。