2018年1月26日
摘要: 之前只见过接口的匿名内部类。 阅读全文
posted @ 2018-01-26 18:04 偶尔发呆 阅读(92) 评论(0) 推荐(0)
摘要: ThreadLocal这个类,定义了方法但是没有数据。 1. 它的对象作为key在使用,而map放在Thread类中;2. 这个类里面封装了操作map的方法 Thread类 ThreadLocal类 java.lang.ThreadLocal.ThreadLocalMap ThreadLocalMa 阅读全文
posted @ 2018-01-26 15:08 偶尔发呆 阅读(115) 评论(0) 推荐(0)
  2018年1月25日
摘要: ProtocolFilterWrapper中buildInvokerChain方法把Filter链在一起,调用执行的时候,逐个执行filter,最后执行filter中的invoker。 上面代码中,last的视图: 我们这样看:匿名内部类 new Invoker<T> { ... }中, 封装了fi 阅读全文
posted @ 2018-01-25 17:08 偶尔发呆 阅读(527) 评论(0) 推荐(0)
摘要: java中的类加载器:bootstrap,ExtClassLoader,AppClassLoaderbootstrap 使用c++编写sun.misc.Launcher.ExtClassLoadersun.misc.Launcher.AppClassLoader 继承关系: ClassLoader 阅读全文
posted @ 2018-01-25 10:51 偶尔发呆 阅读(215) 评论(0) 推荐(0)
  2018年1月24日
摘要: javassist的作用是动态生成字节码。 dubbo中的JavassistCompiler和JavassistProxyFactory使用了javassist包生成class文件。 阅读全文
posted @ 2018-01-24 11:18 偶尔发呆 阅读(284) 评论(0) 推荐(0)
  2018年1月23日
摘要: HeaderExchangeClient 注释是DefaultMessageClient,类中定义了心跳定时器HeaderExchangeChannel 发送请求HeaderExchangeHandler provider中处理请求,consumer中处理响应 创建HeaderExchangeCli 阅读全文
posted @ 2018-01-23 16:35 偶尔发呆 阅读(2303) 评论(0) 推荐(0)
摘要: HeartBeatTask 类封装了心跳定时任务,需要了解的是 provider 和 consumer 都有可能发送心跳。 对于 consumer,是在 HeaderExchangeClient 类中启动心跳定时器,而 provider,则是在 HeaderExchangeServer 中启动心跳定 阅读全文
posted @ 2018-01-23 14:52 偶尔发呆 阅读(1556) 评论(0) 推荐(0)
  2018年1月22日
摘要: 先来一个InvocationHandler示例,InvocationHandler类的作用是:对原始对象的方法做一个拦截。 dubbo consumer的InvokerInvocationHandler实现了InvocationHandler接口,拦截的是MockClusterInvoker对象的方 阅读全文
posted @ 2018-01-22 16:21 偶尔发呆 阅读(768) 评论(0) 推荐(0)
  2018年1月17日
摘要: ReferenceConfig.init()方法中获取到了最终的代理对象,先观察一下代理对象的视图。 默认使用javassist生成动态类,可配置proxy为jdk,则使用jdk动态代理: jdk代理对象视图如下图: RegistryDirectory中有一个 urlInvokerMap。 示例: 阅读全文
posted @ 2018-01-17 16:12 偶尔发呆 阅读(3008) 评论(0) 推荐(0)
摘要: 从代码示例观察Thread相关的性质: 1. wait和notify: 2. join 3. interrupt Thread.interrupt 方法只是置标志位 interrupt status 为 true 如果线程的 interrupt status 为 true,则调用 sleep 会置  阅读全文
posted @ 2018-01-17 10:06 偶尔发呆 阅读(235) 评论(0) 推荐(0)