- 博客(50)
- 资源 (3)
- 收藏
- 关注
转载 Comparison method violates its general contract
今天一同事采用Collections.sort 来对文件进行排序,出现Comparison method violates its general contract 异常,找了好久,才发现是实现接口Comparator 的类有问题,在compare中没有处理好两个比较的对象相等的情况public int compare(T lhs, T rhs);
2014-08-12 16:33:49 5462 1
原创 struts2 java.lang.ClassNotFoundException: org.apache.commons.lang.xwork.StringUtils
struts2项目启动时报错:java.lang.ClassNotFoundException:org.apache.commons.lang.xwork.StringUtils。是因为struts2-convention-plugin-xxxxxx.jar 某个版本的SEOActionNameBuilder类引用了 org.apache.commons.lang.xwork.String
2014-05-14 19:49:26 5128 1
原创 代理模式
代理模式定义:为一个对象提供一个替身或占位符以控制对这个对象的访问。被代理的对象可以是远程的对象、创建开销大的对象、需要安全控制的对象。角色:subject:真正对象与代理对象都要实现的接口,允许客户可以像处理真正对象一样处理代理对象proxy:代理对象,并持有真正对象的引用,必要时可以将请求转发给真正对象。realSubject:真正对象,代理对象控制对其访问类型:远
2013-09-24 22:34:43 729
原创 状态模式
状态模式定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。角色:context应用环境:内部持有多个state的引用以及代表当前状态的应用state状态接口:定义了所有具体状态的共同接口,任何状态都要实现这个接口,以便,状态之间相互替代。concreteState具体状态:处理来自context的请求,每个concreteState都提供了自己对于请求的实现,
2013-09-23 15:25:34 885
原创 策略模式
策略模式定义:属于对象的行文模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使它们可以相互替换。策略模式使得算法可以在不影响客户端代码的情况下发生变化。策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法, 并将每一个
2013-09-23 14:01:23 1126
原创 组合模式
组合模式定义:允许你将对象组合成树形来表达结构来表现“整体/部分”层次结构。组合能让用户以一致的方式处理个别对象及对象组合。角色:component :是组合中对象的接口,适当情况下,实现所有类共有方法的默认行为,声明一个接口,用于管理和访问component子部件composite:定义具有叶节点的组件的行为leaf:定义叶节点的行为client:使用component接口操
2013-09-22 23:31:52 1738
原创 模板方法模式
模板方法模式定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使的子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤将主要的方法定义为final,防止子类修改算法骨架,将子类必须实现的方法定义为abstract。而普通的方法(无final或abstract修饰)则称之为钩子。钩子作用:1)作为可选内容,子类可以重写或者置之不理2)让子类有机会对模板
2013-09-22 14:53:03 5403
原创 适配器模式
适配器模式定义:将一个类转换成客户希望看到的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。简单来说:你现在有一个A的对象,但是现在需要B接口的对象,通过适配器模式可将A伪装成一个B的对象,达到目的,A的对象、B接口在功能上要类似。核心便是转化二字。角色:目标接口,适配器,被适配接口分类:有对象适配器和类适配器两种。类适配器是采用多重继承的方式,使适配器同事继
2013-09-22 00:21:08 1280
原创 命令模式
命令模式定义:属于行为模式,将一个请求封装成对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。将命令的请求者与执行者解耦,请求者不需要知道执行的细节角色: 命令接口,命令子类,调用者,执行者概括:命令接口定义一个简单的方法execute,命令的子类包含一个执行者的实例,execute中调用执行者相应的方法来完成某个功能或动作,调用者包
2013-09-21 20:33:40 1358
原创 工厂模式
工厂模式有三种:简单工厂模式、工厂方法模式、抽象工厂模式简单工厂:类创建模式,用来创建其他类的实例,通过不同的特征返回不同类的实例,被返回类具有相同的父类角色: 产品的父类产品的具体类工厂类 优点: (1)工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品;简单工厂模式通过这种做法实现了对
2013-09-21 15:59:46 2422
原创 装饰者模式
装饰者模式:动态地将责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案 要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为装饰者包含一个超类的对象,这样,可以在被装饰者行为前或者行为后加上新的行为,甚至取代原有的行为装饰者会使持续中出现很多小类,增加使用难度使用场景:对象由主体+许多可选的部件或者功能构成,使用继承或者接口会产生很多类,且很
2013-09-15 22:30:22 13640 7
原创 观察者模式
观察者模式又名发布-订阅模式,定义了对象之间的一对多依赖,多个对象同时监听一个对象,当被监听对象的状态发生改变时,它的所有依赖者都会收到通知并自动更新,被监听对象称为主题,监听对象称为观察者。
2013-09-08 21:55:27 2213 1
原创 CountDownLatch 与 CyclicBarrier应用
CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。问题:老师组织一次
2013-07-07 21:58:45 683
原创 sql中' 的问题
存储过程报错,找原因找了好久,以后是 ' 好的问题。结果发现是变量长度不够。不过对 ‘ 的应用有了新的理解。转发一篇关于 ' 应用的文章 1、 ' '是字符界定符,告诉SQL你输入的是字符,SQL已经知道@sitemtext是字符类型,所以不需要。 2、LIKE '%XXX% ' 可以拆分为 '% ' + 'XXX ' + '% ', 'XXX ' =...
2012-03-30 16:18:37 144
原创 struts2启动错误
严重: Exception starting filter struts2Unable to load configuration. - [unknown location] at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58) a...
2011-12-24 14:52:18 179
原创 s:iterator 在遍历中修改数据
<s:iterator id="list" value="cityList" status="sta"><tr><td><s:property value="#sta.index"/></td><td><input type=&quo
2011-12-10 14:36:32 563
原创 js event(20111210)
鼠标 / 键盘属性属性描述IEFOW3CaltKey返回当事件被触发时,"ALT" 是否被按下。619Yesbutton返回当事件被触发时,哪个鼠标按钮被点击。619YesclientX返回当事件被触发时,鼠标指针的水平坐标。619YesclientY返回当事件被触发...
2011-12-10 11:10:21 83
原创 android:随记
获取联系人信息:Intent intent = new Intent(Intent.ACTION_PICK,ContactsContract.contacts.CONTENT_URI);startActivityForResult(intent,1);重写onActivityResult(int requestCode,int resultCode,intent data){ ...
2011-11-12 17:16:23 113
原创 android:sqlite
android上可以使用sqlite数据库,sqlite支持5中数据类型:null,INTEGER,REAL,TEXT,BLOB,可以在定义的时候使用varchar(n),char(n),decimal,但是在运输或者保存时会转换成5中基本类型。 可以保存任意类型的数据到任意类型的字段中,比如:可以把字符串放入到integer的年龄中。只有一种例外情况:INT...
2011-11-09 16:11:50 102
原创 android: SharedPreference
SharedPreferece 可以用来保存配置文件,后缀名为.xml,是一个轻量级的存储类,文件放在/data/data/<package name>/shared_prefs目录下。通过键值对的形式保存。 可以通过Activity的getSharedPreference(name,mode);方法获取,name不需要加".xml",mode为创建模式: Conte...
2011-11-07 16:50:36 78
原创 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。工厂方法工厂方法是针对每一种产...
2011-11-06 14:14:11 98
原创 android:handler(转)
Handler的定义: 主要接受子线程发送的数据, 并用此数据配合主线程更新UI. 解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的...
2011-11-02 16:50:27 71
原创 listView中多个listItem布局时 convertView缓存及使用(转)
最近有需求需要在listView中载入不同的listItem布局,开始没有使用convertView,加载了多个item后导致了内存泄露,所以回来研究convertView在多个listItem布局时的缓存及应用,并且和大家分享构造Adapter时,没有使用缓存的 convertView,导致内存泄露示例代码:public View getView(int position, Vie...
2011-10-31 23:40:42 224
原创 android ListView之一:Adapter介紹與使用(转)
点击查看原网页ListView是在Android很常見的一種視圖,ListView不論在電話簿中還是觀看大量的列表資料,都是會用得到。ListView的使用需要搭配Adapter,Adapter是用來連接資料和ListView的,Adapter除了會用到ListView中,另外會用到還有Spinner(類似下拉選單)的這個元件中。在Google IO 2009的其中一張投影片中,可以...
2011-10-31 23:37:25 102
原创 获取手机的分辨率
DisplayMetrics dm;dm = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm); // 获得手机的宽带和高度像素单位为pxString str = "手机屏幕分辨率为:" + dm.widthPixels + " * " + dm.heightPix...
2011-10-31 14:45:12 91
原创 svn Attempted to lock an already-locked dir
问题描述:在用SVN上传文件时,报告Attempted to lock an already-locked dir错误; 解决方法:在项目上单击右键,选择team,再选择cleanup即可
2011-10-26 15:33:15 59
原创 frameset 重定向
有些时候做一些系统的后台页面需要使用框架页。一般来说都是一个登录界面,然后登录成功后跳转到控制台页面,这个页面使用了frameset。这时候就存在一个session失效的问题,如果登录失效,那么就会在管理台页面的一个子页面中重新显示登录界面了,这个是我不想看到的。 解决方法是:可以在登录页面中加入以下js代码:if (top.location != self.location){ ...
2011-10-19 15:53:49 267
原创 jdk自带md5加密
/** * MD5加密类 * @param str 要加密的字符串 * @return 加密后的字符串 */ public static String toMD5(String str){ try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(str....
2011-10-11 16:44:37 434
原创 try catch finally 代码执行(转)
当Java程序执行try块、catch块时遇到了return语句或throw语句,这两个语句都会导致该方法立即结束,但是系统并不会立即执行这两个语句,而是去寻找该异常处理流程中是否包含了finall块: 如果没有finall块,程序立即执行return语句或throw语句,方法终止; 如果有finally块,系统立即开始执行finally块——只有当finally块执行完成后,系统才会再次...
2011-08-08 22:38:43 112
原创 exception开发过程
1、 Hibernate中实体类用java.util.Date 对应数据库中的date ,插入后没有时分秒解决方法:映射文件中将type改为java.util.Date 2、Hibernate+Spring 查询 语句中有 like %解决方法:Query query = session .createQuery("select count(*) f...
2011-07-16 17:59:11 90
原创 事务隔离(转http://polygoncell.iteye.com/blog/294735)
事务隔离 在进行数据库编程时,我们经常要处理事务,一些事务隔离问题,如果隔一段时间不用,即使是老鸟也容易忘记,今天把他们写下来,方便大家,也方便自己需要的时候查阅。基本上所有问题都是在2个或多个事务同时处理同一数据源时发生的,这里缩小到2个事务来分析问题,下面以T1代表事务1,T2代表事务2,D1代表数据源1,D2代表数据源2。 lost update: 1. T1 ...
2011-06-08 15:34:34 92
原创 java 泛型(转http://www.infoq.com/cn/articles/cf-java-generics)
Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新集合类框架中。对于泛型概念的引入,开发社区的观点是褒贬不一。从好的方面来说,泛型的引入可以解决之前的集合类框架在使用过程中通常会出现的运行时刻类型错误,因为编译器可以在编译时刻就发现很多明...
2011-05-30 15:08:09 90
原创 MyEclipse 提示配置
一般默认情况下,Eclipse ,MyEclipse的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的,要开发者自己去手动配置。如果开发者不清楚的话,就不知道Eclipse ,MyEclipse的代码提示功能一样能像Microsoft Visual Studio的代码提示功能一样强大。先举个简单的...
2011-05-20 16:42:51 63
原创 (转-作者tag)深入理解abstract class和interface
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。其实,两者之间还是有很...
2011-05-06 16:14:41 121
原创 log4j 转载
一、介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志...
2010-11-17 15:12:27 102
原创 java 流笔记
解决FileWriter BufferedReader 不能设置编码的问题:BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8"));OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(newfile, true),"UTF-8");用OutputStreamWriter 代替File
2010-06-06 16:41:00 396
原创 STRUTS2
struts2在action中获取request、session、application的方法;1、获取map对象ActionContext context = ActionContext.getContext();Map request = (Map)context.get("request");Map session = context.getSession();Map applicati
2010-01-03 09:19:00 549
原创 中文乱码问题和国际化
中文乱码问题 1、以post方式提交由中文字符的表单在调用request.getParameter("")前,先调用request.setCharacterEncoding("GBK"),明确指出编码方式,在向浏览器输出前调用response.setContenType("text/html;charset=GBK"); 2、以get方式提交此时需要自己转码:
2009-12-24 08:20:00 2668
原创 Servlet监听器和过滤器Filter
Servlet监听器 有8个监听器接口 1、ServletContextListener (contextDestroyed,contextInitialized)Servlet上下文在初始化或者注销时会调用。须在部署描述符中配置2、ServletContextAttributeListener (attributeAdded,attributeRomved,attri
2009-12-24 07:23:00 1025
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人