- 博客(39)
- 资源 (12)
- 收藏
- 关注
原创 Redis 基本类型
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统string127.0.0.1:6379> set mykey somevalueOK127.0.0.1:6379> get mykey"somevalue"127.0.0.1:6379> 可以SET和GET命令来创建和检
2015-07-26 19:02:06 1040
原创 Java动态代理
代理,就是需要代理类和被代理类有相同的对外接口或者说成服务,所以代理类一般都必须实现了所有被代理类已实现的接口,因为接口就是制定了一系列对外服务的标准。 正因为动态代理有这样灵活的特性,所以我们在设计动态代理类(DynamicProxy)时不用显式地让它实现与真实主题类(RealSubject)相同的接口(interface),而是把这种实现推迟到运行时。
2015-07-26 18:51:28 565
原创 10 桥接模式(Bridge)
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。我们来看看关系图:先定
2015-07-07 19:30:06 558
原创 jQuery生成二维码
jQuery.qrcode type="text/javascript" src="jquery-1.3.2.min.js"> type="text/javascript" src="jquery.qrcode-0.12.0.min.js"> type="text/javascript"> $(function(){ $("#bcTar
2015-07-02 11:33:24 908
原创 生成条形码_jQuery_barcode
type="text/javascript" src="jquery-1.3.2.min.js"> type="text/javascript" src="jquery-barcode-2.0.1.js"> type="text/javascript"> $(function(){ $("#bcTarget").barcode("1234567890128
2015-07-02 11:14:23 7495
原创 9 外观模式(Facade)
外观模式是为了解决类与类之间的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例) package com.liubo.patterns.facade;/** * * @author l
2015-06-12 14:11:20 457
原创 8 代理模式(Proxy)
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法。先来看看关系图: /** * @
2015-06-12 14:11:14 469
原创 7 装饰模式(Decorator)
顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:public interface Sourceable { public void method(); } public clas
2015-06-12 14:11:08 354
原创 6 适配器模式(Adapter)
7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。其中对象的适配器模式是各种模式的起源首先来看适配器模式适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式, /** *
2015-06-12 14:11:01 369
原创 5 原型模式(Prototype)
原型模式是创建型的模式,思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。在Java中,复制对象是通过clone()实现的,先创建一个原型类 /** * 原型类 * * @author liubo */public class Prototype implements Cloneable { @Override
2015-06-12 14:10:55 570
原创 4 建造者模式(Builder)
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下: //接口public interface Sender {
2015-06-12 14:10:48 425
原创 3 单例模式(Singleton)
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了
2015-06-12 14:10:42 358
原创 2 抽象工厂模式(Abstract Factory)
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了 //接口public interface Sender { public void Send()
2015-06-12 14:10:37 408
原创 2 抽象工厂模式(Abstract Factory)
工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了 //接口public interface Sender { public void Send()
2015-06-12 14:10:26 397
原创 1 工厂方法模式(Factory Method)
普通工厂模式,传入参数,确定调用哪个多个工厂模式,静态工厂方法不静态主要使用静态工厂模式//接口public interface Sender{public void Send();} //实现类1public classMailSender implements Sender{public void S
2015-06-12 14:10:19 412
原创 Java与模式
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每
2015-06-12 14:10:13 401
原创 HashMap
list,map,set的区别(首先假定小猪都是同一个细胞克隆出来的)List=排成一长队的小猪Map=放在一个个,有房间号的屋子里面的一群小猪Set=一群小猪贴上号,然后赶到一个猪圈里Hashset 它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。LinkedHashSet定义了迭代顺序,即按照将元素插入到集合中的顺序(插入顺序)进行迭代。map
2015-06-12 14:10:07 344
原创 HashSet
构造方法由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素此实现不是同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这样的对象,则应该使用 Collections.syn
2015-06-12 14:10:02 402
原创 Java集合类
List、Set、Map是这个集合体系中最主要的三个接口。 其中List和Set继承自Collection接口。 Set不允许元素重复。HashSet和TreeSet是两个主要的实现类。 List有序且允许元素重复。ArrayList、LinkedList和Vector是三个主要的实现类。 Map也属于集合系统,但和Collection接
2015-06-12 14:09:58 411
原创 ArrayList
构造方法构造方法可以指定大小public ArrayList(int initialCapacity) 无参构造方法初始化是默认大小为 10public ArrayList() { this(10); } 注意,此实现不是同步的。如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须 保持外部同步。(结构上的修改是
2015-06-12 14:09:53 289
原创 Ant 学习笔记
http://ant.apache.org/ 下载zip包 ant,解压到 某个盘,比如D:\apache-ant-1.9.4配置环境变量 ,bin加入path,测试是否成功,则表示配置成功。初步使用 编写简单的build.xml(默认的,Ant会自动的在当前目录下去寻找这个文件,如果找的就去构建,如果找不到就会提示:build.xml does not exist!xml version="
2015-06-12 14:09:49 385
原创 java debug
调试视图:有条件的断点如果你仅仅对程序的某个部分感兴趣,调试视图是非常有帮助的。假设你想看看一个循环中的第十三次循环得到什么结果,或者你正在调试一个抽象父类,想看看某个具体的子类。你可以在调试视图设置条件,右键点击代码旁的蓝色断点符号,在弹出菜单中选择“Breakpoint Properties…”。你可以选择是在你的代码段返回真值是停止程序或者当你的代码段的值改变时停止。变量视图:显示逻辑结构(
2015-06-12 14:09:44 420
原创 redis.conf 解析
daemonize no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程pidfile /var/run/redis.pid当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定port 6379指定Redis监听端口,默认端口为6379# bind 127.0.0.1绑定的主机地址
2015-06-12 14:09:40 329
原创 jedis+java
package com.liubo.redis;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.junit.Before;import org.junit.Test;import redis.clients.j
2015-06-12 14:09:36 346
原创 eclipse 构建maven web工程
新建,maven project 下一步不要选择 create a simple project,下一步filter 输入webapp,选择webapp 下一步填写 group Id com.XX artifactId testXX ,package 可选 finish结构如图java视图下 ,javeEE错误原因The superclass "javax.servlet.http.Htt
2015-06-12 14:09:31 317
原创 centOs 开发环境,jdk,mysql,tomcat
0 、安装vsftpd[root@iZ23l4blvwxZ ~]# yum -y install vsftpd安装成功,设置开机启动 chkconfig vsftpd on,启动ftp服务 [root@localhost ~]# service vsftpd start停止服务:service vsftpd stop;重启服务:service vsftpd rest
2015-06-09 16:47:33 367
原创 centOs6.5_ftp服务器搭建vsftpd
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点1、以(root)身份执行以下命令yum -y install vsftpd2、设置开机启动vsftpd ftp服务chkconfig vsftpd on3、启动vsftpd服务service vsftpd start停止vsftpd:
2015-06-09 16:42:17 546
原创 centOs 安装redis,集群
1、[root@localhost liu]# wget http://download.redis.io/redis-2.8.21.tar.gz或者 wget http://download.redis.io/releases/redis-3.0.2.tar.gz2、解压 tar -zxvf redis-stable.tar.gz 3、查看是否安装
2015-06-09 16:37:31 415
原创 windows 下redis安装,使用
下载windows下安装包https://github.com/dmajkic/redis/downloads解压后复制 32 或者64 到文件夹 比如 D:\dev\redis打开一个cmd窗口,使用cd命令切换到指定目录(D:\dev\redis-2.4.5)运行 redis-server.exe redis
2015-05-08 09:25:59 557
原创 apache.commons.lang3_DateFormatUtils,RandomStringUtils
System.out.println(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));//output 2015-05-04 18:50:54System.out.println(DateFormatUtils.format(new Date(), "yyyy-MM-dd hh:mm:ss"));//output 2015
2015-05-05 11:50:29 1042 1
原创 js 日期转换 strToDate
//定义日期字符串var myStartStr = “2015-05-04 17:10:10” var myEndStr = “2015-05-04 17:10:10” var myStartDate = new Date(Date.parse(myStartStr.replace(/-/g, "/"))); var myEndDate = new Date(Date.parse(myEn
2015-05-04 17:22:46 1936
原创 验证码生成 点击刷新 ajax校验
页面文件<% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";%> "> My JSP
2013-05-30 10:50:55 854
原创 bat命令 实践
1. 调用其他程序时,对文件的大小写不敏感,文件后缀也可忽略 如:start LeapFTP.exe 与 start leapftp 效果一样,都是运行“LeapFTP.exe”文件 每行的开头的字符串会自动查找程序来运行,还可用双引号引起来(文件名或目录名含空格时必须用) 如:"D:\Program Files\Leap FTP.exe"
2013-05-29 17:01:03 690
原创 bat批处理学习
基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。 2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。 3.批处理的编程能力远不如C语言等编程语言,也十分不规范。 4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到
2013-05-29 16:51:50 922
原创 Mysql定期自动备份
@echo off ::@author liubo:: ------- 配置项 ------- :: 要执行的文件名 set FILE=back.bat :: 计划频率类型 set FREQUENCY=DAILY :: 频率,与上面的计划频率类型对应 set MODIFIER=2:: 该计划执行的时间(24 小时制) set DATETIME=00:30:00 ::
2013-05-29 11:41:21 535
原创 inno setup打包应用程序
使用创建向导生成脚本#define MyAppName "back"#define MyAppVersion "1.5"#define MyAppPublisher "我的公司"#define MyAppURL "http://www.example.com/"#define MyAppExeName "MyProg.exe"[Setup]; 注: AppId的值为单独标识
2013-05-29 11:35:57 625
原创 Extjs4 图片上传 预览
Ext.require([ 'Ext.form.*']);var img_reg = /\.([jJ][pP][gG]){1}$|\.([jJ][pP][eE][gG]){1}$|\.([gG][iI][fF]){1}$|\.([pP][nN][gG]){1}$|\.([bB][mM][pP]){1}$/;var currentpath ='';Ext.define('IMS.vi
2013-05-24 18:09:35 4618 3
jQuery二维码,条形码生成实例
2015-07-02
Sublime_Text_3.7 内附破解
2013-05-29
myeclipse pro 2013破解文件
2013-05-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人