单例模式的几种写法

纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和coding style的同时,还很容易扩展到其他问题。这里讲解几种笔者常用的写法,但切忌生搬硬套,编程最大的乐趣在于“know everything, control everything”。

阅读更多

如何决定使用HashMap还是TreeMap

TreeMap的key要求实现java.lang.Comparable接口,是有序的。而HashMap的key要实现hashCode(),分布是散列。往往需要根据两者的特点,结合不同的业务场景去选择使用哪种Map。

阅读更多

你能说说Spring框架中Bean的生命周期吗

  1. 实例化bean对象;
  2. 设置对象属性;
  3. 检查Aware相关接口并设置相关依赖;
  4. BeanPostProcessor前置处理;
  5. 检查是否是InitializingBean以决定是否调用afterPropertiesSet方法;
  6. 检查是否配置了自定义的init-method方法;
  7. BeanPostProcessor后置处理;
  8. 注册必要的Destruction相关回调接口;
  9. 使用中;
  10. 是否实现了DisposableBean接口;
  11. 检查是否配置了自定义的destory方法
阅读更多

Spring、SpringMVC、SpringBoot、SpringCloud有什么区别和联系

Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。主要针对的是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。Spring配置复杂,繁琐,所以推出了Spring boot,约定优于配置,简化了spring的配置流程。Spring Cloud构建于Spring Boot之上,是一个关注全局的服务治理框架。

阅读更多