摘要:
简述 类型:创建型。 目的:杜绝相同对象的反复创建,提升系统性能。 话不多说,直接看实现方案例。 实现案例 饿汉式 项目启动时加载 public class Test { private static Test ins = new Test(); public static Test instanc 阅读全文
摘要:
简述 类型:创建型 目的:通过拷贝快速创建相同或相似对象。 接下来我们看一个需要改进的案例。 优化案例 话不多说,先来看一个创建相同或相似对象的传统写法。 最初版v0 public class Department { private String name; private String coun 阅读全文
摘要:
概要 类型:创建型 目的:创建对象时,提升属性设置的灵活性。 灵活性 类中定义了大量属性时,通常为了创建对象时属性初始设置的便利随之定义大量的构造方法。 为了既不定义过多的构造方法,又保证属性设置的便利性。 接下来我们看一个需要改进的案例。 对象创建的优化 现在有个Employee类,如下。 最初版 阅读全文
摘要:
六大设计原则 单一职责原则 接口隔离原则 开闭原则 依赖倒置原则 里氏代换原则 迪米特法则 单一职责原则 我们分别看两个案例,一个是遵守单一职责原则,另一个是违背。 违背的案例 public class Computer { void calc() { System.out.println("计算数 阅读全文
摘要:
由于本文需要有一定的Stream基础,不懂什么是Stream的同学请移步:Java Stream入门 操作分类 graph LR 操作分类 中间操作 终端操作 操作分类 中间操作 有状态 中间操作 无状态 短路 终端操作 非短路 终端操作 中间操作只进行操作的记录,而实际的操作是由终端操作来执行的。 阅读全文
摘要:
前置知识 什么是进程,什么又是线程?咱不是讲系统,简单说下,知道个大概就好了。 进程:一个可执行文件执行的过程。 线程:操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 什 阅读全文
摘要:
泛型出现的原因 Java的泛型是在JDK1.5开始才加上的。在此之前的Java是没有泛型的。 没有泛型的Java使用起来给人感觉非常的笨重,为了体会泛型带来的好处, 来看看如果没有泛型,我们将如何写代码,以下是样例。 List list = new ArrayList(); list.add(1); 阅读全文
摘要:
学习Lambda的理由 绝大多数公司代码的主流风格。 大数据量下处理集合效率高,优秀的高并发解决。 代码的可读性增强。 消灭嵌套地狱。>形状的if或者for再也不用写了。 为了了解Lambda表达式,我们必须了解什么是函数式接口,这是Lambda表达式得以实现的依据。 在java中,函数式接口指注解 阅读全文
摘要:
由于本文需要有一定的Lambda基础,所以如果不懂什么是Lambda的同学请移步:Java Lambda 学习Stream的目的 函数式编程渐渐变成主流,而Stream是函数式编程的重点。 相对于传统的编程方式,代码更为简洁清晰易懂。 使得并发编程变得如此简单。 有效的避免了代码嵌套地狱。(见样例) 阅读全文
摘要:
Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。 Hello Kitty只能向东或向南走,不能向西或向北走。 问Hel 阅读全文