自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (9)
  • 问答 (1)
  • 收藏
  • 关注

原创 HashMap在java并发中如何发生死循环

        在多线程环境中,使用HashMap进行put操作时会引起死循环,导致CPU使用接近100%,下面通过代码分析一下为什么会发生死循环。      首先先分析一下HashMap的数据结构:HashMap底层数据结构是有一个链表数据构成的,HashMap中定义了一个静态内部类作为链表,代码如下(与本文无关的代码省略):   static class Entry&...

2015-09-06 15:38:22 477

Cube-web系统之Quartz+Spring实现任务监控管理

      Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现。作为一个优秀的开源调度框架,Quartz 具有功能强大,应用灵活,易于集成的特点       目前项目处于运维阶段中期,事情不多,所以有时间将自己用过的技术以及想要学习的技术整理一下,所以萌生一个自己做项目的想法,通过自己做项目将这些年使用的技术以及想要学习和深入了解...

2015-06-19 16:42:02 694

原创 Quartz+Spring 实现任务监控

Quartz是一个优秀的任务调度框架,完全基于Java实现,功能强大,易于集成,最近在写了一个小项目,算是对之前接触到的技术做一个总结吧,在这个项目中使用Quartz实现对任务的监控

2015-06-19 13:18:27 11672 19

原创 设计模式之责任链模式

责任链模式的定义如下:是多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它位置。责任链模式的通用类图如下:下面以《设计模式之禅》中的例子说明一下,中国古代对父母制定了“三从四德”的规范,所谓“三从”指“未嫁从父,既嫁从夫,夫死从子”,下面就用责任链模式来说明一下“三从”,加入

2015-06-08 19:07:12 424

原创 设计模式之命令模式

命令模式的定义如下:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供撤销和恢复功能命令模式的通用类图如下:通过类图可以看到命令模式主要涉及到三个角色Receiver接收者角色,命令传到这里是应该被执行的Command命令模式,需要执行的命令都在这里定义Invoker调用者角色,接收到命令并执行命令

2015-06-06 09:32:06 333

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

中介者模式定义:用一个中介者对象封装一系列的对象交互,中介者使各个对象不需要显示的相互作用,从而达到解耦的效果,而且可以独立的改变它们之间的交互中介者模式的通用类图如下:代码如下:/** * 抽象同事类 * */public abstract class Colleague { protected Mediator media

2015-06-04 13:07:04 344

原创 设计模式之原型模式

原型模式定义如下:用原型实例指定创建对象的种类,别且通过拷贝这些原型创建新的对象原型模式的通用类图:原型模式的有点:1.性能优良原型模式是在内存中二进制流的拷贝,比直接new一个对象性能好很多2.逃避构造函数的约束原型模式直接在内存中拷贝,不会执行构造函数原型模式的使用场景1.资源优化的场景类初始化需要消耗很多资源2.

2015-06-03 16:18:36 373

原创 设计模式之建造者模式

建造者模式又叫生成器模式,定义如下:将一个复杂对象的构造与它的表示分离,是的同样的构建过程 可以创建不同的表示建造者模式的通用类图如下:代码如下:public abstract class Bulider { // 设置产品的不同部分,即组装产品 public abstract void setPart(); // 返

2015-06-01 10:45:27 383

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

模板方法模式定义如下:定义一个操作中的算法框架,而将一些步骤的逻辑实现延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些逻辑。模板方法通用类图如下:模板方法是一个很简单的实现模式,相信大家在写代码的过程中也遇到过或者自己写过,只是可能不知道其实那就是模板方法模式,模板方法模式核心就是使用java的继承机制,将某些步骤的逻辑交由子类去实现。

2015-05-31 10:59:31 472

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

刚看到抽象工厂模式,发现抽象工厂模式是很想的,抽象工厂模式定义如下:为创建一组相关或相互依赖的对象提供一个接口,而且不需要指定它们的具体类抽象工厂模式的通用类图如下:每一个模式都是针对一定问题的解决方案。抽象工厂模式与工厂方法模式的最大区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则需要面对多个产品等级结构下面用一个汽车制造

2015-05-30 09:02:17 506

原创 EXT的奇妙之旅

初次知道EXT还是通过看一个同事以前做的项目,当时他们用EXT做了一个桌面版的系统,看到就一下被吸引了,心想:"原来WEB办也可以做的这么酷",后来就买了一本有关EXT的书学习,发现EXT有好多面向对象的设计,给我的感觉就是每个JS文件就详单与Java中的类文件一样,学了一段时间之后就想着尝试自己做一个系统玩玩儿,做了一段时间发现,EXT其实还是挺难学的,后来就一直希望能在自己的项目中应用,但是一

2015-05-29 13:42:20 1325

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

工厂方法模式使用的频率非常高,在我们的日常开发中总能见到,也许你一直在使用但是却不知道其实他的名字叫工厂方法模式。工厂方法模式的定义如下:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法的通用类图如下:  工厂方法模式的通用代码如下:public abstract class Creator { publi

2015-05-29 10:49:42 351

原创 设计模式之单例模式

前段时间看了《设计模式之禅》这本介绍设计模式的书,感觉讲的挺好,最起码给我的感觉是很通俗易懂,相信大家也都学过一些设计模式,设置是为了准备面试而特意去网上查了一些有关设计模式的资料,看完这本书本来是决定每天至少写一篇关于博客的,目的就是讲自己学到的东西做一个整理,但是由于中间各种原因,没有坚持下来,翻看自己的博客,发现几篇文章还是14年写的,很是惭愧,今天决定每天发表一篇博客,主要是对自己学到的东

2015-05-28 15:27:37 420

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

观察者模式也叫发布订阅模式,它是一个在项目中经常使用的模式,定义如下: 定义对象间一种一对多的依赖关系,是的每当一个对象改变状态,所有依赖它的对象都会得到通知并被自动更新 观察者模式通用类图:  通过类图看到观察者模式涉及到如下四种角色:1.Subject 被观察者定义被观察者必须实现的职责,它必须能够动态增加、取消观察者。它一般是抽象类或是实现类,仅仅作为...

2015-04-08 14:01:17 152

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

适配模式的定义如下:将一个类的接口转换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一个工作 适配器模式在生活中还是很常见的,比如你的笔记本上的电源适配器,可以使用在110-220V之间变化的电源,而笔记本还能正常工作 适配器模式的通用类图: 从类图中可以得知适配模式主要设计到三个角色:1.Target目标角色该角色定义把其他类...

2015-04-03 11:49:31 217

原创 设计模式之策略模式

策略模式就是定义一组算法,将每个算法都封装起来,并且是他们之间可以互换  通过类图可以知道,策略模式设计到如下三个角色1.Context封装角色它也叫上下文角色,其作用就是用来封装高层模块对策略的直接访问,封装可能存在的变化 2.Strategy抽象策略角色策略的抽象,定义每个算法或策略必须具有的方法和属性 3.ConcreteStrategy 具体策略...

2015-03-20 17:05:55 140

原创 设计模式之装饰者模式

        装饰者模式又叫包装模式,定义如下:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰者模式相比生成子类来说更为灵活。  装饰者模式的类图如上:从图中可以看到装饰着模式涉及到四个角色:1.抽象构件角色ComponentComponent可以是一个接口或者抽象类,主要是定义一些规则2.具体构件角色ConcreteComponentConcrete...

2015-03-19 14:47:38 134

原创 设计模式之责任链模式

责任链模式是一种对象的行为模式。在责任链模式里,使多个对象都有机会出来请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求。           责任链模式的显著优点就是讲请求和处理分开,请求者可以不用知道是谁处理的,处理者可以不用知道请求的全貌,责任链的一个显著缺点就是性能问题,因为每个请求都是从链头遍历的到链尾,特别是在链比较...

2015-03-18 14:36:27 114

原创 设计模式之命令模式

        命令模式是一个高内聚的模式,其定义如下:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录日志,可以提供命令的撤销和恢复功能。 命令模式的通用类图如下:          命令模式是对命令的封装,命令模式把发出命令的责任和执行命令的责任分开,委派给不同的对象。每一个命令都是这样一个操作:请求一方发出要求执行一个操作,接收的一方...

2015-03-17 16:35:08 139

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

        中介者模式又叫调停模式,定义如下:用一个中介者对象封装一系列的对象的交互,中介者使各个对象不需要显示的相互作用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 通用类图如下:  从图中可以看到,中介者模式由一下几部分组成:1.抽象中介者模式Mediator抽象中介模式定义统一的接口,用于各同事角色之间的通信 2.具体中介者模式Concr...

2015-03-16 14:23:38 135

原创 设计模式之原型模式

原型模式是一种创建型的模式,原型模式的简单程度仅次于单例模式和迭代器模式,正是由于简单,使用的场景非常多。  通过原型模式的通用类图可以看到,其实原型模式的核心就是一个clone方法,通过该方法实现对象的拷贝。 原型模式的优点:1.原型模式是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量对象时。2.规避构造方法的约束,因为原型模式是...

2015-03-16 09:19:02 146

原创 代理模式之动态代理

     为什么叫动态代理呢?动态代理就是实现阶段不用关心代理谁,而是在运行阶段指定代理哪一个对象,相对来说自己写代理类的方式都是静态代理,现在有一个非常流行的框架Spring,当我们面试的时候一般都会问Spring有哪些特征,我们一般会说AOP、IOC,其实这里的AOP即面向横切面变成的实现原理就是动态代理。 接着上次小明找游戏代理说,看看使用动态代理如何实现小明找代练的场景: 与...

2015-03-14 20:08:48 103

原创 设计模式之代理模式

代理模式是一种使用率非常高的模式,定义如下:为其他对象提供一种代理以控制这个对象的访问。  从通用类图中可以看出代理模式涉及到三个类:1.Subject抽象主题角色抽象主题类可以是抽象类也可以是接口,上面的类图使用的抽象类 2.具体主题角色也可以称为被委托角色,是业务逻辑的具体执行者 3.Proxy代理角色它负责对真是角色的应用,把所有抽象的主题类定...

2015-03-13 14:04:56 66

原创 设计模式之建造者模式

将一个复杂的对象创建与它的表示分离,是的同样的构建过程可以创建不同的表示。 通用类图如下:  建造模式中主要有如下四个角色:Prodct产品类:产品便是建造中的复杂对象 抽象建造者:给出一个或多个抽象接口,规范产品的组件,有子类实现具体组建方法 具体建造者:通常是实现了抽象建造者的方法,并且返回一个组建好的对象 Director导演类...

2015-03-12 21:27:20 150

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

        模板方法模式的定义:定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 模板方法的通用类图   我们所说的模板方法指的就是抽象类中的templete方法,该方法实现对doSomething方法的调用并且这个方法的具体实现是交由子类实现的。 模板方法的具体应用,比如我们开发的系统需要解...

2015-03-11 21:05:31 99

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

       抽象工厂模式是工厂方法模式的升级,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方法。 抽象工厂的通用类图  抽象工厂模式使用于多个业务品种或者多个业务类型,即AbstractProduct存在多个实现类,拿生产手机为例。可以生产诺基亚(由于可以砸核桃所以破产了),苹果、三星、小米、华为、锤子等,类图如下:  将...

2015-03-10 14:49:47 117

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

        最近一直在看设计模式相关的书籍,决定正确每天将自己学到的设计模式以及自己的理解写成博客,供大家参考和点评,主要目的还是对自己的学习做一下总结。         最近看到一本设计模式的书籍《设计模式之禅》已经通读一遍,现在是第二遍阅读,感觉作者对设计模式的讲解很通俗易懂,通过对这本书的学习也加深自己对java框架方面的理解,java框架上又很多设计模式,以前上学的时候也学过设计...

2015-03-06 15:17:15 89

原创 设计模式之单例模式

什么是单例模式?单例模式就是一个类只能产生一个实例,如果控制一个类只能产生一个实例呢?我们在创建对象时一般都是使用new来产生对象即调用类的构造方法,如果将构造方法私有化那么就控制了外部类随意创建对象的能力。 所以单例的实现可以总结为:1.构造方法私有化2.类中含有一个本类型的静态的私有化的属性3.对外提供一个静态的返回本类型的静态方法 单例模式的实现分为懒...

2015-03-05 16:50:23 68

原创 区间合并

给定一组区间,合并所有重叠的间隔。例如:[1,3],[2,6],[8,10],[15,18]返回:[1,6],[8,10],[15,18]        解决思路:    首先我们需要创建一个区间类,类中属性为start和end并且实现排序,我们队排序后的区间类进行判断    例如区间类为A ,我们需要循环区间类集合,比较两个区间类A1,A2如果A1.st...

2015-03-01 18:50:00 112

原创 你真的理解java中的自动拆箱和自动装箱以及类型转换吗?

public class Test { public static void main(String[] args) { Integer a=1; Integer b=2; Integer c=3; Integer d=3; Integer e=321; ...

2015-02-10 11:10:28 153

原创 Mybatis批量插入数据到Oracel

最近项目中出现了一个功能存在性能问题,经过研究发现主要是出现在数据插入的时候,当时用的单条提交,发现性能极其差,因为项目中用的mybatis,所以考虑用批量提交的方式。 <!-- 批量提交 --> <insert id="batchInsertWithoutSeq" parameterType="java.util.List"> insert in...

2015-01-13 15:03:14 243

原创 java 类中的初始化顺序

public class InitObject { private int id; private String name; private static int age; public InitObject(){ System.out.println(id); System.out.println(na...

2014-08-22 13:14:43 83

原创 Struts2实现文件上传并显示实时进度

        基于浏览器的文件上传,特别是对于通过<input type="file">标签来实现上传的情况, 存在着严重的性能问题,因为用户提交了文件之后,在浏览器把文件上传到服务器的过程中,界面看上去似乎是静止的,如果是小文件还好些,如果不幸需要上传的 是几兆、几十兆甚至上百兆的文件,我相信那是一种非常痛苦的体验,我们中间的很多人应该都有过此种不堪的经历。      我们...

2014-08-15 16:48:52 174

java 静态语句块 构造快 构造器的初始化顺序

/* * * All Rights Reserved. */package com.thinkInJava.chapter05;public class Father { public Father() { System.out.println("Father"); } static { S...

2014-08-15 16:34:08 156

原创 java---静态语句块、构造语句块、构造器的初始化顺序

/* * * All Rights Reserved. */package com.thinkInJava.chapter05;/** * * * @version EBAS v1.0 * */public class Father { public Father() { System.out.println("Father"); }

2014-08-12 10:34:09 520

原创 java---求字符串中最长的重复子串

/** * 思路:"abdab" 拆分情况:1.ab abd abda abdab 2.bd bda bdab 3 da dab 4 ab 5 b * * @param str * @return */ public static String find(String str) { String reg;// 最大字符串

2014-08-08 17:04:42 1050

原创 java--ArrayList源码理解

public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serializable{ private static final long serialVersionUID = 8683452581122892189L; /**

2014-08-07 14:55:22 364

原创 设计模式之代理模式

代理模式是一种很常见的设计模式,他使用代理对象完成用户请求

2014-08-05 16:08:14 314

原创 Struts2实现文件上传并显示实时进度

我们为了改善用户界面,通常会在处理量大或者是网络速度较慢的时候,给用户显示一个处理进度,让用户心理有底,增强用户等待结果的耐心,以改善用户体验。为了达到这个效果,通常做法有两大类:简单等待和真实的处理进度,本文着重讨论第二种方法的实现。 1)简单的等待界面:这种做法之所以说简单,就是在用法发送了处理命令后,立即在页面的某个地方替换一个waiting的图片,比如一个转圈的GIF,一张Load

2014-07-18 09:48:20 3784 11

原创 java 想成中的Master-Worker模式

Master-Worker模式是常用的并行模式,他的核心思想是,系统由两类进程写作工作:Master进程和Worker进程。Master进程负责接收和分配任务,Worker进程负责处理子任务。当各个Worker进程将子任务处理完成后,将结果返回给Master进程,由Master进程进行汇总和归纳,从而得到系统的最终处理结果。

2014-05-28 13:05:34 459

quartz定时作业的应用

这是一个使用quartz实现的定时作业demo,可以应用到集群环境,同时有监控界面可以实时监控作业的执行状态并且可以修改作业的时间而不需要重启服务器,具体请看:http://firezhfox.iteye.com/blog/2220902

2016-08-24

重构_改善既有代码的设计(清晰版)

本书清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险

2015-03-11

Shiro与SSH集成的一个综合的例子

最近通过http://jinnianshilongnian.iteye.com/blog/2018398学习了一下shiro,感觉shiro确实不错,但是学习的时候,作者使用的是springMVC,而本人开始使用的是SSH,有些小失望,决心自己做一个Shiro和SSH集成的demo,供大家参考,由于本人工作时间紧,所以这个项目拖了将近一个月的时间,大体的权限管理已经实现了,只是部分修改和删除功能没有时间去写了,不过shiro的权限控制已经可以提现了,希望对大家有所帮助吧,尤其是使用SSH开发的人员。项目里面有完整的数据库文件

2014-09-13

Struts2+Spring+Maven+MongoDB

最近在学习MongoDB,结合一直在用的Struts2,Spring,Maven,搭建了一个框架

2014-05-12

dhtmlxscheduler 所需jar报

由于上传限制的原因,无法上传过大的文件,所以讲dhtmlxscheduler的代码和jar包分开上传,将下载的jar报放到scheduler-web\target\scheduler-web\WEB-INF下并且配好maven环境,数据库用的书mysql

2014-04-14

dhtmlxscheduler

最近在研究 dhtmlxscheduler想要做一个记账的web应用,目前实现了从数据库查询数据和添加数据

2014-04-14

Spring_Security-3.0.1_中文自学教程.pdf

Spring_Security-3.0.1_中文自学教程

2013-06-26

SSH+quartz实现的可动态配置时间规则的定时任务

主要实现quartz的时间规则的动态配置以及动态开启和关闭

2013-06-18

SwfUpload+ssh+easyui实现的文件上传

swfupload结合easyui以及ssh框架实现的文件上传,并且将文件的节本信息存到数据库中

2012-12-27

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

TA关注的人

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