摘要:
[TOC] 前言 本文将简要介绍Java线程与内存分析工具VisualVM和MAT的使用,进一步的学习可参考官网或工具帮助(例如MAT:Help Welcome Tutorials),并在实际工作中融会贯通。 VisualVM Java VisualVM是JDK1.6后自带的可视化工具,提供图形界面 阅读全文
摘要:
概念定义 代理模式是一种使用代理对象来执行目标对象的方法并在代理对象中增强目标对象方法的一种设计模式。 使用代理模式的原因有: + 中介隔离作用:在某些情况下,一个客户类 不想或者不能直接引用 一个委托对象,而代理对象可以在客户类和委托对象之间起到 中介 的作用(代理类和委托类实现相同的接口)。以现 阅读全文
摘要:
概念定义 享元(Flyweight)模式运用共享技术高效地支持大量 细粒度 对象的复用。 当系统中存在大量相似或相同的对象时,有可能会造成内存溢出等问题。享元模式尝试 重用现有的同类对象,如果未找到匹配的对象则创建新对象 ,从而减少系统中重复创建对象实例的性能和内存消耗。 享元模式将对象的信息分为两 阅读全文
摘要:
概念定义 使用原型实例指定待创建对象的种类,并通过拷贝该原型来创建新的对象。Prototype模式允许一个原型对象克隆(复制)出多个与其相同的对象,而无需知道任何如何创建的细节。 应用场景 + 对象的创建过程较为复杂且需要频繁创建 + 期望根据现有的实例来生成新的实例,例如: 对象种类繁多而无法整合 阅读全文
摘要:
概念定义 抽象工厂(Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 抽象工厂模式中,系统的产品有 多于一个 的产品族(一个产品族里定义多个产品),而系统只消费其中某一族的产品。换句话说,抽象工厂创建一整套具有相互依赖或作用关系的产品(至少两 阅读全文
摘要:
概念定义 工厂方法(Factory Method)模式,又称多态工厂(Polymorphic Factory)模式或虚拟构造器(Virtual Constructor)模式。工厂方法模式通过定义工厂抽象父类(或接口)负责定义创建对象的公共接口,而工厂子类(或实现类)则负责生成具体的对象。 工厂方法模 阅读全文
摘要:
概念定义 简单工厂(Simple Factory)模式,又称静态工厂方法(Static Factory Method)模式,即定义一个工厂类,根据传入的不同参数创建不同的产品实例,这些实例对象具有共同的父类或接口。 应用场景 + 需要创建的产品对象较少,否则工厂逻辑会过于复杂。 + 客户端只关心产品 阅读全文
摘要:
概念定义 Singleton(单例)模式是指在程序运行期间, 某些类只实例化一次,创建一个全局唯一对象。因此,单例类只能有一个实例,且必须自己创建自己的这个唯一实例,并对外提供访问该实例的方式。 单例模式主要是为了避免创建多个实例造成的资源浪费,以及多个实例多次调用容易导致结果出现不一致等问题。例如 阅读全文
摘要:
概念定义 Builder模式是一步一步创建一个复杂对象的创建型模式。该模式将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。 应用场景 + 对象创建过程比较复杂,或对创建顺序或组合有依赖(经典Builder模式,可参阅GOF《设计模式》)。 + 创建对象时所需参数较多,且包含较多 阅读全文
摘要:
前言 Java Stream API借助于Lambda表达式,为Collection操作提供了一个新的选择。如果使用得当,可以极大地提高编程效率和代码可读性。 本文将介绍Stream API包含的方法,并通过示例详细展示其用法。 一、Stream特点 Stream不是集合元素,它不是数据结构也不保存 阅读全文