摘要:
策略模式 定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。(虽然能理解意思,但真心记不住= =) 策略模式其实不难,顾名思义就是更改策略(策略接口下的子类)。首先是需要一个策略接口:Strategy,可以有n个子类实现此接口;其次是拥有此接口对象(注意是接口对象,而不是任意的子类)的客户端,那么客户端可以在运行时根据需要选择策略(子类)。 这样做的好处: 1. 维护方便:若策略经常改变,则更换策略便是;若出现新策略,那么实现一个继承策略接口的子类便可。其实这都可以归结为针对接口编程带来的好处。 2. 强大的组合:想象一下,若有n个策略... 阅读全文
摘要:
内存管理: 内存分配和内存回收,都由JVM自动完成。可达、可恢复、不可达: 1. 以线程为起点(单线程则为Main线程),能够访问到的对象称为可达。 2. 当对象没有任何变量引用时,此时,对象处于可恢复状态;GC在回收该对象之前,会调用该对象finalize()方法(默认什么都不做),这个方法中,若此对象被重新引用,对象又处于可达状态;反之,则进入不可达状态,被GC回收。强引用:最常用的引用方式,处于可达状态时,绝不会被回收。软引用:SoftReference类,处于可达状态时,当内存不足,会被GC回收。弱引用:WeakReference类,处于可达状态时,无论内存充足与否,均会被GC回收。虚 阅读全文