摘要:
最近在研究java多线程,这篇文章主要是介绍一些线程之间的通信: 1:join 的方式,一个线程等待另一个线程执行完毕后在执行,可以控制线程执行的顺序; 场景:B线程要在A线程完成后才开始任务: 不做任何控制的情况下的线程代码如下: 这样打印出来的效果如下: 这样不能保证 B 线程在A 线程执行完之 阅读全文
摘要:
redis 除了作为缓存的功能外还可以用作消息中间件的功能,这片博客主要是介绍一下 redis 整合spring 实现消息的发布和订阅功能; 1:redis依赖,依赖两个包,redis 包, spring-redis 包用于整合redis,这里就不介绍了,具体可以参考上一篇博客 :redis 缓存 阅读全文
摘要:
本篇博客只介绍 redis 作为缓存的的一些使用,以及在项目中如何把redis和spring如何集成。 1:redis的maven依赖,redis 依赖 spring-redis 依赖; 2:redis 配置 整合spring的配置 接下来就可以在项目中使用redis了,这里使用的是spring的r 阅读全文
摘要:
在上篇博客中具体介绍了观察者设计模式在异步短信发送中的应用场景,但是,在具体的业务中短息发送使用那种方式则会令代码很不友好; 这里我使用的是回调函数的方式来实现这个业务需求: 在具体的业务场景中,我们不会特意去维护一个目标类,只是在目标类中会调用观察类的 update 方法时采用的是回调函数的方式进 阅读全文
摘要:
在项目中导入别人的maven项目时报错:Archive required for library “xxx” cannot be read or is not a valid zip file 网上查找了相应的解决方法,都是说eclipse自身的bug 或者是删除根目录的.classpath文件,找 阅读全文
摘要:
观察者设计模式:有一个目标类,观察者对象,当目标对象的状态有更改的时候,观察者时时会有相应的通知并做出相应的操作; 原理:就是在目标对象中耦合观察者的对象,并且在注册观察者对象的时候调用相应操作的方法; 两者之间的关系是单向关联的;目标类和观察类之间维护的是松耦合的关系; 在代码中有需要用到的接口和 阅读全文
摘要:
本篇博客主要是使用java代码模拟spring的IOC容器,实现依赖注入;当然只是模拟spring容器中简单的一点实现原理而已,加深一些自己对spring框架的底层原理的理解; 使用的技术:dom4j xml解析技术 工厂模式 java反射技术 关于工厂模式:主要作用是对象的的解耦,通过容器中的方法 阅读全文
摘要:
hashMap的底层实现是 数组+链表 的数据结构,数组是一个Entry<K,V>[] 的键值对对象数组,在数组的每个索引上存储的是包含Entry的节点对象,每个Entry对象是一个单链表结构,维护这下一个Entry节点的引用;有点绕,用个图来展示吧: Entry<K,V>[] 数组部分保存的是首个 阅读全文
摘要:
LinkedList是基于双向链表数据结构来存储数据的,以下是对LinkedList 的 属性,构造器 ,add(E e),remove(index),get(Index),set(inde,e)进行源码分析: 属性: 2构造器: 3:方法:add(E e) linkedLast(e) 源码 Nod 阅读全文
摘要:
项目中经常会用到LinkedList集合来存储数据,打算写一篇LinkedList的源码解析,而LinkedList是基于链表结构存储数据的,这篇博文将解析链表数据结构,包括单向链表和双向链表; 1:单向链表: 单向链表的链表对象维护了一个 first 引用,该引用指向节点链表中的第一个节点对象,每 阅读全文