- 博客(39)
- 资源 (10)
- 收藏
- 关注
原创 大话设计模式—备忘录模式
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。很多时候我们总是需要记录一个对象的内部状态,这样做的目的就是为了允许用户取消不确定或者错误的操作,能够恢复到他原先的状态,使得他有”后悔药”可吃。大
2016-03-30 20:51:39 2183
转载 Oracle数据库三种备份方案
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、 导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。 1、 简单导出数据(Export)和导入数据(Import) Oracle支持三种方式
2016-03-30 11:50:16 10151
转载 【定时任务】quartz表达式Cron Expression解析
每个月的第5天和第20天的上午8点到10点执行,每隔半小时执行一次,上午10:00不会执行 cron 表达式的格式Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。 在 U
2016-03-30 11:42:51 3103
原创 大话设计模式—适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。主要解决在软件系统中,常常要将一些”现存的对象”放到新的环境中
2016-03-29 19:47:37 6268
转载 java就业指导
今天逛CSDN论坛,看到一篇大神的文章,对于从事java开发所涉及的专业知识和技能罗列的很详细,对于系统学习有一定的指导作用,转载如下:Java就业指导 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊的东西,你可以把这些内容写到你的简历中,当然更需要的是你在面试的时候
2016-03-28 20:43:29 1358
原创 大话设计模式—状态模式
在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。大话设计模式中程杰老师给出的定义是,状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移
2016-03-28 20:26:40 2404 1
原创 大话设计模式—观察者模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。主要解决一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。大话设计模式中程杰老师对观察者模式的定义是,观察者模式:定义对象间的一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变
2016-03-27 22:57:41 2899 1
原创 详解事件和委托
委托委托实质上是一个类,是对方法/函数的封装,是一种引用方法的类型,可以当作给方法的特定特征指定一个名称。委托内部有三个重要成员:目标,方法,前一个委托。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托对象使用关键字delegate来声明。普通代码里这样调用方法: aBird.Fly();封装到委托里,aBird 就是目标,Fly 就是方法。委托可以组成链,“前一个委托”用于支持这种链式
2016-03-27 21:06:36 975
原创 大话设计模式—建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。主要用于解决在软件系统中,有时候面临着”一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面
2016-03-27 11:13:48 2868 1
原创 大话设计模式—外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。主要用于解决降低访问复杂系统的内部子系统时的复杂度,简化客户端与之的接口。大话设计模式中程杰老师给出的定义是:外观模式:为子系统
2016-03-26 19:31:45 1477
原创 大话设计模式—模板方法模式
在模板方法模式(TemplateMethod Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。大话设计模式中程杰老师给出的定义是:模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。有一个经常用到
2016-03-26 13:47:24 2205
原创 大话设计模式—装饰模式
装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。大话设计模式中程杰老师给出的定义,装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活。装饰模式结构图如下:
2016-03-26 09:21:17 2967 1
原创 JS判断当前的浏览器类型
<script type="text/javascript"> //window.navigator.userAgent.indexOf("MSIE")>=1 为ie浏览器。 //window.navigator.appName.indexOf("Microsoft") != -1 为ie浏览器。 //window.navigator.userAgent.indexOf(
2016-03-24 00:22:24 795
原创 大话设计模式—策略模式
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。大话设计模式中程杰老师给出的定义是这样的:策略模式(Strategy),定义了算法家族,分别封装起来,让它们之间可以互相替换,从模式让算法的变化不会影响到使用算法的用户。面向对象编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是
2016-03-23 23:59:47 4697 2
原创 JavaScript动态设置table的高度
这两天在调测系统的兼容性时遇到一个设置table高度的问题,页面功能很简单,就是页面中央一个文件,文件下方有一个保存按钮,文件内可以点击“添加项目按钮”来在该文件内增加表格数(这就意味着文件的高度随时可能发生变化)。现在的问题是IE显示正常,但是chrome中保存按钮框始终出现在文件的中央(真想偷懒设置一个定死的高度,呵呵,1365px,不要问我怎么知道,我没有这么 想过~_~)。最简单的动态设置t
2016-03-22 00:02:19 20676
原创 大话设计模式—中介者模式
中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。引言:尽管一个系统分割成许多对象通常可以增加其可复用性,但是对象间相互连接次数的增加又会降低其可复用性;大量的连接使得一个对象不可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的
2016-03-21 23:38:15 2229 3
原创 浏览器兼容性问题汇总及解决方案
最近一直在调测系统在各个浏览器的兼容性问题,真是让人抓狂啊,我最爱的Firefox竟然还是出问题最多的,好伤心……把碰到的问题和查到的一些资料总结一下写在这里,一方面方便自己以后使用,另一方面希望对遇到相似问题的可怜的人儿有帮助。所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站...
2016-03-21 22:28:28 8500
原创 设计模式六大原则
设计模式六大原则(1):单一职责原则定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障
2016-03-19 21:24:31 1523
原创 大话设计模式—代理模式
在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。我们创建具有现有对象的对象,以便向外界提供功能接口。大话设计模式中程杰老师的给出的解释是代理模式:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安
2016-03-19 18:35:17 1884
转载 深复制VS浅复制(MemberwiseClone方法介绍)
MemberwiseClone方法,属于命名空间System,存在于程序集 mscorlib.dll中。返回值是System.Object。其含义是:创建一个当前object对象的浅表副本。MSDN中的官方解释是:MemberwiseClone 方法创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制
2016-03-18 22:35:11 2711
原创 大话设计模式—原型模式
原型模式(Prototype Pattern),用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象;即用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一
2016-03-18 00:00:37 1665
原创 大话设计模式—单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式:1、保证一个类仅有一个实例,并提供一个访问它的全局访问点; 2、当一个全局使用的类
2016-03-17 21:33:21 1984
原创 Class.getResource()、ClassLoader.getResource()和this.class.getClassLoader()解析
一、this.class.getClassLoader();二、Class.getResource();三、ClassLoader.getResource();
2016-03-16 21:35:26 13306
原创 (二)html5中的属性
1、全局属性所谓全局属性,是指可以对任何元素都使用的属性;(1)contentEditable属性contentEditable属性的主要功能是允许用户编辑元素中的内容,所以该元素必须是可以获得鼠标焦点的元素,而且在点击鼠标后要向用户提供一个插入符号,提示用户该元素中的内容允许编辑。contentEditable属性是一个布尔值属性,可以被指定为true或false。除此之外,该属性还有一个隐藏in
2016-03-15 15:14:42 1740
转载 java中的==、equals()、hashCode()源码分析
在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。1. ==java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码:public class ComAddr{ public static void main(String[] args) throws Exception { String s1 = "
2016-03-14 13:27:32 1468
原创 【Redis学习】Redis管理命令总结
1、键管理之前通过对五种数据类型的操作命令的学习发现,Redis在对每种数据进行处理之前,都要先指定该数据的key,然后再指定对该数据进行何种操作。Redis中的key有点类似于Java中的变量名。对某个数据的处理都是以key作为切入点。所以Redis把key作为单独的处理对象抽象出了一套操作命令。key可以想象成一个指向实际数据的指针,对key的操作会直接影响它所指向的数据的状态。127.0.0.
2016-03-14 13:16:22 1081
转载 【Redis学习】Redis数据类型及存储结构
Redis支持五中数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及zset(sortedset:有序集合)。Redis定义了丰富的原语命令,可以直接与Redis服务器交互。实际应用中,我们不太会直接使用这些原语命令,Redis提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,
2016-03-14 12:47:22 1189
原创 【深入理解JVM】JVM内存模型
JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。1、程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于Java 虚拟机的多线程是通过线程轮流切换并分配处理
2016-03-14 12:37:44 609
转载 【深入理解JVM】Java类文件的基本结构
Java类文件(.class文件)是一个为已编译Java程序仔细定义的格式。Java源代码被编译成能够被任何JVM加载和执行的类文件。在被JVM加载之前,类文件可能是由网络传输而来。类文件是独立于底层平台的,所以适用于更多的地方。它们由简洁的JVM字节码组成,这样就能轻装上阵。类文件常常被压缩,以极快的速度通过网络,到达世界各地的JVM。类文件里有什么?Java类文件包含JVM需要知道的关于一个Ja
2016-03-13 22:55:59 710
原创 【深入理解JVM】ClassLoader类加载机制
Java程序并不是一个原生的可执行文件,而是由许多独立的类文件组成,每一个文件对应一个Java类。此外,这些类文件并非立即全部装入内存的,而是根据程序需要装入内存。ClassLoader专门负责类文件装入到内存。在class文件中描述的各种信息,最终都需要被加载到虚拟机中之后,才能被运行和使用。虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换,解析和初始化,最终形成可以被虚拟机
2016-03-13 22:53:59 2446
原创 【Redis学习】Redis的安装、管理、适用场合以及使用
1、Redis概述我们知道,内存是电脑主板上的存储部件,用于存储当前正在使用的数据和程序,CPU可以与内存直接沟通,所以访问速速非常高;而外存数据必须加载到内存以后程序才能使用。如果把CPU当做一个吃货,那么内存是碗,而外存是锅,这个吃货再能吃,也得先把饭从锅里盛到碗里再下嘴,而不能直接跳到锅里大快朵颐。但是很多时候CPU吃的并不爽,一是因为碗不够大,没吃两嘴就没了;二是从锅里往碗里盛饭是个比较耗时
2016-03-13 22:37:57 663 2
转载 【深入理解JVM】JVM字节码指令集
Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(Opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(Operands)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。如果忽略异常处理,那 Java 虚拟机的解释器使用下面这个伪代码的循环即可有效地工作:do{ 自动计算PC寄存器以及从PC寄存器的位置取出操作码; if(存在操作数)取出操作数; 执行操
2016-03-13 22:27:46 1654 1
原创 【深入理解JVM】JVM概述
1、什么是JVMJVM全称是Java Virtual Machine(java虚拟机)。它之所以被称之为是“虚拟”的,就是因为它仅仅是由一个规范来定义的抽象计算机。我们平时经常使用的Sun HotSpot虚拟机只是其中一个具体的实现(另外还有BEA JRockit、IBM J9等等虚拟机)。JVM的设计目标是提供一个基于抽象规格描述的计算机模型,为解释程序开发人员提供很好的灵活性,同时也确保Java
2016-03-13 22:18:15 1405 1
原创 【Spring MVC学习】spring mvc入门示例
之前进公司就直接使用spring mvc做项目了,并没有系统学习过,后来再回头去总结的时候发现我只是在项目中会使用,但是有关spring mvc的配置,还有注解什么的想起来会感觉很混乱,趁着这几天不忙,好好地系统学习总结一下spring mvc。本文只是描述了如何创建一个简单spring mvc工程,有关spring mvc注解的内容请参看本人的另外一篇文章:http://blog.csdn....
2016-03-13 21:31:08 1157 1
原创 【Spring MVC学习】详解spring mvc 3.0常用注解
Spring mvc的注解功能1、@Controller——表示控制器举例:@Controllerpublic class SoftCreateController extendsSimpleBaseController {}或者:@Controller("softCreateController")说明: @Controller负责注册一个bean到spring...
2016-03-13 20:13:41 1569 3
原创 JavaScript实现表单的分向提交
在一般情况下,同一个表单只能被提交给同一个地址。但在实际web应用中,我们希望同一个表单可以根据用户的选择来完成不同的操作,即表单的分向提交。比如说:在一个网站后台用户管理系统中,我需要对一些恶意的用户进行批量解锁,锁定用户或者删除的操作,当我选择删除会员时,我们希望表单会提交给能进行删除的处理程序,当我选择锁定会员时,我们希望表单会提交到锁定会员的处理程序,解锁会员也如此。我们极不愿意看到分别为这
2016-03-09 21:28:43 1016 1
原创 DocumentHelper和SAXReader解析XML字符串
最近在看湖北中烟OA门户的项目,中烟门户里面解析XML文档使用的是DocumentHelper,之前做的智能导航项目里面解析XML使用的是SAXReader,很好奇它们有什么区别,于是就查资料将两者的用法简单总结了一下。SAXReader用法示例package com.eway.signature.action;import java.io.FileInputStream;import java.
2016-03-08 19:59:58 14273 2
原创 轻量级的日期时间控件Pikaday
今天看到一个网友分享的一篇文章,有关轻量级的日期时间控件Pikaday,感觉很实用。在这里总结一下,方便日后使用。因为之前也遇到过类似的问题,My97datepicker插件样式过于老旧,但又没有其它更符合要求的日期时间插件。Pikaday插件的样式跟Bootstrap类似,简洁美观。如下图所示:在线演示地址:http://www.travisup.com/demo/plugins/pikaday/
2016-03-03 22:12:16 2469
可直接导入eclipse的spring源码
2016-04-03
常见浏览器兼容性问题汇总及解决方案
2016-03-21
轻量级的日期时间控件Pikaday
2016-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人