自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (5)
  • 收藏
  • 关注

原创 代理模式(Proxy Pattern)

定义为其他对象提供一种代理以控制对这个对象的访问。使用代理模式创建代理对象,让代理对象控制目标对象的访问(目标对象可以是远程的对象、创建开销大的对象或需要安全控制的对象),并且可以在不改变目标对象的情况下添加一些额外的功能。优点:1)代理模式能将代理对象与真正被调用的对象分离,在一定程度上降低了系统的耦合度。2)代理模式在客户端和目标对象之间起到一个

2015-11-19 08:55:27 438

原创 设计模式六大原则

1.  单一职责原则(Single Responsibility Principle)详情请参考:http://blog.csdn.net/zhengzhb/article/details/72781742.  里氏替换原则(Liskov Substitution Principle)里氏替换原则的内容可以描述为: “派生类(子类)对象能够替换其基类(超类)对象被使用。” 

2015-11-18 14:03:31 321

转载 设计模式中类的关系

在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence)         依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直

2015-11-18 12:03:43 232

原创 状态模式(State Pattern)

状态模式(State Pattern)是设计模式的一种,属于行为模式。定义(源于Design Pattern):当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。 意图:允许一个对象在其内部状态改变时改变它的行为

2015-11-18 11:58:18 319

原创 组合模式(Composite Pattern)

定义将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和使用具有一致性。优点:1. 组合模式可以很容易的增加新的构件。2. 使用组合模式可以使客户端变的很容易设计,因为客户端可以对组合和叶节点一视同仁。缺点:1. 使用组合模式后,控制树枝构件的类型不太容易。2. 用继承的方法来增加新的行为很困难。

2015-11-17 16:02:07 458

原创 迭代器模式(游标(Cursor)模式)

定义提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。迭代器模式(Iterator Pattern)依赖于一个名为迭代器的接口。一旦有了这个接口,就可以为各种对象集合实现迭代器:数组、列表、散列表……设计原则:一个类应该只有一个引起变化的原因。优点简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有序列表,我们尚可以通过游

2015-11-17 15:17:18 1949

原创 模板方法模式 Template Method

概念:定义一个算法的骨架,而将一些实现步骤延迟到子类中。   把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。优点:1)模板方法

2015-11-17 14:27:48 403

原创 编程式使用IoC容器过程

-----------------------------------------------------------------------------------------------------------------ClassPathResource res = new ClassPathResource("beans.xml");DefaultListableBeanFacto

2015-11-17 14:04:16 504

原创 spring中bean的创建

问题 1 : Bean 的创建时机bean 是在什么时候被创建的,有哪些规则?容器初始化的时候会预先对单例和非延迟加载的对象进行预先初始化。其他的都是延迟加载是在第一次调用getBean 的时候被创建。从 DefaultListableBeanFactory 的 preInstantiateSingletons 里可以看到这个规则的实现。问题二:Bean 的创建过程对于 b

2015-11-17 13:51:57 560

原创 IoC容器的初始化过程

1、BeanDefiniition的Resource定位BeanDefinition的资源定位由ResourceLoader通过统一的Resource接口来完成,这个Resource对各种形式的BeanDefinition的使用提供了统一接口。对于这些BeanDefinition的存在形式,相信大家都不会感到陌生。比如说,在文件系统中的Bean定义信息可以使用FileSystemResourc

2015-11-17 13:26:51 2420 1

原创 外观模式(Facade Pattern)或门面模式

Facade模式概述       实际应用中,我们在对付一些老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码(对于老旧code而言),我们还可能采用这样一种策略:重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接口,供上层应用使用。       这在某种意义上与Adapter及Proxy有类似之处,

2015-11-16 10:02:19 284

原创 适配器(Adapter)模式

定义将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。优点1、将目标类和适配者类解耦2、增加了类的透明性和复用性,将具体的实现封装在适配者类中,对于客户端类来说是透明的,而且提高了适配者的复用性3、灵活性和扩展性都非常好,符合开闭原则类适配器还有的优点:1、由于适配器类是

2015-11-16 09:49:22 286

原创 单例模式(Singleton Pattern)

定义:单件模式确保一个类只有一个实例,并提供一个全局访问点。单件模式常常被用来管理共享的资源,例如数据库连接或者线程池。主要优点:1、提供了对唯一实例的受控访问。2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。主要缺点:1、由于单利模式中没有抽象层,因此单例类的扩展有很大的

2015-11-16 09:30:11 254

原创 抽象工厂模式

优点:1、抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么被创建。2、当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。3、增加新的具体工厂和产品族很方便,无须修改已有系统,符合“开闭原则”。 缺点:增加新的产品等级结构很复杂,需要修改抽象工厂和所有的具体工厂类,对“开闭原则”的支持呈现倾斜性。

2015-11-16 09:29:27 270

原创 工厂方法模式

工厂方法模式,英文Factory method pattern,工厂方法模式是简单工厂模式的进化版,工厂方法模式是定义一个创建产品对象的工厂接口,工厂接口本身不去创建对象,而是交给其子类或者是其实现类去创建,将实际创建工作推迟到子类中进行详情请参考:http://www.cnblogs.com/zhangchenliang/p/3700820.html代码请参考:http://

2015-11-16 09:29:01 221

原创 简单工厂模式

简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。优点:工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创

2015-11-16 09:28:34 283

原创 装饰器模式(Decorator)

设计原则1、类应该对扩展开发,对修改关闭。特点:1、装饰对象和真实对象有相同的接口。这样客户端对象就可以以和真实对象相同的方式和装饰对象交互。2、装饰对象包含一个真实对象的引用(reference)。3、装饰对象接收所有来自客户端的请求,它把这些请求转发给真实的对象。4、装饰对象可以在转发这些请求之前或之后附加一些功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外

2015-11-16 09:27:49 272

原创 观察者模式

设计原则1、为了交互对象之间的松耦合设计而努力。优点:1、当两个对象之间送耦合,他们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计,让主题和观察者之间送耦合。主题所知道只是一个具体的观察者列表,每一个具体观察者都符合一个抽象观察者的接口。主题并不认识任何一个具体的观察者,它只知道他们都有一个共同的接口。2、观察者模式支持“广播通信”。主题会向所有

2015-11-16 09:27:13 475

原创 策略模式(Strategy Pattern)

设计原则1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。2、针对接口编程(实际上是针对超类编程),而不是针对实现编程。3、多用组合,少用继承。优点:1.利用组合、委托和多态等技术和思想,可以有效地避免多重条件选择语句2、提供了对开放—封闭原则的完美支持,将算法封装在独立的strategy中,使得它们易于切换,易于理解,易于扩展

2015-11-16 09:09:53 245

原创 命令模式

优点1、命令模式的封装性很好:每个命令都被封装起来,对于客户端来说,需要什么功能就去调用相应的命令,而无需知道命令具体是怎么执行的。比如有一组文件操作的命令:新建文件、复制文件、删除文件。如果把这三个操作都封装成一个命令类,客户端只需要知道有这三个命令类即可,至于命令类中封装好的逻辑,客户端则无需知道。2、命令模式的扩展性很好,在命令模式中,在接收者类中一般会对操作进行最基本的封装

2015-11-16 08:47:08 277

原创 JAR文件中的META-INF文件夹

根据官方的JAR file specification(), 一个典型的META-INF目录下可能包含如下几种文件或者子目录:  MANIFEST.MFINDEX.LISTx.SFx.DSAservices/META-INF 存在程序入口相关信息, 每个jar 都会有这个文件夹,里面的 MANIFEST文件 记录这些信息WEB-INF 使用web 项目

2015-11-13 13:07:41 6299

原创 play framework中plugins和enhancers

play.pluginsplay.CorePluginplay.data.parsing.TempFilePluginplay.data.validation.ValidationPluginplay.db.DBPluginplay.db.jpa.JPAPluginplay.db.Evolutionsplay.i18n.MessagesPluginplay.libs

2015-11-13 11:45:59 1038

原创 Java 热部署

何为热部署(hotswap)热部署是在不重启 Java 虚拟机的前提下,能自动侦测到 class 文件的变化,更新运行时 class 的行为。Java 类是通过 Java 虚拟机加载的,某个类的 class 文件在被 classloader 加载后,会生成对应的 Class 对象,之后就可以创建该类的实例。默认的虚拟机行为只会在启动时加载类,如果后期有一个类需要更新的话,单纯替换编译的 c

2015-11-13 11:23:12 1196

原创 秒杀系统架构设计

技术挑战1. 对原有业务形成冲击秒杀活动只是网站营销的一个附加活动,特点是:时间短、并发访问量大,如果和网站原有应用部署在一起,必然会对现有业务造成冲击。 解决方案:将秒杀系统独立部署,甚至使用独立域名,使其与网站完全隔离。2. 高并发下数据库、应用负载用户在秒杀开始前,通过不停刷新浏览器页面以保证不会错过秒杀,这些请求如果按照一般的网站应用架构,访问应用服务器、连

2015-11-13 10:14:49 3345 1

原创 mysql select in 按照in后面id的顺序读取数据

select * from table_name where id in ()的时候,MySQL会自动按主键自增排序,要是按给定的顺序来取,如何实现呢?select * from table_name where id in (122,1,5,323,23,1200) order by find_in_set(id, '122,1,5,323,23,1200')这样读取出来的顺序为 1

2015-11-10 13:13:19 3110

原创 轻松实现线程生命周期内的Session管理

/** * 借助Servlet2.3规范中新引入的Filter机制,轻松实现线程生命周期内的Session管理(关于Filter的具体描述,请参考Servlet2.3规范)。 * Filter的生命周期贯穿了其所覆盖的Servlet(JSP也可以看作是一种特殊的Servlet)及其底层对象。 * Filter在Servlet被调用之前执行,在Servlet调用结束之后结束。因此,在Filte

2015-11-06 10:38:22 463

原创 系统负载能力

一. 衡量指标用什么来衡量一个系统的负载能力呢?有一个概念叫做每秒请求数(Requests per second),指的是每秒能够成功处理请求的数目。比如说,你可以配置tomcat服务器的maxConnection为无限大,但是受限于服务器系统或者硬件限制,很多请求是不会在一定的时间内得到响应的,这并不作为一个成功的请求,其中成功得到响应的请求数即为每秒请求数,反应出系统的负载能力。

2015-11-06 09:48:57 544

原创 connection、HttpSession、hibernate中的session、transaction

connection和HttpSession的区别session(会话)和connection(连接)的定义:connection:是一个物理的概念,它指的是一个通过网络建立的客户端和专有服务器(Dedicated Server)或共享服务器(Shared Server)的一个网络连接,既是一条物理路劲。session:是一个逻辑的概念,它是存在于实例中,一个连接可以拥有多

2015-11-05 21:37:23 843

原创 where和having的区别

1、where是在分组前进行过滤,having是在分组后进行过滤2、where子句中不能有分组函数,having可以group by要点:group by子句中的字段可以不出现在select字句中如果使用了分组函数,或使用group by的查询:出现在select子句中的字段,要么出现在组合函数中,要么出现在  group by子句中

2015-11-02 21:21:51 265

原创 数据库三范式

1、必须要有主键,并且每个属性值都是不可再分的最小数据单元2、关系模型中的所有非主属性都完全依赖于主键3、非主关键字不能依赖于其他非主关键字,即非主关键字之间不能有函数(传递)依赖关系

2015-11-02 21:14:37 216

原创 OpenSessionInView的优缺点

优点:1、事务边界控制  2、懒加载缺点:事务和Session存在时间延长,对系统并发性有严重影响          如果Session长时间打开,会长时间占用内存和数据库连接

2015-11-02 20:22:24 716

原创 各个设计模式的优缺点

设计原则1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。2、针对接口编程(实际上是针对超类编程),而不是针对实现编程。策略模式(Strategy Pattern)优点:缺点:1.客户端必须知道所有的策略类,并自行决定使用哪一个策略类。      2.造成很多的策略类。详细请参考:http://www.cnblogs.com/mengd

2015-11-02 14:04:47 9449

原创 servlet处理的基本流程

1、客户端通过HTTP提出请求2、Web服务器接收该请求并将其发送给Servlet,如果这个Servlet尚未被加载,Web服务器将把它加载到Java虚拟机并执行它3、Servlet程序将接收该HTTP请求并执行某种处理4、Servlet会将处理后的结果向Web服务器返回应答5、Web服务器将从Servlet收到的应答发回给客户端

2015-11-01 15:35:31 502

原创 将字符串中符合规则的子串取出

1、将正则表达式封装成对象Pattern p = Pattern.compile(reg);2、让正则对象和药操作的字符串相关联Matcher m = p.matcher(str);3、关联后,获取正则匹配引擎4、通过引擎对符合规则的子串进行操作,如取出while(m.find()) {System.out.prinltn(m.group());System.out

2015-11-01 15:11:18 597

原创 TCP和UDP的区别

TCP1、建立连接,形成传输数据的通道2、在连接中进行大数据量的传输3、通过三次握手完成连接,是可靠协议4、必须建立连接,效率会稍低UDP1、将数据源和目的封装成数据包中,不需要建立连接2、每个数据包的大小限制在64k内3、因无连接,是不可靠协议4、不需要建立连接,速度快

2015-11-01 15:08:34 211

浏览器json插件

推荐一款比较好用的google浏览器json插件。。。。。。

2018-06-06

这就是搜索引擎-核心技术详解

关于搜索引擎的一本好书,强烈推荐,都是做搜索引擎的核心技术

2018-06-06

各种各样的java API

各种各样的java API,应有尽有。html,javascript,jquery,ajax,struts1,struts2,hibernate,spring.

2013-11-26

空空如也

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

TA关注的人

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