自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (18)
  • 收藏
  • 关注

原创 几种软件开发方法对比

逆向工程导出的信息可以分为:实现级、结构级、功能级、领域级,信息的抽象级别越高,它与代码的距离就越远,通过逆向工程恢复的难度亦越大,而自动工具支持的可能性相对变小,要求人参与判断和推理的工作增多。从问题本身来看,或是由外(用户所见的)向内(系统的实现)看,以距离实现近的决定为低级决定,远的为高级决定。面向对象方法是系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期,提高系统开发的正确性和效率。燃尽,是烧完了的意思。

2023-10-31 22:15:00 682

原创 软考系统架构师案例分析知识点整理

包括:策略(Strategy)、模版方法(Template Method)、迭代器(Iterator)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Mediator)、状态(State)、访问者(Visitor)、解释器(Interpreter)、调停者(Mediator)、观察者(Observer)项目计划:包括范围计划、工作范围计划、活动定义、资源需求、资源计划、活动排序、费用估算、进度计划、费用计划;网络应用系统的设计;系统的故障对策和系统的备份与恢复;

2023-10-31 22:00:00 606

原创 该博客文章已迁移至公众号“东窗”~

该博客文章已迁移至公众号“东窗”~

2023-10-12 10:44:22 96

原创 redis系列:redis介绍与安装

前言这个redis系列的文章将会记录博主学习redis的过程。基本上现在的互联网公司都会用到redis,所以学习这门技术于你于我都是有帮助的。博主在写这个系列是用的是目前最新版本4.0.10,虚拟机装的是4.0.10,为了方便window也安装了(版本3.2.100)。后续命令会采用命令行,jedis和spring集成jedis这三种方式进行操作。在这片博文的开始,可以先试着问几个问题...

2018-07-10 08:37:39 224

原创 java多线程系列:ThreadPoolExecutor源码分析

前言这篇主要讲述ThreadPoolExecutor的源码分析,贯穿类的创建、任务的添加到线程池的关闭整个流程,让你知其然所以然。希望你可以通过本篇博文知道ThreadPoolExecutor是怎么添加任务、执行任务的,以及延伸的知识点。那么先来看看ThreadPoolExecutor的继承关系吧。继承关系Executor接口public interface Exe...

2018-07-02 13:19:31 240

原创 java多线程系列:ThreadPoolExecutor

ThreadPoolExecutor自定义线程池开篇一张图(图片来自阿里巴巴Java开发手册(详尽版)),后面全靠编好了要开始编了,从图片中就可以看到这篇博文的主题了,ThreadPoolExecutor自定义线程池。目录ThreadPoolExecutor构造函数介绍核心线程数corePoolSize最大线程数maximumPoolSize线程存活时间keepAl...

2018-06-17 09:09:41 1948

原创 java多线程系列:Executors框架

目录Executor接口介绍ExecutorService常用接口介绍创建线程池的一些方法介绍 3.1 newFixedThreadPool方法 3.2 newCachedThreadPool方法 3.3 newScheduledThreadPool方法 疑问解答 4.1. Runable接口和Callable接口Executor接口介绍Executor是一个接口...

2018-06-13 18:03:49 2622

原创 从源码角度看LinkedList一些基本操作(jdk1.7)

介绍LinkedList是一个双向链表,就像下图展示那样,每个节点有个指向上个元素和一个指向下个元素的指针。接下来我会对我们经常使用的方法进行介绍,代码如下 @Test public void testLinkedList(){ //1.实例化LinkedList LinkedList<Character> list = new LinkedList<Character...

2018-04-03 14:40:26 224

原创 使用ArrayList时代码内部发生了什么(jdk1.7)?

前言ArrayList(这里的ArrayList是基于jdk1.7)是在项目中经常使用的集合类,例如我们从数据库中查询出一组数据。这篇文章不去剖析它的继承和实现,只是让我们知道实例化及增删改查时它的内部代码是怎么实现的。public class TestList { @Test public void testArrayList(){ List<Integer> list = ...

2018-03-30 12:41:09 232

原创 设计模式-组合模式

介绍这篇主要讲述设计模式中的组合模式。组合模式又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等。 接下来看看组合模式的结构图结构图在组合模式结构图中包含如下几个角色:

2017-09-23 16:41:12 306

原创 设计模式-备忘录模式

介绍备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。当我们玩单机游戏时就有个存档的功能,这样就是备忘录模式的应用。 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘录

2017-09-23 16:37:11 328

原创 设计模式-迭代器模式

介绍迭代器模式在我们日常编程中使用非常频繁,像list、map、数组等都会用到迭代器模式。迭代器模式属于行为型模式,它用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。结构图在迭代器模式结构图中包含如下几个角色:Iterator(抽象迭代器):它定义了访问和遍历元素的接口,声明了用于遍历数据元素的方法,例如:用于获取第一个元素的first()方法,用于访问下一个元素的next()方法,用于

2017-09-23 16:35:36 308

原创 Spring Boot学习之路一:入门

spring boot介绍所谓的介绍也就是spring boot是什么东西?干什么用的?用了之后对我有什么好处?为什么要用这个而不用其他的? spring boot是什么东西? Spring Boot是由Pivotal团队提供的全新框架。干什么用的? 其设计目的是用来简化新Spring应用的初始搭建以及开发过程。用了之后对我有什么好处? 简化项目搭建为什么要用这个而不用其他的?

2017-09-17 19:39:45 700 1

原创 设计模式-命令模式

介绍说到命令模式,我们可以联想到上级下达命令,下级接收命令去执行,遥控器发送命令,相应的机器做出反应。就比如电灯泡的开关,排气扇的开关等等。这些开关就是发送命令的对象,而电灯泡和排气扇就是接受命令的对象,如下图。 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令

2017-09-17 14:01:29 372

原创 设计模式-适配器模式

这篇文章讲的是适配器模式,适配器模式其实在我们日常生活中就有许许多多的例子 例如插座转接头 车载充电器 还有许许多多其他的,我就不一一介绍了。其实设计模式中和真实世界中的适配器的作用都是一样的,都是讲一个结构转换成另一个接口,以达到我们希望的结果。介绍适配器模式(Adapter Pattern## 标题 ##)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了

2017-09-17 14:01:10 299

原创 设计模式-桥接模式

介绍桥接模式属于结构型模式,用于把抽象化与实现化解耦,使得二者可以独立变化,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。桥接模式适用于一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,以及不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,或者一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。 就例如各个小吃店的点

2017-09-10 21:42:54 256

原创 设计模式-代理模式

代理模式是结构性模式,它通过引入一个新的对象(如小图片和远程代理对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身。我们现实生活中也有许多代理模式的影子。例如朋友出国旅游,我们可以托朋友帮忙买些东西。或者,我们点外卖,配送员替我们去取餐等等。

2017-09-10 21:42:19 285

原创 设计模式-中介者模式

在我们的日常生活中经常需要购买各种各样的东西,房子、车子、生活用品等等。那么我们并不会对各个产品都了解,所以销售人员应运而生,他们了解产品,然后他们根据你的需求在向你们推荐符合你们要求的产品。这些销售人员就相当于中介,处于客户和产品之间,为你们搭桥牵线。这就是这篇需要讲述的一个设计模式-中介者模式。介绍从程序方面来讲,中介者模式就是各个对象封装,使他们不需要相互直接引用,而是通过中介者来通信。对于一

2017-09-10 21:09:56 1093

原创 设计模式-观察者模式

在我们日常生活中,有些人会有订阅报纸的经历,当我们订阅时,都能定时的收到报纸,当我么取消订阅时,就不会再收到报纸。 当然,互联网普及之后,报纸逐渐减少。但是类似的也有许多,例如微信的公众号,当我们订阅了公众号时,公众号有新文章发布时就会推送到我们的微信上。用户3关注公众号 公众号把用户3添加到关注用户列表中,有新文章时推送给关注用户列表中 用户2取消关注,公众号把用户2从关注用户列表中

2017-09-09 13:15:17 614

原创 设计模式-装饰模式

介绍装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。 继承机制同样可以给现有类增加功能,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 而装饰器模式是将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为。结构图时序图案例我这边就

2017-09-05 16:28:26 754

原创 设计模式-状态模式

介绍状态模式和策略模式是一对双胞胎,他们都属于行为设计模式。状态模式和策略模式都是为具有多种可能情形设计的模式,把不同的处理情形抽象为一个相同的接口,符合对扩展开放,对修改封闭的原则。策略模式封装了一组相关算法,它允许Client在运行时使用可互换的行为;状态模式帮助一个类在不同的状态显示不同的行为。状态模式封装了对象的状态,而策略模式封装算法或策略。因为状态是跟对象密切相关的,它不能被重用;而通过

2017-09-04 19:08:19 466

原创 设计模式-享元模式

介绍享元模式简单的来说就是把一些重复的抽取出来提供给其他类使用。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。 享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用。系统只使

2017-09-03 19:23:31 513

原创 设计模式-原型模式

介绍原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。优点性能提高。 简化对象的创建注意事项使用原型模式复制对象不会调用类的构造方法。有深拷贝与浅拷

2017-09-03 16:05:32 501

原创 设计模式-策略模式

介绍在项目开发中,经常会碰到需要根据不同的条件采用不同的算法,但是这些不同的算法又有些类似。例如商城下单中的打折功能(打八折、五折、一折),满减功能等等。 地图中根据采用不同的出行方式计算时间、金额等等,如下图,不同的出行方式使用不同的算法计算需要花费的时间和最短的行驶距离。 结构图那这些不同的行为,我们可以把它们封装成不同的算法,根据用户选择的不同采用不同的算法,这种可以采用策略模式来实现他们

2017-09-02 18:08:49 1309

原创 设计模式-模板方法模式

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I

2017-08-27 21:05:28 595

原创 设计模式-抽象工厂模式

这一篇博文来介绍工厂模式中的第三种抽象工厂模式。介绍抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。 抽象工厂模式不同于前面两个模式,这篇也用支付的案例来讲解。现实中发生的支付情况可能是这样: 支付都有个商户号,然而现在有两个商户号,需要在不同时间段切换使用,例

2017-08-20 18:44:04 762

原创 设计模式-工厂方法模式

这一片来介绍工厂模式中的第二种工厂方法模式。介绍工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂

2017-08-20 17:46:41 652

原创 设计模式-简单工厂模式

工厂模式一共分为三种,简单工厂、工厂模式和抽象工厂。这三种工厂模式都属于创建型模式。这篇博文主要讲解工厂模式的第一种-简单工厂模式。介绍简单工厂模式(Simple Factory Pattern)又称为静态工厂方法(Static Factory Method)模式,它可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 说的简单点

2017-08-20 17:19:44 820

原创 设计模式-外观模式

介绍现实生活中有许多外观模式的例子,像餐馆的服务员、一些企业的客户人员、公司的前台等等。 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。为什么要使用外观模式?让外部不直

2017-08-12 22:11:29 582

原创 设计模式-单例模式

介绍单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。实际运用例如一个嵌入到微信的项目,里面有这微信登入、微信分享文章、微信获取位置等功能。那么用到微信登入这个功能,首先就要获取access_token。下面是关于获取access_token的说明。 access_token是公众号的全局唯

2017-08-05 20:29:03 1070

原创 eclipse 创建聚合maven项目

这篇博文讲使你了解如何搭建maven聚合项目。 那么,先来了解下什么是maven聚合项目吧。以前我们搭建项目时,通常是吧pojo、dao、service、配置文件等都放在一个工程下,如下 而maven聚合项目,可以把项目分成几个子模块,更容易管理、维护。每个子模块有事一个独立的项目,只要把需要的模块添加到依赖中即可。如下图接下来就是创建maven聚合项目的过程创建父工程1.打开eclipse(博

2017-08-02 08:16:40 2487 2

原创 设计模式-介绍

设计模式说到设计模式,想必入行一段时间的猿们都有所了解。不管是百度还是google,搜索设计模式,都会有很多搜索结果。那么我写的这些又会和他们的有什么不同的呢?在打算写这些文章时,我也在思考这个问题。其实,我的这些文章和其他的目的是一样的的,都是让读者了解、熟悉、甚至是熟练掌握这些设计模式。所以,我只能在叙述这些设计模式的同时,加上自己的理解,再融合生活中或者实际开发中遇到的问题进行剖析,让读者更容

2017-07-31 20:43:07 1383

原创 公众平台测试帐号开发全流程第9篇-模板消息

本片文章将讲述微信公众平台消息管理中的模板消息接下来对模板消息进行一番介绍(也就是公众开发者文档考过来的^_^,当然自己的使用过程也会穿插进去)模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。具体模板消息运营规则请读模板消息运营规范 关于使用规则,请注意: 1、所有服

2017-03-18 22:44:45 1587

原创 公众平台测试帐号开发全流程第8篇-素材管理

这篇文章主要讲述微信公众平台开发的素材管理模块接口的开发现在版本的素材接口有如下几个接口新增临时素材获取临时素材新增永久素材获取永久素材获取永久素材删除永久素材修改永久图文素材获取素材总数获取素材列表本篇文章只对其中的新增其他类型永久素材(图片、音频和视频)进行介绍和分析,其他的跟以前的类似,就不在赘述。 看到上面那句话的时候,可能会产生一个疑问,为什么新增永久素材变成了新增

2017-03-18 22:13:23 1893

原创 公众平台测试帐号开发全流程第7篇-用户管理之用户分组管理

用户分组管理

2016-10-21 10:48:19 2104

原创 公众平台测试帐号开发全流程第7篇-用户管理

用户管理介绍从微信公众平台开发者文档中可以知道,用户管理下面有五个功能,如下用户分组管理设置用户备注名获取用户基本信息(UnionID机制)获取用户列表获取用户地理位置本篇文章主要讲后面三个功能,获取用户地理位置功能这里不说明,用户分组管理篇幅比较大,放在下篇文章。获取用户列表说明 公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个

2016-10-19 20:07:24 2158

原创 公众平台测试帐号开发全流程第6篇-接收和被动回复消息

接收消息接收消息注意事项关于接收消息Url代码接收和回复消息流程各消息类型的推送XML数据包结构关于bean转换xml和xml转换bean被动回复消息注意事项回复内容的XML数据包结构注意ToUserName和FromUserName回复消息的具体流程接收消息关于消息,上篇文章已经介绍了差不多,这篇主要是讲述接收微信服务器发送的消息。接收消息又分为普通消息和事件消息。普通

2016-10-16 21:51:14 6323

原创 java bean对象转换json对象时过滤空值

由于从数据库获取到的总是有空值或者”“的情况,而且从数据库获取到数据封装到java中,再转换成json数据格式,这种事情已经司空见惯了。 但是在某些特定的场合下json数据中空值或者”“的会影响项目的运行,查错的情况下也不直观。例如下面这种情况下 上图只是json的一小部分,后面还有很多没有截出来。写过微信公众号的应该知道这是自定义菜单的json数据格式,但是其中有些属性是多余的。所以空值和

2016-07-23 19:20:44 27662 2

原创 springMVC的@ResponseBody中文乱码

网上很多这种文章但是都没有什么用,有的基本都是只说了一半。 解决方法有很多,一种是局部,也就是单个方法有用的@RequestMapping(value="", produces = "application/json; charset=utf-8")鼠标移到produces上有如下提示 像 produces = "text/html; charset=utf-8" produces =

2016-05-08 21:56:25 3642

原创 公众平台测试帐号开发全流程第5篇-消息

微信公众平台的消息管理可分为接收消息和发送消息。而接受消息又可分为接收普通消息和事件推送,发送消息的接口则比较多,有被动回复消息、客服消息等。其实发送的内容都差不多。接收消息 上图就是接收消息的所有事件发送消息其他一些发送消息的接口这篇文章只是对消息做个笼统的介绍,后续会对接收消息的普通消息、事件推送、发送消息的被动回复消息及发送消息的其他接口做详细说明。

2016-04-18 19:31:21 1570

maven配置文件

修改了maven的下载源 修改了maven的下载源修改了maven的下载源修改了maven的下载源修改了maven的下载源修改了maven的下载源

2018-03-16

截图工具 截图神软

截图工具 截图神软

2017-08-01

PuTTY Key Generator

PUTTYGEN PuTTY Key Generator 生成.ppk文件

2016-11-12

httpcore-4.2.2.jar

httpcore-4.2.2.jar

2015-05-12

httpclient-4.2.3.jar

httpclient-4.2.3.jar

2015-05-12

PMP认证备考强化记忆手册

PMP认证备考强化记忆手册

2014-10-18

巴巴运动网完整源代码

巴巴运动网完整源代码

2014-05-10

jqueryApi.chm

jqueryApi.chm

2014-03-21

Spring 2.5.6源代码包

Spring 2.5.6源代码,直接导入。解压也可

2014-03-19

spring2.5.5源码包

spring2.5.5源码包,直接导入myeclipse中

2014-03-19

structs2的源码包

structs2的源码包,直接导入到myeclipse中即可

2014-03-19

js面向对象

讲述了JavaScript继承,采用面向对象的理论。一共有六个文件,你值得拥有。

2014-03-18

JQuery zTree

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

2014-03-10

struts-2.3.16.1压缩包

struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

2014-03-10

Struts2.0中文API

struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

2014-03-10

Spring2.5API文档

Spring是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

2014-03-10

luceneAPI文档

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

2014-03-10

浏览器是如何工作的

本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。

2014-03-02

空空如也

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

TA关注的人

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