摘要:
我们平时都在使用new来创建一个新的对象,但是仔细想想,我们这样公开的初始化一个对象,会经常造成耦合问题。今天我们要说的这个工厂模式便可以帮我们从复杂的依赖中解脱出来。 一、披萨的故事 我们现在需要建一个能够制作披萨的程序,这里面有不同口味的披萨,同时还有披萨的所有步骤,这里给出了四个步骤(准备,烘 阅读全文
摘要:
今天我们来学习一下装饰者模式。作为一名程序猿,相信许多人都跟我一样,在平时写代码的过程中,习惯使用继承。但是继承有时候会出现非常严重的问题,不过,没担心。装饰者模式将会给爱用继承的我们一个全新的设计眼界! 一、星巴兹咖啡的故事 我们通过一个生动有趣的例子来引出我们今天的主角--装饰者模式。 1、现在 阅读全文
摘要:
今天让我们来学习一下观察者模式 一、认识观察者模式: 我们都知道报社和杂志订阅的关系,报社的业务就是出版报纸,当你向报社订阅报纸后,只要他们有新的报纸出版,就会给你送来,只要你是他们的订户,就会一直收到新的报纸。当你不想再看报纸的时候,取消订阅,他们就不会再送新报纸来。只要报社还在运营,就会一直有人 阅读全文
摘要:
今天我们来看一下策略模式。在真正介绍策略模式之前呢,我们先通过一个非常生动有趣的例子的引入。 我们现在有一个模拟鸭子的程序。 1、鸭子父类如下: MallardDuck子类 RedheadDuck子类 2、现在呢,有一个需求,需要让鸭子具备会飞的功能。所以,理所当然的就给Duck父类添加上了一个fl 阅读全文
摘要:
一、java中的注解详解 1、什么是注解 用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据。比如,下面这段代码: 上面的代码中,我重写了toString()方法并使用了@Override注解。但是,即使我不使用@Override注解标记代码,程序也能够正 阅读全文
摘要:
一、常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent) cd 切换目录 touch 创建空文件 echo 创建带有内容的文件。 cat 查看文件内 阅读全文
摘要:
一、什么是JVM JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM 阅读全文
摘要:
归并排序 (merge sort) 是一类与插入排序、交换排序、选择排序不同的另一种排序方法。归并的含义是将两个或两个以上的有序表合并成一个新的有序表。归并排序有多路归并排序、两路归并排序 , 可用于内排序,也可以用于外排序。这里仅对内排序的两路归并方法进行讨论。 一、两路归并排序算法思路 分而治之 阅读全文
摘要:
希尔排序(Shell Sort)是插入排序的一种,是针对直接插入排序算法的改进,是将整个无序列分割成若干小的子序列分别进行插入排序,希尔排序并不稳定。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 一、基本思想 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组 阅读全文
摘要:
Dijkstra算法是最短路径算法中为人熟知的一种,是单起点全路径算法。该算法被称为是“贪心算法”的成功典范。本文接下来将尝试以最通俗的语言来介绍这个伟大的算法,并赋予java实现代码。 一、知识准备 1、表示图的数据结构 用于存储图的数据结构有多种,本算法中笔者使用的是邻接矩阵。 图的邻接矩阵存储 阅读全文