CuiZhe's Blog

CuiZhe's Blog


  • 首页

  • 归档

  • 分类

  • 标签

  • 关于

  • 搜索

单例模式

发表于 2018-12-03 | 分类于 设计模式 | 阅读次数: ℃
字数统计: 3.5k | 阅读时长 ≈ 12

单例模式

优点

1
2
3
4
减少内存开支
减少系统性能开销(建立销毁)
避免对资源的多重占用,例如写文件操作,由于只有一个实例在内存中,避免了同时写操作。
可以在系统设置全局的访问点,优化共享访问,例如可以设计一个类,负责所数据表的映射处理。

缺点

1
2
3
4
无接口,难拓展。
对测试不利
与单一职责冲突
高并发的时候就会出现线程同步问题,所以单例模式的实现方式有很多。
阅读全文 »

工厂模式

发表于 2018-11-27 | 分类于 设计模式 | 阅读次数: ℃
字数统计: 3k | 阅读时长 ≈ 12

一、工厂模式介绍

1.工厂模式的定义

“Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.”(在基类中定义创建对象的一个接口,让子类决定实例化哪个类。工厂方法让一个类的实例化延迟到子类中进行。)

2.工厂模式的分类:

  1. 简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory Method Pattern)。
  2. 工厂方法(Factory Method)模式,又称多态性工厂(Polymorphic Factory)模式或虚拟构造子(Virtual Constructor)模式。
  3. 抽象工厂(Abstract Factory)模式,又称工具箱(Kit 或 Toolkit)模式。

3.为什么要用工厂模式

  1. 解耦 :把对象的创建和使用的过程分开
  2. 降低代码重复: 如果创建某个对象的过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码
  3. 降低维护成本 :由于创建过程都由工厂统一管理,所以发生业务逻辑变化,不需要找到所有需要创建对象B的地方去逐个修正,只需要在工厂里修改即可,降低维护成本
阅读全文 »

字符串转整数

发表于 2018-11-13 | 分类于 剑指offer(JAVA) | 阅读次数: ℃
字数统计: 396 | 阅读时长 ≈ 1
题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述:1输入一个字符串,包括数字字母符号,可以为空 输出描述:1如果是合法的数值表达则返回该数字,否则返回0 输入例子:12+2147483647 1a33 输出例子: ...
阅读全文 »

Java基础十一-Map

发表于 2018-11-08 | 分类于 Java基础 | 阅读次数: ℃
字数统计: 7.9k | 阅读时长 ≈ 33
  • Map 中的数据是以键值对(key - value)的形式存储的
  • key - value 以 Entry 类型的对象实例存在
  • 可以通过 key 值快速的查找 value 值
  • 一个映射不能包含重复的键
  • 每个键最多只能映射到一个值
  • 当访问的值不在的时候,方法会抛出一个 NoSuchElementException 异常
  • 当对象的类型和 Map 里元素类型不兼容的时候,就会抛出一个 ClassCastException 异常
  • 当在不允许使用 Null 对象的 Map 中使用Null对象,会抛出一个 NullPointerException 异常
  • 当尝试修改一个只读的 Map 时,会抛出一个 UnsupportedOperationException 异常
阅读全文 »

Java基础十一-Set

发表于 2018-11-08 | 分类于 Java基础 | 阅读次数: ℃
字数统计: 3.8k | 阅读时长 ≈ 18

Set 和 List 一样,也继承于 Collection,是集合的一种。和 List 不同的是,Set 内部实现是基于 Map 的,所以 Set取值时不保证数据和存入的时候顺序一致,并且不允许空值,不允许重复值。

Set主要有2个实现方式,一个是 TreeSet,另一个是 HashSet 。

阅读全文 »

Java基础十一-List

发表于 2018-11-08 | 分类于 Java基础 | 阅读次数: ℃
字数统计: 1.9k | 阅读时长 ≈ 8
  • List 是元素有序并且可以重复的集合,称为序列
  • List 可以精确的控制每个元素的插入位置,或删除某个位置的元素
  • List 的两个主要实现类,是 ArrayList 和 LinkedList
阅读全文 »

Java基础十二--线程

发表于 2018-10-29 | 分类于 Java基础 | 阅读次数: ℃
字数统计: 0 | 阅读时长 ≈ 1
阅读全文 »

Java基础十一--集合

发表于 2018-10-29 | 分类于 Java基础 | 阅读次数: ℃
字数统计: 261 | 阅读时长 ≈ 1

在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量。一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),Java 的集合类就是一个很好的设计方案了。

阅读全文 »

Java基础十--泛型

发表于 2018-10-29 | 分类于 Java基础 | 阅读次数: ℃
字数统计: 1.9k | 阅读时长 ≈ 8

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

阅读全文 »

Java基础九--字符串

发表于 2018-10-27 | 分类于 Java基础 | 阅读次数: ℃
字数统计: 2.7k | 阅读时长 ≈ 11

字符串广泛应用在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String、StringBuffer、StringBuilder类来创建和操作字符串。

阅读全文 »
123
Cui Zhe

Cui Zhe

虽然还没想好写点什么,但是总觉得这里放句话比较和谐。

23 日志
4 分类
33 标签
RSS
GitHub E-Mail
© 2018 Cui Zhe
Site words total count:55.5k