• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






zhenhong

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 22 下一页

2019年10月31日

3、HashMap
摘要: 一、HashMap基础 1.1 简介 Map:定义基本的增删除改查操作AbstractMap:模板方法,实现了一些基本方法 HashMap是使用数组+链表+红黑树的方式构成的,它与ConcurrentHashMap的主要区别就是一个是线程不安全,一个是线程安全,在代码上可能会有些差别,但是在计算容量 阅读全文
posted @ 2019-10-31 23:56 zhen_hong 阅读(7) 评论(0) 推荐(0)
 

2019年10月24日

1、ConcurrentHashMap
摘要: 一、ConcurrentHashMap ConcurrentHashMap是HashMap的线程安全版,下面为了描述方便将ConcurrentHashMap简称为hashmap 1.1 类图 Map:定义基本的增删除改查操作 ConcurrentMap:主要是定义了一些default的方法,比如co 阅读全文
posted @ 2019-10-24 00:08 zhen_hong 阅读(12) 评论(0) 推荐(0)
 

2019年10月12日

8、SpringMVC源码系列总结
摘要: 一、servlet初始化流程 -》 初始化servlet(org.springframework.web.servlet.HttpServletBean.init()) -》 读取配置的属性,通过BeanWrapperImpl的方式设置值 -》 创建spring容器,调用refresh方法 -》 触 阅读全文
posted @ 2019-10-12 23:15 zhen_hong 阅读(8) 评论(0) 推荐(0)
 

2019年10月6日

20、spring源码系列总结
摘要: 一、容器创建流程 1.1 创建与初始化 如果在web.xml中指定了contextClass上下文参数,那么以contextClass为准,创建指定的自定义容器,如果没有指定那么创建默认的XmlWebApplicationContext容器 -》 如果在web.xml中配置了locatorFacto 阅读全文
posted @ 2019-10-06 23:55 zhen_hong 阅读(7) 评论(0) 推荐(0)
 

2019年8月8日

4、启动
摘要: 从上一节中我们分析了组件的初始化,除了容器进行了线程池的创建之后,其他的组件的初始化基本上是在注册mbean服务。 Bootstrap daemon.setAwait(true); daemon.load(args); daemon.start(); 我们分析了load,那么解析来就开始start 阅读全文
posted @ 2019-08-08 22:41 zhen_hong 阅读(7) 评论(0) 推荐(0)
 

2019年8月7日

2、使用asm字节码指令实现动态代理
摘要: 本博文来自我在博客园发表的《使用ASM实现动态代理》 github地址:https://github.com/yomea/ASM gitee地址:https://gitee.com/yomea/ASM 一、实现动态代理,首先得考虑有应该定义哪些类,根据JDK的动态代理思想,那么它就应该有一个生成代理 阅读全文
posted @ 2019-08-07 21:41 zhen_hong 阅读(10) 评论(0) 推荐(0)
 

2019年8月4日

11、ListableBeanFactory的getBeanNamesForType
摘要: 这个方法我们不止一次的看到,比如在查找BeanFactoryProcessor的时候就见到过,现在查找BeanPostprocessor的时候又见到了,现在我们将它单独拎出来分析下 //方法签名 //第一个参数type表示要查找的bean的类型 //includeNonSingletons 是否考虑 阅读全文
posted @ 2019-08-04 16:55 zhen_hong 阅读(32) 评论(0) 推荐(0)
 

2019年2月16日

bean的创建(五)第五部分 属性填充
摘要: AbstractAutowireCapableBeanFactory.populateBean protected void populateBean(String beanName, RootBeanDefinition mbd, BeanWrapper bw) { //获取属性值 PropertyValues pvs = mbd.getPropertyValues(); ... 阅读全文
posted @ 2019-02-16 23:44 zhen_hong 阅读(752) 评论(0) 推荐(0)
 
bean的创建(五)第四部分 bean构造器的查找
摘要: 前面分析了bean的静态工厂查找 bean的构造器查找过程和bean的静态工厂查找类似 protected BeanWrapper createBeanInstance(String beanName, RootBeanDefinition mbd, Object[] args) { // Make sure bean class is actually resolved at... 阅读全文
posted @ 2019-02-16 23:40 zhen_hong 阅读(506) 评论(0) 推荐(0)
 
bean的创建(五)第三部分 bean工厂方法参数的解析
摘要: 准备好一系列参数之后,开始参数类型的转换,方法参数的对应。 ConstructorResolver.createArgumentArray private ArgumentsHolder createArgumentArray( String beanName, RootBeanDefinition mbd, ConstructorArgumentValues reso... 阅读全文
posted @ 2019-02-16 23:39 zhen_hong 阅读(581) 评论(0) 推荐(0)
 
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 22 下一页