- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 迭代器模式
迭代器模式迭代器模式提供了一种方法顺序访问集合内的所有元素,而不暴露其内部的表示。类图迭代器模式在Java的Collection类及其子类中被大量的使用到,所以以下就以Collection中的代码来举例。实现首先来看,迭代器模式是如何提供顺序遍历的方法。Iterator源码public interface Iterator<E> { boolean has...
2018-10-16 22:34:45 165
原创 ArrayList源码
ArrayList概述继承关系成员变量方法构造函数扩容的一系列方法ensureCapacityInternalcalculateCapacityensureExplicitCapacitygrow(int minCapacity)其他方法System.arraycopyadd(E e)add(int index, E e)clearindexOfgetremovefastRemoveensureC...
2018-09-23 23:32:33 210
原创 观察者模式
观察者模式观察者模式UML代码实现JDK提供的观察者接口ObserverObservable总结观察者模式观察者模式,定义了对象之间一对多的依赖,当一个对象的状态改变的时候,它的所有依赖者都会收到通知,并自动更新。观察者模式也叫做 发布-订阅模式。这个被依赖的对象也叫做主题(Subject),而这些依赖着主题的对象叫做观察者(Observer)。UML根据定义画出以下类图Subjec...
2018-09-19 23:48:03 152
原创 代理模式
代理模式静态代理实现动态代理实现jdk动态代理Cglib动态代理区别代理模式定义:为另一个对象提供一个替身来控制对这个对象的访问。用现实中的场景来举例,比如我要租一个房子,但是我没有门路可以直接找到房东,所以我找了一个中介来帮我租个房子。但是中介也不能白干活啊,所以在租房子后,他就需要向我收取中介费。在这个例子中,中介就是代理,房东是我们真实需要的...
2018-09-12 16:56:21 165
原创 JVM内存分布
概述Java虚拟机(Java Virtual Machine)是Java语言write once,run anywhere的基础之一。主要的功能是通过Class Loader来加载Java程序,以及自动管理内存,大部分情况下程序员不需要关心何时释放内存,回收垃圾等操作。 根据JVM规范,Java虚拟机的内存分布主要有以下五大区域。(不同的虚拟机在这个规范的基础上的实现不同,比如Hot Spo...
2018-09-06 16:16:59 3025
原创 工厂模式
工厂模式工厂模式概述简单工厂模式工厂模式抽象工厂模式概述在平时编码过程中,当需要一个新对象的时候,我们第一反应就是直接new一个对象出来。以下用买车来举个例子。Car porsche= new Porsche();Car ferrari = new Ferrai();...那么,如果一个完整的购车流程就会变成以下这样:public C...
2018-09-04 22:14:06 330
原创 HashMap源码分析
关于HashMap很多人都或多或少有些了解,因为这次跳槽面试的公司都有问到其中的一些原理,所以重新阅读一遍原理,并记录下来,主要从HashMap的各个成员变量和方法展开。目录概述底层数据结构Node源码成员变量介绍方法介绍(核心方法)hashpublic V put(K key,V value)V get(Object key)resize概述Has...
2018-09-01 11:20:33 459
原创 单例模式
单例模式在Spring的设计中,使用了很多设计模式,其中,我们最熟悉的应该就是单例模式了。单例模式是指一个类只有一个实例,Spring容器中,所有bean默认都是单例的。比如我们最常写的controller,无论你创建多少个实例,它的方法以及整个执行链都是一样的。 使用单例模式的优点就是可以节省内存空间,减少GC的消耗。以下给出几种单例模式的实现方法 最简单的实现: 这种实现方...
2018-08-31 08:57:17 247
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人