Java设计模式-适配器模式

适配器模式是23种设计模式中比较常用的模式之一,在创建型模式、结构性模式和行为型模式分类中,适配器模式归类为结构型模式。 将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器结构和使用场景 使用场景 系统需要使用现有的类,而这些类的接口不符合系统的需要。 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些 […]

阅读更多 »

Java设计模式-桥接模式

桥接模式也是23种设计模式中比较常用的模式之一,在创建型模式、结构性模式和行为型模式分类中,桥接模式归类为结构型模式。 在正式介绍桥接模式之前,先简单的看一个例子,通过例子我们再介绍引入桥接模式。 假设要设计一个跨平台的图片浏览系统,该系统可以正常显示PNG、JPG、GIF等不同格式图片,而且在不同的操作系统上面也可以正常运行。系统会首先将文件解析为不同的像素矩阵(Matrix),然后将像素矩阵显 […]

阅读更多 »

Java设计模式-责任链模式

责任链模式又称为职责链模式,在23种设计模式中归类为行为型模式。行为型模式可以分为类行为型模式和对象行为型模式。 类行为型模式使用继承关系在几个类之间分配行为,类行为型模式主要通过多态等方式来分配父类与子类的职责。 对象行为型模式则使用对象的聚合关联关系来分配行为,对象行为型模式主要是通过对象复合等方式来分配两个或多个类的职责。根据“合成复用原则”,系统中要尽量使用组合关系来取代继承关系,因此大部 […]

阅读更多 »

Java设计模式-单例模式

单例模式也是23种设计模式中最常用的模式之一,在创建型模式、结构性模式和行为型模式分类中,单例模式归类为创建型模式。 单例模式确保一个类只有一个实例,并提供一个全局访问点。这种方式可以防止创建多个对象消耗过多资源,或者某种类型的对象有且只能有一个。例如创建一个对象消耗过多资源,访问IO和数据库或者进行网络传输数据等等,这时候就应该使用单例模式。 从最开始接触单例模式,包括在大多数书籍中的介绍中,懒 […]

阅读更多 »

Java设计模式-工厂模式

工厂模式也是23种设计模式中比较常用的模式之一,而这23种设计模式的又可以分为:创建型模式、结构性模式和行为型模式,工厂模式归类为创建型模式。 一般情况下工厂模式又可以细分简单工厂模式、工厂方法模式以及抽象工厂模式3种,简单工厂模式严格来说并不是工厂模式的一种,而是一种编程习惯。在本文中为了对比理解所以将也简单工厂作为了一种模式 简单工厂模式 简单工厂(Simple Factory)模式是由一个工 […]

阅读更多 »

Android内存溢出OOM:常见内存泄漏

在上一篇文章中我们对Android中内存有了一个基本的了解,在本文继续介绍有关内存溢出的相关点。当内存泄漏超过一定的界限,必然会引起内存溢出,有些内存泄漏在开发中是比较常见的,接下来通过介绍几种常见额内存泄漏情形,以便在开发过程中采取必要的措施以此防止内存泄漏。 如下是Android开发者在开发中比较常见的几种内存泄漏,并给出了相对应的防止内存泄漏的解决方式。 单例模式引起的内存泄漏 单例模式可以 […]

阅读更多 »

Android内存溢出OOM:简单介绍

前言 在日常的Android开发中,每个开发者或多或少都会遇到过OutOfMemoryError这样崩溃信息。如果工程稍微大一些,在monkey测试的崩溃日志也是比较常见的一种。如下是比较常见的一些报错信息:

相对于StackOverflowError而言OutOfMemoryError则是比较常见的一种内存异常。在《深入理解Jav […]

阅读更多 »

Java类加载器二

有关类加载的内容前面已经介绍了两篇博文,但是仍然没有介绍到类加载的在平常开发中的使用场景,包括如何自定义类加载器。本篇文章继续介绍类加载器的相关内容,包括如何自定义类加载器,并通过简单示例介绍一下类加载器的应用。最后在介绍一下线程上下文类加载器以及类加载器在Web容器和OSGi中的应用。 Class.forName Class.forName()是一个静态方法,同样可以加载类。Class.forN […]

阅读更多 »

Java类加载器一

类加载器介绍 在前面已经有一篇笔记简单介绍了Java类加载机制,但是限于篇幅所以将类加载器单独新启一篇继续介绍。Java类加载器处于类加载机制的第一个阶段,如果在这个阶段对类文件做任何更改都将会对运行产生重大影响。由于类加载都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会给java应用程序提供高度的灵活性。 本文所有示例都是基于JDK1.8.0_111,虚拟机版本Ja […]

阅读更多 »
1 2 3 11