自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (21)
  • 收藏
  • 关注

原创 Redis高性能IO和多线程

1.Redis是单线程还是多线程?我们在学习 Redis 时听得最多的就是 Redis 是单线程的,其实这种说法并不严谨。严格来说 Redis 单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程,包括Socket读,解析,执行,Socket写等。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。2.Redis为什么用单线程?首先,我们Redi...

2022-04-21 20:14:50 899

原创 桥接模式

桥接模式是一种结构型设计模式,英文是 Bridge Design Pattern。在 GoF 的《设计模式》一书中,桥接模式是这么定义的:Decouple an abstraction from its implementation so that the two can vary independently。翻译成中文就是:将抽象和实现解耦,让它们可以独立变化。单从官方概念来理解,相当晦涩,通常对抽象与实现的第一反应就是接口(或抽象类)与实现类的继承关系,接口和实现独立变化就更加让人难以理解。关于桥接

2020-12-17 14:20:33 219

原创 模板方法模式

模板方法模式是一种行为型设计模式,模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。定义中的算法是指业务逻辑,并不特指数据结构和算法中的算法。原理很简单,代码实现就更加简单,接下来我们通过电商业务中创建促销活动的例子来介绍模板方式模式,促销活动包括满减,折扣,优惠券等。// 创建活动接口interface ActCreateService { // 创建活动 void create

2020-10-18 17:51:38 218 2

原创 策略模式

策略模式是一种结构型设计模式,定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端。策略类的定义比较简单,包含一个策略接口和一组实现这个接口的策略类。因为所有的策略类都实现相同的接口,所以客户端代码基于接口而非实现编程,可以灵活地替换不同的策略。假如有如下需求:根据客户端的不同请求类型,服务端则执行不同的算法计算相应的结果,通常会按以下代码进行实现。public class AlgorithmService { public dou

2020-10-18 17:05:54 79

原创 适配器模式

适配器式是一种结构型设计模式,通过增加一个新的适配器类,将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以协同工作。适配器模式有两种实现方式:类适配器和对象适配器。其中,类适配器使用继承关系来实现,对象适配器使用组合关系来实现。Target 表示客户端所需接口,可以是一个抽象类或接口;Adaptee定义了一组已存在的接口,但是不兼容 Target的接口定义;Adaptor对Adaptee和Target进行适配,作为一个转换器将 Adaptee 转换成一组符合Target..

2020-10-18 16:24:24 160 1

原创 装饰器模式

装饰器模式是一种结构型设计模式,在不改变原始类接口的前提下,创建了一个装饰类,装饰类和原始类实现相同的接口,然后通过组合将装饰类包装原始类,在保持类方法签名完整性的前提下,提供了额外的功能。接下来,我们通过装饰器模式的经典运用,Java I/O类库,来介绍装饰器模式。当我们要读取一个文档的时候,通常会采用下面的写法。public class App { public static void main(String[] args) throws Exception { I

2020-09-20 17:14:17 70

原创 代理模式

代理模式是一种结构型设计模式,在不改变原始类接口的前提下,为原始类定义一个代理类,通过代理类对原始类进行控制访问和非功能性需求的增强,实现在不改变原始类的情况下,通过新增的方式对原始类进行扩展非功能性需求,实现业务代码和非功能性代码解耦。按代理类创建时期可以将代理分为静态代理和动态代理,静态代码是在编译期进行创建的,动态代理是在运行期通过反射机制动态创建的。接下来我们以这样一个场景来介绍代理模式:用户调用一个根据ID查询详情接口,我们通过代理来记录接口的响应时间。一、静态代理// 接口i

2020-09-20 15:25:48 83

原创 建造者模式

建造者模式是一种创建型设计模式,当一个类的构造器有多个参数,特别当大多数参数是可选的,建造者模式就是种不错的选择。接下来我们通过创建一个重试器来具体介绍建造者模式:重试器是指对执行某一业务逻辑失败后进行重试,创建重试器需要指定名称,重试次数,每次重试后休眠时间,其中重试次数和每次重试后休眠时间两个参数是非必填的。对于这样的类,首先想到的是使用重叠构造方法,提供一个只有必填参数的构造器,第二个构造器有一个可选参数,依次类推,最后一个构造器包含所有参数。@Slf4jpublic class Re

2020-09-12 20:03:16 81

原创 工厂模式

我们在进行面向对象开发的,创建一个对象最常用的方式就是通过new操作符。但这种创建方式把对象的创建和使用耦合在一起,有时候当创建逻辑比较复杂,或者需要根据参数动态创建具体对象的时候,我们就考虑使用工厂模式,封装对象的创建过程,将对象的创建和使用分离。一般情况下,工厂模式分为三种更加细分的类型:简单工厂、工厂方法和抽象工厂。抽象工厂的使用场景比较特殊,并不常用,所以本文不再介绍。接下来我们通过这样一个业务场景:当用户执行一个操作的时候,根据相应的类型给相关人发送消息通知,消息类型包括邮件,站内信,短信

2020-09-12 17:54:00 177

原创 单例模式

单例模式是一种创建型设计模式,一个类只能创建一个对象,所以称为单例模式。那么该如何实现一个单例呢?首先需要将构造函数私有化,禁止在类外部实例化对象 其次在类内部定义创建唯一对象的方法,并使用private static final修饰 最后定义一个publicstatic静态方法提供访问单例对象的入口实现一:饿汉式...

2020-09-11 20:32:44 135

TCPView.zip

TCPView是一个查看端口和线程的小工具,静态表示端口和线程,使用方便,占用资源少,该软件是绿色软件不需要安装,下载完直接双击即可运行

2020-10-19

axis2-eclipse-service-plugin-1.6.2.zip

Axis2的eclipse插件,在使用eclipse开发Axis2 WebService时用于根据Java代码生成WSDL文档

2015-08-04

axis2-eclipse-codegen-plugin-1.6.2.zip

Axis2的eclipse插件,在使用eclipse开发Axis2 WebService时用于根据WSDL文档生成Java代码

2015-08-04

Extjs4.1.1(修改后的sdk.jsb3)

Extjs4.1中build下的sdk.jsb3里的路径配置都是错误的,所以集成到spket根本不能进行智能提示,这个是经过修复后的,只要替换掉build下的sdk.jsb3就可以了

2014-04-03

DbVisualizer7.0.6破解版

支持各种数据库的可视化编程工具,包含DbVisualizer 7.0.6绿色源文件件与破解文件,然后按照txt中的说明破解即可。

2014-03-18

lucene_4.2.1.CHM

Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。

2014-01-20

新版本php-5.4介绍

该文档介绍了新版本PHP5.4与PHP5.3的主要不同。

2013-04-15

smarty3中文手册

该文档是PHP模版引擎Smarty3的参考文档,介绍了有关模版设计和程序设计的相关知识。

2013-04-15

putty0.62.0.0.exe

Putty是一个免费的、Windows32平台下的telnet、rlogin和ssh客户端,但是功能丝毫不逊色于商业的telnet类工具。 用它来远程管理Linux十分好用。

2012-10-26

SSHSecureShellClient3.2.9

SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。S S H客户端适用于多种平台。几乎所有U N I X平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台—都可运行SSH。

2012-10-26

\WIN7、XP_远程桌面连接方法

本文详细的讲解了在Windows7和Windows XP环境下的远程桌面连接方法,包括Server端和Client端的设置方法。

2012-10-26

WIN7远程桌面连接方法

本文章详细的讲解了在Windows7环境下的远程桌面连接方法,包括Server端和Client端设置方法。

2012-10-26

cx_OracleTools

cx_Oracle Python 连接Oracle 数据库,需要使用cx_Oracle 包。下载的时候,注意版本,对不同版本的Oracle 和平台,都有不同的cx_Oracle。

2012-07-13

pywin32-217.win32-py2.6.exe

PythonWin 是一个优秀的Python 集成开发环境,在许多方面都比IDE 优秀。当然,如软件名称所示,这个工具是针对Win32 用户的

2012-07-05

pywin32-215.win32-py2.7.exe

PythonWin 是一个优秀的Python 集成开发环境,在许多方面都比IDE 优秀。当然,如软件名称所示,这个工具是针对Win32 用户的.

2012-07-05

MySQL-python-1.2.3.win32-py2.7.exe

MySQL-Python工具类库 这是Python 语言连接 MySQL 数据库的接口,MySQLdb为Python提供了MySQL支持

2012-07-03

boa-constructor-0.6.1.bin.setup.exe

Boa constructor只是一个“wxPython GUI Builder”,即wxPython图形界面构建器。

2012-07-03

Servlet 3.0

Servlet3.0的jar文件,可以下载直接加入到CLASS_Path环境变量,若用IDE则直接放入到WEB-INF/lib目录下,即可。

2012-05-04

quartz-1.6.0.jar

quartz是一个具有简单、易用的实现任务的自动调度的工具

2012-03-01

J2EE5.0API帮助手册.chm

J2EE5.0API帮助手册.chm 本文档是JAVAEE5.0帮助手册

2011-05-06

空空如也

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

TA关注的人

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