自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

越一步之距

下蹲是为了跳得更远

  • 博客(80)
  • 收藏
  • 关注

原创 行为型模式-观察者模式

        对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。        Subject 抽象的主题,被观察的对象,提供Attach和Detach Observer对象的接口。       ConcreteSubject具体的被观察对象,维持ConcreteSubject状态。当状态发生变化时,发送消息通知它的观察者。       Obse...

2018-06-10 10:37:42 401

原创 行为型模式-模板方法模式

        定义一个操作框架,将一些具体的步骤延迟到子类中实现。使子类可以在不改变算法的结构上可以重定义改算法的某些特定步骤。         封装不变的部分,扩展可变部分,把不便的部分封装到父类中实现,可变的部分通过继承在子类中实现。         模板方法角色:         AbstractClass定义一个模板,其子类将重定义PrimitiveOperation1和Primitiv...

2018-06-10 07:50:39 422

原创 Java基础类—Short

Short类继承抽象类Number,将基本类型short包装在一个对象中public static final short MIN_VALUE = -32768最小值public static final short MAX_VALUE = 32767;最大值public static final Class<Short> TYPE =(Class<Short>) Clas...

2018-06-02 14:39:05 9821

原创 Java基础类—Byte

Byte类继承抽象类Number,将基本类型byte的值包装在一个对象中public static final byte MIN_VALUE = -128最小值public static final byte MAX_VALUE = 127;最大值public static final Class<Byte> TYPE =(Class<Byte>) Class.getPri...

2018-06-02 14:34:27 303

原创 Java基础类—Character

Character类提供一些方法,比如:(小写字母、数字等),并用于大小写转换。Character基于Unicode标准。Java平台使用UTF-16表示Char、String、StringBUffer类。Unicode编码知识:目前Unicode字符分为17组编排,从0X0000到0x10FFFF,每组有65536个码位,共1114112个码位。基本多文种平面(第零平面)BMP范围:U+0000...

2018-06-02 14:13:05 1838 1

原创 Java基础类—Boolean

Boolean类将基本类型为boolean的值包装在一个对象中。public static final Boolean TRUE = new Boolean(true)值true的Boolean对象public static final Boolean FALSE = new Boolean(false)基值false的Boolean对象public static final Class<B...

2018-06-02 13:42:35 21060

原创 Java 的8种基本类型

整数类型byte8位[-128,127]最小数据单位short16位[-32768,32767] int32位[-2^32,2^32] long64位[-2^64,2^64] 浮点类型float32位指数:8位,尾数:23位 double64位指数:11位,尾数:52位 字符类型char16位[0,65535] 布尔类型boolean--范围并没有精确定义    《Java虚拟机规范》一书中的描述...

2018-05-29 19:17:46 1120

原创 Unicode 编码理解

    Unicode(统一码、万国码、单一码)于1990年开始研发,1994年正式公布,是计算机领域里一项业界标准,包括字符集,编码方案等。Unicode是为了解决传统字符编码方案的局限而产生的,为每种语言中的每个字符都设定了统一唯一的二进制编码,以实现跨语言、跨平台进行文本转换、处理的要求。    计算机在设计时采用8个比特(bit)作为一个字节(byte),所以一个字节最多能表示256个字符...

2018-05-01 13:13:59 8280

原创 GB2312编码理解

    计算机信息交换使用汉字编码字符集是国家1980年发布,标准号为:GB2312-1980。    GB2312编码主要适用于汉字处理、汉字通讯等系统之间的信息交换。基本集主要收集了6763个汉字和682个图形字符,整个字符集分成94个区、每个区有94个位,每个区位上面一个字符,因此可以使用区和位来对汉字进行编码。    在区位码加上2020H,就是国标码。国标码加上8080H,得到计算机常用...

2018-05-01 12:30:57 11671

原创 Maven构建SpringMvc报错

导入一个Maven项目,启动后访问报错,错误内容:java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet。检查pom.xml、web.xml配置没有发现问题,查看jar包一切正常,查看tomcat部署,发现WEB-INF下面没有lib文件夹。在项目上右键properties,查看Depl...

2018-04-20 17:05:39 310

原创 结构型模式-享元Flyweight模式

        享元模式解决由于存在大量的细粒度对象而造成不必要的内存开销的问题,它与外观模式恰好相反,关注的重点是细小的对象。        享元对象共享是要区分内部状态和外部状态,内部对象不随环境的变化,可以共享;外部对象通常是由客户端调用的时候传递的,不共享。 享元模式角色:    ◊Flyweight:声明一个接口,来接收并作用于外部状态。    ◊ConcreteFlyweight:实现...

2018-04-15 10:28:15 264

原创 结构型模式-代理Proxy模式

    代理模式为其他对象提供一种代理以控制对这个对象的访问,它侧重于增加间接层来简化复杂的问题。代理模式角色:    ◊Subject:定义ConcreteSubject与Proxy的共用接口,从而在任何使用ConcreteSubject的地方都可以使用Proxy。    ◊ConcreteSubject:定义Proxy所代表的Subject。    ◊Proxy:1、维持一个引用,使得代理可以...

2018-04-14 13:18:40 295

原创 结构型模式-外观Facade模式

        外观模式将复杂系统的内部子系统与客户程序之间的依赖解除,它侧重于简化接口,更多的是一种架构模式。 外观模式角色:◊Facade:将客户端的请求转给相应的子系统处理。◊ SubSystem:实现各个子系统的具体功能。优点:1、实现子系统与客户端之间松耦合关系2、减少客户端处理对象的数目,使子系统使用其他更加方便容易。结构图:namespace Libraries.Test.Desig...

2018-04-14 11:15:34 309

原创 结构型模式- 装饰器Decorator模式

        装饰模式采用对象组合而非继承的手法,实现在运行时动态的扩展对象功能的能力,它强调的是扩展接口。   装饰器模式角色:◊Component:定义一个对象接口,可以给这些对象动态地添加职责。◊ConcreteComponent:定义一个对象,可以给这个对象添加一些职责。◊Decorator:维持一个指向Component的指针,并定义一个与Component接口一致的接口。◊Concr...

2018-04-14 10:04:03 275

原创 结构型模式-组合Composite模式

   组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。   组合模式让你可以优化处理递归或分级数据结构。   组合模式的结构包括Component、Leaf 、Composite 三个部分,其中:        Component 是组合...

2018-04-08 15:48:47 319

原创 软件能力成熟度模型(CMM)

CMM 是对软件组织进化阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程。基于CMM模型的产品包括一些诊断工具,可应用于软件过程评价和软件能力评估小组,以确定一个机构的软件过程实力、弱点、风险。最著名的是成熟度调查表。软件过程评价及软件能力评估的方法也依赖于CMM模型。 CMM成熟度级别一、初始级软件过程是无序的,甚至是混乱的,没有什么是经过定义的,项目成功的完成完全依赖个人的努力和...

2018-04-07 18:11:05 4709

原创 软件生存周期

        把整个软件生存周期划分成若干阶段、使每个阶段有明确的任务,使规模大、结构复杂和管理复杂的软件的开发变的容易控制和管理。通常,软件生命周期包括可行性分析与项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等,可以将这些活动以适当的方式分配到不同的阶段去完成。一、可行性分析与项目开发计划这个阶段主要确定软件开发目标及其可行性。必须要弄清楚的问题是:要解决的问题是什么?该问题有...

2018-04-07 18:00:04 1110

原创 结构型模式-桥接Bridge模式

桥接模式是通过将抽象和实现分离,让它们可以分别独立地变化,它强调的是系统沿着多个方向的变化;适配器模式和桥接模式具有一些共同的特征:他们都给另一对象提供了一定程度上的间接性,因而有利于系统的灵活性;它们都涉及从自身以外的一个接口向这个对象转发请求。这两种模式的不同之处主要在于它们各自的用途。适配器模式主要是为了解决两个已有接口之间不匹配的问题,它不考虑这些接口是怎样实现的;而桥接模式则对抽象接口与...

2018-04-05 11:00:41 387

转载 服务的注册与发现(Eureka)

一、spring cloud简介spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解。二、创建服务注册中心2.1 首先创建一个maven主...

2018-03-16 15:19:11 298

转载 Linux常用命令大全

最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 ...

2018-03-15 16:56:51 157

原创 Eclipse创建Spring Boot项目

一、安装插件1、在eclipse工具栏中Help--Eclipse Marketplace...2、“Popular”标签,选择Spring Tool Suite (STS) for Eclipse插件,安装:安装完成后发现maven选项不见了?之前安装的是jdk1.7的版本,下载jdk1.8安装完成并设置环境变量,重启Eclipse正常。二、创建Spring Boot项目1、File--New-...

2018-03-14 09:25:28 392

原创 结构型模式—适配器模式

适配器模式将一个类的接口转换成客户希望的另外一个接口。使得原本不相容的接口可以协同工作。适用性:想使用一个已经存在的类,而它的接口不符合你的需求。想创建一个可以复用的类, 该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同 工作。   适配器模式角色:    ◊ ITarget:Client所使用的与特定领域相关的接口。    ◊Client:与符合ITarget接口的对象...

2018-03-05 13:43:18 200

原创 设计模式—结构型模式

        结构型模式涉及到如何组合类和对象以获得更大的结构,就像搭积木,通过简单的积木组合形成复杂功能强大的结构。结构型模式采用继承机制来组合接口或实现,不是对接口和实现进行组合,而是描述如何对一些对象进行组合,从而实现新功能。         结构型模式主要包括:         适配器Adapter模式         桥接Bridge模式         组合Composite模式  ...

2018-03-03 09:35:23 253

原创 软件系统设计基本原则

一、抽象抽象是一种设计技术,说明一个实体的本质,而忽略不重要的方面。抽象将复杂的现象简化到可以分析、理解的程度。软件工程中从软件定义到软件开发要经历多个阶段,每前进一个阶段都可以看作是对软件解法的抽象层次的一次细化。抽象的最底层就是实现该软件的源程序代码。在进行模块化设计时也可以有多个抽象层次,最高抽象层次的模块用概括的方式叙述问题的解法,较低抽象层次的模块是对较高抽象层次模块对问题解法描述的细化...

2018-03-02 17:29:31 22268 1

原创 C# 克隆(Clone)中的深拷贝和浅拷贝

有时候在项目中需要得到一个对象在某个状态下的副本,为了避免重新创建一个对象再一一赋值,便可以使用克隆来处理,克隆分为浅拷贝和深拷贝。 浅拷贝对于值类型和String类型成员,浅拷贝会在副本中重新创建成员;对于引用类型,对象和副本对象引用同一个内存地址,当在对象或者副本对象修改引用成员后,引用类型的成员就发生变化。浅拷贝通过系统提供的System.ICloneable方法实现,新建类是继承IClon...

2018-03-01 18:02:26 11114

转载 C#命名规范

Pascal 规则(帕斯卡命名)每个单词开头的字母大写(如 TestCounter).Camel 规则(大驼峰和小驼峰命名)除了第一个单词外的其他单词的开头字母大写. 如. testCounter. Upper 规则仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则. 类命名指导- 类名应该为名词及名词短语,尽可能使用完整的词- 使用Pascal规则- 在适当的地方,使用...

2018-02-27 11:24:49 261

原创 netCore2.0 Api 跨域(Cors)

1、在使用netCore2.0 使用WebApi的过程中涉及到了跨域处理。在Microsoft.AspNetCore.All包中包含跨域Cors的处理,不必单独添加。 2、打开Startup.cs文件,在ConfigureServices 中配置跨域3、在Configure中使用或者是在Controller中配置,这两种方法都可以。在Configur

2018-01-30 13:31:14 9119 3

转载 C# Lock 解读

一、Lock定义    lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。     在多线程中,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同

2018-01-19 10:31:46 307

原创 程序在内存存储区介绍

一、数据结构中的堆和栈堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和

2018-01-18 11:43:04 2087

转载 C# ILDASM 使用

一、Microsoft Visual Studio 添加IL DASM工具二、图标含义MANIFEST:是一个附加信息列表,主要包含程序集的一些属性,如程序集名称、版本号、哈希算法等;.class,表示Program是一个类。并且它继承自程序集—netstandard的System.Object类;1)public,表示访问权限;2)auto

2018-01-16 14:32:15 801

原创 Maven管理本地包

Maven 是一个项目管理和构建自动化工具。一、将下载文件解压,然后设置maven环境我的电脑-----属性----高级-----环境变量-----环境变量-----新建变量名:M2_HOME变量值:D:\Java\maven\apache-maven-3.5.2-bin找到path 在环境变量值尾部加入:;%M2_HOME%\bin;---前面注意分号二、修改仓库

2018-01-11 09:20:46 468

原创 Redis之 有序集合(SortedSets)

有序集合是一个数据类型,这是一种类似于集和哈希的混合。像集合一样,排序集由唯一的、不重复的字符串元素组成,因此在某种意义上,排序集也是一组集合。虽然set中的元素没有被排序,但排序集中的每个元素都与一个浮点值相关联,这个值称为得分(这也是为什么该类型与哈希类似,因为每个元素都映射到一个值)。Sorted sets,类似Sets,但是每个字符串元素都关联到一个叫score浮动数值(flo

2017-11-13 20:55:50 2127 2

转载 Microsoft Visual Studio常用的快捷键

Ctrl+K,­­­­­­­­­­­­­­­­­­­­­­­­ Ctrl+D格式化全部代码Ctrl+K, Ctrl+F格式化选中的代码CTRL + SHIFT + B生成解决方案CTRL + O 打开文件CTRL + SHIFT + O打开项目CTRL + SHIFT + C显示类视图窗口CTRL + SHIFT + W在浏览器中查看CTRL+\,C

2017-11-12 12:28:01 788

原创 Redis之 集合(Sets)

Redis Sets 是不重复且无序的字符串元素的集合,用哈希表来保持字符串的唯一性。Redis 在每次调用时可能按照任意顺序返回元素,因为对于元素的顺序并没有规定。Sets 适合用于表示对象间的关系。一个简单的建模方式是,对每一个希望标记的对象使用 set。这个 set 包含和对象相关联的标签的 ID。假设我们想要给新闻打上标签。 假设新闻 ID 1000 被打上了 1,2,5

2017-11-12 12:10:26 817

原创 Redis之 字符串(String)

这是最简单Redis类型。如果你只用这种类型,Redis就像一个可以持久化的memcached服务器(注:memcache的数据仅保存在内存中,服务器重启后,数据将丢失)。1、字符串追加操作 /// /// 在原有key的value值之后追加value /// 如果 key 已经存在,并且值为字符串,那么这个命令会把 value 追加到原来值

2017-11-11 11:04:46 923

原创 Redis之 列表(Lists)

插入列表,可以使用lpush和rpush命令,left可以视为表头,right可以视为表尾。可以实现先进先出队列(FIFO)以及栈(LIFO)队列在web应用的范围非常广,比如日志推送、任务处理等等;使用redis的list类型,也可以实现队列。1、入栈/// /// 从左侧(队首)向list中添加值 /// 将所有指定的值插入到存于 ke

2017-11-09 20:13:51 1933

原创 Redis之 散列(hashes)

Redis hash 看起来就像一个 “hash” 的样子,由键值对组成:Hash 便于表示 objects,实际上,你可以放入一个 hash 的域数量实际上没有限制(除了可用内存以外)。所以,你可以在你的应用中以不同的方式使用 hash。值得注意的是,小的 hash 被用特殊方式编码,非常节约内存。1、删除操作 /// /// 根据hash

2017-11-06 21:23:22 1134

转载 Visual Studio Code 常用快捷键

主命令框F1 或 Ctrl+Shift+P: 打开命令面板。在打开的输入框内,可以输入任何命令,例如:按一下 Backspace 会进入到 Ctrl+P 模式在 Ctrl+P 下输入 > 可以进入 Ctrl+Shift+P 模式在 Ctrl+P 窗口下还可以:直接输入文件名,跳转到文件? 列出当前可执行的动作! 显示 Errors或 Warnings,也可以 Ctr

2017-11-06 11:11:14 981

原创 Visual Studio Code创建C#项目

Visual Studio Code下载地址:https://code.visualstudio.com/.netCore版本为2.X 下载地址:https://www.microsoft.com/net/learn/get-started/windows 创建MVC 项目1、打开Visual Studio Code工具菜单“文件--打开文件夹--选择创建项目的目录”2

2017-11-03 17:35:59 24882

原创 VS2015 使用ODataV4创建Web Api和OData客户端

OData - Open Data Protocol,是一个设计和使用RESTful API的标准。REST本身只是一个构建web服务的思想和理念,其没有规定一个统一的标准来限制开发人员该如何设计RESTful API。其实我们实际开发中的确也没有遵循某个统一的标准去设计WebAPI。因为大多数场景下,遵循一个统一的标准并不是必要的。但在某些场景下,有这样一个标准却能带来很大的好处。ODa

2017-10-18 17:04:02 2363

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除