以梦为马

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

java字符编码浅析

发表于 2016-07-14 | 更新于 2019-04-22 | 分类于 java
本文字数: 2.4k | 阅读时长 ≈ 2 分钟

java字符编码浅析

关于这篇文章其实是从一个问题开始的:java中char类型能存储汉字吗?

UTF-8编码

UTF-8就是在互联网上使用最广的一种Unicode的实现方式。其他实现方式还包括UTF-16(字符用两个字节或四个字节表示)和UTF-32(字符用四个字节表示),不过在互联网上基本不用。重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一。UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则很简单,只有二条:

阅读全文 »

设计模式19之 迭代器(Iterator)模式(行为模式)

发表于 2014-06-03 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 4.8k | 阅读时长 ≈ 4 分钟

迭代器模式简介

  迭代器模式又叫游标(Cursor)模式,是对象的行为模式。迭代器模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。

  迭代器模式是设计模式中最常见的几个模式之一。在Java的集合(Collection)框架中,广泛的使用迭代器(Iterator和Enumeration)来遍历集合的元素。

阅读全文 »

设计模式18之 观察者(Observer)模式(行为模式)

发表于 2014-06-02 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 4k | 阅读时长 ≈ 4 分钟

观察者模式简介

 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
 
 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

阅读全文 »

设计模式17之 模板方法(Template Method)模式(行为模式)

发表于 2014-06-01 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 4.6k | 阅读时长 ≈ 4 分钟

模板模式简介

  模板方法(Template Method)模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。
  模板方法模式是所有模式中最为常见的几个模式之一,而且很可能我们自己使用过模板方法模式而没有意识到自己已经使用了这个模式。模板方法模式是基于继承的代码复用的基本技术。
  Java的集合就是一个典型的,利用了模板方法模式的例子。Java集合中的Collection集合包括List和Set两大组成部分。List是队列,而Set是没有重复元素的集合。它们共同的接口都在Collection接口声明;例如,都包含了size(),isEmpty()方法。而AbstractCollection这个抽象类则实现了它们共同的方法,其余未实现的方法定义为抽象方法。List和Set的实例类,就是通过继承AbstractCollection(或它的子类),省去了许多重复性编码的工作!

阅读全文 »

设计模式16之 策略(Strategy)模式(行为模式)

发表于 2014-05-29 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 2.9k | 阅读时长 ≈ 3 分钟

策略模式简介

策略(Strategy)模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。

阅读全文 »

设计模式15之 不变(Immutable)模式(行为模式)

发表于 2014-05-28 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 6.4k | 阅读时长 ≈ 6 分钟

不变模式简介

一个对象的状态在对象被创建之后就不再变化,这就是所谓的不变(Immutable)模式。

阅读全文 »

设计模式14之 桥梁(Bridge)模式(结构模式)

发表于 2014-05-27 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 4.5k | 阅读时长 ≈ 4 分钟

桥梁模式简介

  桥梁模式(Bridge),又称为柄体(Handle and Body)模式或接口(Interface)模式。它属于对象的结构模式,其用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。

  这句话有三个关键词:“抽象化”、”实现化”和”脱耦”。

阅读全文 »

设计模式13之 门面(Facade)模式(结构模式)

发表于 2014-05-26 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 6.3k | 阅读时长 ≈ 6 分钟

门面模式简介

门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

举个例子,
病人去医院看病,如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是一件容易的事情:首先病人必须先挂号,然后门诊;如果医生要求化验,病人必须首先划价,然后缴费,才可以到化验部门做化验;化验后再回到门诊室。如下图所示:

阅读全文 »

设计模式12之 享元(Flyweight)模式(结构模式)

发表于 2014-05-25 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 8.9k | 阅读时长 ≈ 8 分钟

享元模式简介

享元模式(Flyweight)是对象的结构模式,它以共享的方式高效地支持大量的细粒度对象。

它的好处是,通过共享来避免大量拥有相同内容对象的开销。

享元模式中的对象称为享元对象,享元对象分为内蕴状态和外蕴状态。
内蕴对象和外蕴对象是相互独立的:内蕴状态是存储在享元对象内部,并且不会随环境改变而有所不同的;内蕴状态是可以共享。外蕴状态是随环境改变而改变,不可以共享的状态;享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。

阅读全文 »

设计模式11之 代理(Proxy)模式(结构模式)

发表于 2014-05-24 | 更新于 2019-04-22 | 分类于 设计模式
本文字数: 2.5k | 阅读时长 ≈ 2 分钟

代理模式简介

代理(Proxy)模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。

一个比较典型的例子就是”Windows的快捷方式”。Windows快捷方式,可以使任何对象同时出现在多个地方而不必修改原对象。对快捷方式的调用完全与对原对象的调用一样,换言之,快捷方式对客户端是完全透明的。

阅读全文 »
123
James Lee

James Lee

30 日志
9 分类
35 标签
RSS
GitHub Weibo
Creative Commons
© 2020 James Lee | 139k | 2:07
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Mist v7.1.0
|
0%