- 博客(25)
- 收藏
- 关注
转载 js 数组的操作
1、创建数组 var array = new Array(); var array = new Array(size);//指定数组的长度 var array = new Array(item1,item2……itemN);//创建数组并赋值 2、取值、赋值 var item = array[index];//获取指定元素的值 array[index] = value;//为指定元
2015-12-29 13:18:20
286
转载 【Linux学习】epoll详解
什么是epoll epoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epoll的相关
2015-11-04 17:23:17
319
转载 nginx架构解析
众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。 nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使nginx以单进程方
2015-11-04 16:57:41
319
转载 处理对象的多种状态及其相互转换——状态模式(一)
“人有悲欢离合,月有阴晴圆缺”,包括人在内,很多事物都具有多种状态,而且在不同状态下会具有不同的行为,这些状态在特定条件下还将发生相互转换。就像水,它可以凝固成冰,也可以受热蒸发后变成水蒸汽,水可以流动,冰可以雕刻,蒸汽可以扩散。我们可以用UML状态图来描述H2O的三种状态,如图1所示: 图1 H2O的三种状态(未考虑临界点) 在软件系统中,有些对象也像水一样具有
2015-10-19 17:32:54
432
转载 处理对象的多种状态及其相互转换——状态模式(二)
2 状态模式概述 状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客户端都可
2015-10-19 17:32:08
353
转载 处理对象的多种状态及其相互转换——状态模式(三)
3 完整解决方案 Sunny软件公司开发人员使用状态模式来解决账户状态的转换问题,客户端只需要执行简单的存款和取款操作,系统根据余额将自动转换到相应的状态,其基本结构如图4所示: 图4 银行账户结构图 在图4中,Account充当环境类角色,AccountState充当抽象状态角色,NormalState、OverdraftState和Rest
2015-10-19 17:31:29
338
转载 处理对象的多种状态及其相互转换——状态模式(四)
4 共享状态 在有些情况下,多个环境对象可能需要共享同一个状态,如果希望在系统中实现多个环境对象共享一个或多个状态对象,那么需要将这些状态对象定义为环境类的静态成员对象。 下面通过一个简单实例来说明如何实现共享状态: 如果某系统要求两个开关对象要么都处于开的状态,要么都处于关的状态,在使用时它们的状态必须保持一致,开
2015-10-19 17:30:44
364
转载 处理对象的多种状态及其相互转换——状态模式(五)
5 使用环境类实现状态转换 在状态模式中实现状态转换时,具体状态类可通过调用环境类Context的setState()方法进行状态的转换操作,也可以统一由环境类Context来实现状态的转换。此时,增加新的具体状态类可能需要修改其他具体状态类或者环境类的源代码,否则系统无法转换到新增状态。但是对于客户端来说,无须关心状态类,可以为环境类设置默认的状态类,而将状态的转换工作交给具
2015-10-19 17:30:01
371
转载 处理对象的多种状态及其相互转换——状态模式(六)
6 状态模式总结 状态模式将一个对象在不同状态下的不同行为封装在一个个状态类中,通过设置不同的状态对象可以让环境对象拥有不同的行为,而状态转换的细节对于客户端而言是透明的,方便了客户端的使用。在实际开发中,状态模式具有较高的使用频率,在工作流和游戏开发中状态模式都得到了广泛的应用,例如公文状态的转换、游戏中角色的升级等。 1. 主要优点
2015-10-19 17:29:22
871
转载 算法的封装与切换——策略模式(一)
俗话说:条条大路通罗马。在很多情况下,实现某个目标的途径不止一条,例如我们在外出旅游时可以选择多种不同的出行方式,如骑自行车、坐汽车、坐火车或者坐飞机,可根据实际情况(目的地、旅游预算、旅游时间等)来选择一种最适合的出行方式。在制订旅行计划时,如果目的地较远、时间不多,但不差钱,可以选择坐飞机去旅游;如果目的地虽远、但假期长、且需控制旅游成本时可以选择坐火车或汽车;如果从健康和环保的角度考虑,而且
2015-10-19 11:16:46
386
转载 算法的封装与切换——策略模式(二)
24.2 策略模式概述 在策略模式中,我们可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里,每一个封装算法的类我们都可以称之为一种策略(Strategy),为了保证这些策略在使用时具有一致性,一般会提供一个抽象的策略类来做规则的定义,而每种算法则对应于一个具体策略类。 策略模式的主要目的是将算法的定义与使用分开,也就是将算法的行为和环境分
2015-10-19 11:16:14
365
转载 算法的封装与切换——策略模式(三)
24.3 完整解决方案 为了实现打折算法的复用,并能够灵活地向系统中增加新的打折方式,Sunny软件公司开发人员使用策略模式对电影院打折方案进行重构,重构后基本结构如图24-2所示: 在图24-2中,MovieTicket充当环境类角色,Discount充当抽象策略角色,StudentDiscount、 ChildrenDiscount 和VIPDisc
2015-10-19 11:15:29
326
转载 算法的封装与切换——策略模式(四)
24.4 策略模式的两个典型应用 策略模式实用性强、扩展性好,在软件开发中得以广泛使用,是使用频率较高的设计模式之一。下面将介绍策略模式的两个典型应用实例,一个来源于Java SE,一个来源于微软公司推出的演示项目PetShop。 (1) Java SE的容器布局管理就是策略模式的一个经典应用实例,其基本结构示意图如图24-3所示: 【每次看到
2015-10-19 11:14:41
609
转载 模板方法模式深度解析(三)
4 钩子方法的使用 模板方法模式中,在父类中提供了一个定义算法框架的模板方法,还提供了一系列抽象方法、具体方法和钩子方法,其中钩子方法的引入使得子类可以控制父类的行为。最简单的钩子方法就是空方法,代码如下: [csharp] view plaincopy public virtual void Display()
2015-10-18 20:27:46
320
转载 模板方法模式深度解析(一)
1. 模板方法模式概述 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单、吃东西、买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单。在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满汉全席可大不相同,如图1所示: 图1 请客吃饭示意图 在软件开发中
2015-10-18 20:07:25
279
原创 正则 断言总结
总结: (? (? (?=exp) 它断言自身出现位置的后边能匹配表达式exp (?!exp) 它断言自身出现位置的后边不能匹配表达式exp
2014-08-27 11:36:04
289
原创 java.sql.SQLException: Value '0000-00-00 ' can not be represented as java.sql.Timest
MySql 数据库中的字段类型是timestamp的,默认为0000-00-00, 会发生异常:java.sql.SQLException: Value '0000-00-00 ' can not be represented as java.sql.Timestamp 解决办法: 给jdbc url加上 zeroDateTimeBeh
2014-08-12 17:51:10
341
原创 冒泡 选择排序 的java实现
import java.util.Arrays; public class Demo03 { public static void main(String[] args) { int[] arr={1,33,22,56,2,3536,7,9,0,4535}; System.out.println(Arrays.toString(arr)); //bubbleSort(arr); xua
2014-08-10 19:37:19
263
原创 Oracle 和 MySQL 分页
oracle 分页的原理 select ename,sal from (select ename ,sal ,rownum r from (select ename,sal from emp order by sal desc) where rownum where r>5 ; mysql分页 select ename ,sal fro
2014-08-10 19:35:49
295
原创 请求转发和重定向
请求转发和重定向 重定向response.sendRedirect(URL) 请求转发request.getRequestDispatcher(“URL”). forward(request,response) 地址栏改变,可以访问本web应用以外的资源 地址栏不改变,只能访问本web应用资源 整个过程发送两次请求 整个过程发送一次请求 不加 / 是相对本
2014-08-10 19:34:27
291
原创 java 代理模式
import java.lang.reflect.Proxy; A. 创建一个实现接口InvocationHandler的类,他必须实现invoke方法 B. 创建被代理的类以及接口。 C. 通过Proxy的静态方法newProxyInstance(ClassLoader loader,Class【】interfaces,InvocationHandler handler)创建一个代理 D
2014-08-10 19:33:02
258
原创 java 单例模式
单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 (Servlet类被设计成单例,被所有线程共享!) 单例模式的好处有三点: 1:控制实例产生的数量,达到节约资源的目的,有利于java垃圾回收 2:控制资源的使用,通过线程的同步来控制资源的并发访问 3:作为通信的媒介,也就是数据共享,他可以在不建立直接关联的情况
2014-08-10 19:32:12
278
原创 mybatis 映射文件中$ # 的区别
${} 为原样输出,你传什么,sql里就填入什么。比如有引号它也会原样填到sql里。 #{} 会使用 PreparedStatement,变量处用 ? 代替。 在能使用 #{} 尽量使用它吧,可以防止sql注入。
2014-08-10 19:28:37
661
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人