- 博客(79)
- 资源 (36)
- 收藏
- 关注
原创 Java设计模式(十一):外观模式(门面模式)Facade
1.概念为子系统中的一组接口提供一个统一接口。Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用。2.UML3.代码下面是一个具体案例的代码:package com.iter.devbox.facade;/** * 子系统角色中的类 * @author Shearer * */public class M
2016-06-01 18:00:52
667
原创 Java设计模式(十):装饰者模式Decorator
装饰者模式:动态地将责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为装饰者包含一个超类的对象,这样,可以在被装饰者行为前或者行为后加上新的行为,甚至取代原有的行为装饰者会使程序中出现很多小类,增加使用难度使用场景:对象由主体+许多可选的部件或者功能构成,使用继承或者接口会产生很
2016-06-01 17:53:07
618
原创 Java设计模式(九):组合模式composite
package com.iter.devbox.composite;import java.util.ArrayList;import java.util.List;/** * 抽象构件 * @author Shearer * */public interface AbstractFile { void killVirus(); //杀毒}class ImageFile
2016-05-29 13:32:00
568
原创 Java设计模式(八):桥接模式bridge
桥接模式核心要点:处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。假设现在有这样的分类:电脑 --- 联想电脑,戴尔电脑,神州电脑 --- 台式机,笔记本 --- 联想台式机,联想笔记本如果用继承的关系,类会特别多,增加品牌或者电脑类型也不好扩展。于是我们把它用三个维度划分。电脑 --- 品牌 --- 类型
2016-05-28 23:06:37
594
原创 Java设计模式(七):代理模式Proxy(静态代理模式+动态代理模式)
静态代理package com.iter.devbox.staticProxy;public interface Star { public void sing();}package com.iter.devbox.staticProxy;public class RealStar implements Star { @Override publi
2016-05-27 21:53:19
608
原创 Java设计模式(六):适配器模式Adapter
什么是适配器模式? 将一个类的接口转换为客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。模式中的角色目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。需要适配的类(Adaptee):需要适配的类或适配者类。适配器(Adapter):通过包装一个需要适配的对象,把原
2016-05-27 19:40:40
844
原创 Java设计模式(五):建造者模式Builder
场景我们要建造一个复杂的产品。比如:神舟飞船、iphone。这个复杂的产品的创建,有这样一个问题需要处理:装配这些子组件是不是有个步骤问题?实际开发中,我们所需要的对象构建时,也非常复杂,有很多步骤需要处理时。建造者模式的本质分离了对象子组件的单独构建(由Builder来负责)和装配(由Director)来负责。从而可
2016-05-27 19:04:16
434
原创 Java设计模式(四):原型模式深拷贝的两种实现方式,以及和new对象的性能测试对比
如果需要短时间创建大量对象,并且new的过程比较耗时,则可以考虑使用原型模式。而采用clone的方式,相比序列号的方式,更高效。只不过,如果类中有成员变量是引用类型,也要一起进行clone!
2016-05-26 17:44:13
2032
原创 Java设计模式(四):原型模式Prototype
原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.原型模式中的拷贝分为"浅拷贝"和"深拷贝":浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的
2016-05-25 22:45:13
487
原创 Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
简单工厂模式package com.iter.devbox.factory.simplefactory;public interface Car { public void run();}package com.iter.devbox.factory.simplefactory;public class Audi implements Car { public void ru
2016-05-23 17:39:46
562
原创 Java设计模式(二):单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
这段时间从头温习设计模式。记载下来,以便自己复习,也分享给大家。package com.iter.devbox.singleton;/** * 饿汉式 * @author Shearer * */public class SingletonDemo1 { // 类的静态成员变量只初始化一次,天然是线程安全的 private static final Singlet
2016-05-23 12:14:59
2173
1
原创 Java设计模式(一):单例模式,防止反射和反序列化漏洞
一、懒汉式单例模式,解决反射和反序列化漏洞package com.iter.devbox.singleton;import java.io.ObjectStreamException;import java.io.Serializable;/** * 懒汉式(如何防止反射和反序列化漏洞) * @author Shearer * */public class Singleto
2016-05-22 22:49:18
8530
7
原创 CentOS7安装iptables防火墙
CentOS7默认的防火墙不是iptables,而是firewalle.安装iptable iptable-service#先检查是否安装了iptablesservice iptables status#安装iptablesyum install -y iptables#升级iptablesyum update iptables
2016-05-02 21:07:41
609
原创 zookeeper集群的搭建
zookeeper版本: Release 3.4.8(stable)操作系统: [root@lena101 zookeeper]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) 我用的是三台虚拟机。查看IP地址: [root@lena101 zookeeper]# hostname -i三台虚拟机IP地址:
2016-05-02 20:53:34
1741
转载 11 Rules All Programmers Should Live By
From: http://simpleprogrammer.com/2015/03/16/11-rules-all-programmers-should-live-by/I am a person who tends to live by rules.Now granted, they are mostly rules I set for myself—but they are
2015-05-12 14:02:34
1168
原创 Learning how to learn: How to teach yourself。
Learning how to learn: How to teach yourself。10-step process:Steps 1–6: Do these onceStep 1: Get the big pictureStep 2: Determine scopeStep 3: Define successStep 4:
2015-05-12 11:30:01
851
原创 2014年,珍惜时间、好好把握!
今年是很重要的一年。之前经历了从java编程转C++游戏编程,去年因为个人朋友关系,又回到java的阵营。够折腾的!都是做技术。没有本质的区别。虽然工作离开了C++,喜欢的话,业余时间依然可以研究C++。人总该除了工作之外,有些别的非做不可的事(因为爱好)。磨练耐心。再棘手的问题,多查阅与研究,总有解决的办法。java领域的各种框架也好,工具也好,会使用是初级程序员的级别。作为想做
2014-03-04 19:52:46
856
原创 primefaces4 翻页时更新分页footer,totalRecords的更新
datatable 分页时发现,两个浏览器,其中一个添加数据后,另外那个翻到另一页,表格的内容变了,新增的数据有显示,但是总记录数没有更新,以致总页数不会更新。找了一天,才找到解决办法。 <p:dataTable var="recipe" value="#{recipeBean.model}" filterEvent="enter" rowKey="#{recipe.i
2014-03-04 19:38:01
3762
原创 JSF + Primefaces表单验证
正则表达式匹配为空或者正整数: ^([0-9]{1}|[1-9]{1}[0-9]{0,}|)$如果是表单做了值绑定,最好是绑定的字符串类型,否则可能被转化器将空字符串以null返回。 <p:dialog header="广告修改" widgetVar="updateDlg" resizable="true" height="400" width="600" show
2013-12-26 15:35:59
7689
转载 java将IP地址转换为数字以及逆向转换(位运算和0xFF的使用)第二季
原文:http://www.mkyong.com/java/java-convert-ip-address-to-decimal-number/来自同一个博客。IP转为数字(第二种算法。用左移、按位或实现。效率比上一篇的更高。): public long ipToLong(String ipAddress) { long result = 0; St
2013-12-11 14:44:48
19186
1
转载 java将IP地址转换为数字以及逆向转换(位移和0xFF的使用)
转载自:http://www.mkyong.com/java/java-and-0xff-example/public class BitwiseExample { public static void main(String[] args) { BitwiseExample obj = new BitwiseExample(); long ipAddressInLo
2013-12-10 15:09:01
2970
转载 5 Ways You can Learn Programming Faster
Learning to program isn't something you can do in an afternoon, but it doesn'thave to be a life's work, either. There arelots of things you can do to make it easier on yourself when you are learningto
2013-08-28 00:41:29
1063
原创 centOS中文支持问题,终于解决了。mark一下
这几个月离职学习C++,好忙。 Linux系统的编码问题之前也没时间解决。于是上论坛频道咨询。可是没人回答。今天终于有时间了,弄了弄,终于好了。安装系统时选择的英语,于是貌似没有装中文字体。如下几部解决Linux中文支持问题。1. yum install fonts-chinese2. vim /etc/sysconfig/i18nLANG="zh_CN.G
2012-12-16 11:47:58
1680
原创 log4j控制台日志信息,根据不同级别,以颜色显示
下面说的让控制台日志颜色高亮显示,是分两种情况的。一。 在eclipse控制台此时,用的比较简单的实现方式。不需要其它工具类。warn,error,fatal级别以红色显示。debug,info, 默认的颜色log4j.xml <param name="ConversionPattern" value
2012-10-10 18:10:28
27608
原创 Linux和Windows平台memcached server的安装
Linux平台http://code.google.com/p/memcached/wiki/NewStart?tm=6Windows平台下载地址:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip以下from:http://www.codeforest.net/how-t
2012-09-17 10:14:44
2854
原创 使用svnkit api,纯java操作svn,实现svn提交,更新等操作(修正版)
此篇是在上一篇基础上修改了bug。import java.io.File;import org.apache.log4j.Logger;import org.tmatesoft.svn.core.SVNCommitInfo;import org.tmatesoft.svn.core.SVNDepth;import org.tmatesoft.svn.core.SVNExcep
2012-09-10 14:50:28
45281
7
原创 让外网访问VMware的Linux,访问虚拟机上部署的javaweb项目
我这是在公司里面,xp系统安装的VMware虚拟机,安装的CENTOS系统。上网采用NAT方式。在centos上部署了javaweb项目。用的tomcat。端口8080. 想让同事访问该web项目。1. 虚拟机上网采用NAT方式2. VMware虚拟机端口映射使用NAT上网的linux虚拟机是和主机共享一个ip的,此时外网访问这个ip是访问你的主
2012-09-10 14:07:19
10756
1
原创 纯java操作SVN,使用svnkit做commit,update 提交,更新操作
public class SVNUtil { private static Logger logger = Logger.getLogger(SVNUtil.class); /** * 通过不同的协议初始化版本库 */ public static void setupLibrary() { DAVRepositoryFactory.setup(); SVNReposi
2012-08-30 15:27:38
13375
3
原创 java拷贝目录及其子目录、文件,到另外一个目录
/** * 复制一个目录及其子目录、文件到另外一个目录 * @param src * @param dest * @throws IOException */ private void copyFolder(File src, File dest) throws IOException { if (src.isDirectory()) { if (!dest.exi
2012-08-28 09:26:08
29755
2
原创 这几天碰到一个JS问题,百思不得其解,原来是命名问题
jsp页面中,给一个按钮加了个onClick事件,调用一个js函数。 之前js 函数叫find。后来改调公共JS文件里的search()函数了。接下来就杯具了。点按钮木有反应。今天再去看,发现页面另外有个元素的name也叫search。于是想着可能是同名引起的。改个名。好了!特此纪念这令我莫名困扰毫无所措的问题。
2012-06-28 19:12:06
1086
原创 JQuery实现的 checkbox 全选、反选。
发现网上写的全选的代码,不是完整的,是有bug的。全选它分几种情况1. 全选的checkbox选中时,子checkbox全部选中。反之,全部不选2.子checkbox中,只要有没有被选中的,取消全选checkbox的选中3.子checkbox的数量和子checkbox被选中的数量一样时,全选checkbox要被选中//复选框事件//全选、取消全选的事件function
2012-06-16 15:20:12
73834
4
转载 年轻程序员与老程序员的故事
我曾经听到这么一个故事: 一个年轻的程序员问一个老程序员(一个比较牛逼的公司的CTO) 。年轻程序员: 你为什么这么牛X., 就好像没有你不会的。老程序员: 积累的。年轻程序员: 怎么才能积累到您的程度呢。我每天都在积累。但是似乎都没有感觉到进步。老程序员: 我从20岁开始做到了一件事情,直到今天,而且尽可能地保证不间断。年轻程序员: 到底是什么? 老程序员: 我每天保
2012-06-13 15:54:43
1834
转载 快乐工作的7则寓言
第一则 一头老驴,掉到了一个废弃的陷阱里,很深,根本爬不上来。主人看它是老驴,懒得去救它了,让它在那里自生自灭。那头驴一开始也放弃了求生的希望,每天还不断地有人往陷阱里面倒垃圾。按理说老驴应该很生气,应该天天去抱怨,自己倒霉掉到了陷阱里,它的主人不要它,就算死也不让它死得舒服点,每天还有那么多垃圾扔在它旁边。可是有一天,它决定改变自己的态度,它每天都把垃圾踩到自己的脚下,从垃圾中找到残羹来
2012-06-13 15:50:44
3556
原创 java导出导入excel,对jxl的封装
JExcelOperator.java导出导入的类public class JExcelOperator { /*定义默认的列宽*/ private static final int DEFAULT_COLUMN_WIDTH = 10; /*定义默认的工作薄名称*/ private static final String DEFAULT_WORK_TITLE = "教育"; /
2012-05-31 20:43:14
6761
原创 使用ANT脚本编译、打包、部署到tomcat,启动、停止tomcat
${build.time} <!-- 这个运行失败。抽空研究研究怎么回事!! echoing path=@{pathref} @{fromfile}
2012-05-12 20:47:30
6773
原创 ant 脚本里面启动、停止tomcat的两种方法
第一,在windows 命令行窗口显示tomcat控制台界面 停止tomcat <exec executable="cmd" dir="${tomcat.home}/bin" failonerror="false" output="${log.file}" append="true" > -->
2012-05-12 20:45:38
10991
原创 使用ant脚本,对java web项目,编译、打包、发布部署到tomcat
javac默认使用jdk进行编译。当项目中有 T X这种类型时,ant编译不能通过。必须使用eclipse jdt进行编译。指定使用jdt进行编译,两种方法都可以。一是定义build.compiler属性:二是在javac中指定参数compiler="org.eclipse.jdt.core.JDTCompilerAdapter"。如果项目中没有那样的泛型代码,不需要指定编译
2012-05-10 18:15:20
23784
原创 在ant脚本里面,打印显示项目的classpath
--> 结果,显示的内容全部在一行:print_classpath:[echo] Classpath = D:\workspace\lms\webapp\WEB-INF\lib\antlr-2.7.7.jar;D:\workspace\lms\webapp\WEB-INF\lib\aopalliance-1.0.jar;D:\workspace\lms\w
2012-05-10 17:56:03
6866
原创 mysql备份shell脚本(2)
可带参数,是用来存放备份文件的路径。也可不带参数,此时会有选择菜单:是备份所有库还是一个库(一个库时会要求输入备份的库的名字。同时也需要输入存放备份文件的路径。 #!/bin/sh# set -x## this script is for auto mysql b
2011-09-28 16:45:17
883
Introduction+to+3D+Game+Programming+with+DirectX+9.0
2013-10-23
The C++ Standard Library A Tutorial and Reference (2nd)
2013-10-23
Ant-The Definitive Guide,第二版2nd Edition
2012-10-10
jcabi-log-0.2.1.jar
2012-10-10
MySQL版块提问所需脚本
2010-08-24
scripting in java-languages-frameworks-and-patterns
2010-07-31
精通shell脚本编程
2010-07-31
MySQL.Cookbook第二版.chm
2010-07-24
Packt.MySQL.Admin.Cookbook.2010.pdf
2010-07-23
Linux命令行入门:Beginning the Linux Command Line
2010-07-21
pentaho多维报表组件mondrian和web的集成
2009-12-15
JAVA学生成绩管理系统
2008-06-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人