摘要: 如果发现你用的端口被占用了可以通过以下两种方法解决 1.首先CMD命令,调出命令窗口。查询各个端口使用的程序代码为:netstat -ano 可以列出多有端口使用情况。找到port对应的80端口(地址后面跟着的数字)以及对应的PID,可以关闭该程序,或者卸载也行。不过一般用命令关闭比较快。用ntsd -c q -p PID。这里PID是端口对应的号码(数字)。一般是填数字。 2.可以通过任务管理器找出使用80端口的PID。把它关闭就可以了(结束任务)。taskkill -pid 80 阅读全文
posted @ 2013-04-14 13:16 Kevin.Xi 阅读(264) 评论(0) 推荐(0)
摘要: 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。定义2:所有引用基类的地方必须能透明地使用其子类的对象。问题由来:有一功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1与新功能P2组成。新功能P由类A的子类B来完. 阅读全文
posted @ 2013-04-14 00:16 Kevin.Xi 阅读(137) 评论(0) 推荐(0)
摘要: 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。 说到单一职责原则,很多人都会不屑一顾。因为它太简单了。稍有经验的程序员即使从来没有读过设计模式、从来没有听说过单一职责原则,在设计软件时也会自觉的遵守这一重要原则,因为这是常识。 阅读全文
posted @ 2013-04-14 00:13 Kevin.Xi 阅读(122) 评论(0) 推荐(0)
摘要: 在使用java的net包访问网络时,如果需要使用代理,可以这样做:[java] view plaincopySystem.getProperties().setProperty("proxySet","true");System.getProperties().setProperty("http.proxyHost","183.121.23.188");System.getProperties().setProperty("http.proxyPort","8080");UR 阅读全文
posted @ 2013-04-13 23:51 Kevin.Xi 阅读(207) 评论(0) 推荐(0)
摘要: 程序实现了ZIP压缩。共分为2部分 : 压缩(compression)与解压(decompression) 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 需在代码中自定义源输入路径和目标输出路径。[java] view plaincopypackagecom.han;importjava.io.*;importjava.util.zip.*;/***程序实现了ZIP压缩。共分为2部分:*压缩(compression)与解压(decompression)**大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压。 阅读全文
posted @ 2013-04-11 18:14 Kevin.Xi 阅读(210) 评论(0) 推荐(0)
摘要: fn标签fn标签更确切的说应该叫做fn函数,主要用于el表达式中,使用时需要在页面中引入:JSP2.0规范下出现的Functions标签共有16个。1.fn:length 长度函数作用:计算集合的长度;返回值是集合的长度。例子:[html] view plaincopy${fn:length(userList)}${fn:length(array)}2.fn:contains 判断包含函数作用:用于判断一个字符串是否包含子字符串;返回值是true或false。例子:[html] view plaincopy${fn:contains("ABC","A") 阅读全文
posted @ 2013-04-11 17:54 Kevin.Xi 阅读(322) 评论(0) 推荐(0)
摘要: 1.建表create table VACATION( ID number(8) primary key, TITLE VARCHAR2(200), MATTER VARCHAR2(200), APPLYER VARCHAR2(20), STARTTIME VARCHAR2(20), ENDTIME VARCHAR2(20))2.建序列create sequence vacation_seq minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 cache 20;3.建触发器CREATE OR REPLACE TRI 阅读全文
posted @ 2013-04-11 17:50 Kevin.Xi 阅读(156) 评论(0) 推荐(0)
摘要: 今天搭建spring3 mvc框架的时候,发现居然又出现了乱码(万恶的iso编码啊),想起之前解决post提交乱码问题一般都是写一个filter,在filter中实现编码的转换,配置方法是是在web.xml中加入以下代码:[html] view plaincopyCharacterEncodingcom.filter.CharacterEncodingFilterencodingUTF-8CharacterEncoding/*其中:com.filter.CharacterEncodingFilter是自己实现的过滤器,具体写法可以参考tomcat6中webapps\examples\WEB-I 阅读全文
posted @ 2013-04-11 17:47 Kevin.Xi 阅读(147) 评论(0) 推荐(0)
摘要: Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。分页查询格式:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM = 21其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM = 21控制分页查询的每页的范围。上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM = 21原文地址 阅读全文
posted @ 2013-04-11 17:35 Kevin.Xi 阅读(119) 评论(0) 推荐(0)
摘要: 一、Oracle中的Round和Trunc:如同对数字进行四舍五入和按位截取一样,Oracle对时间日期也提供了这两种功能。但比起对数字进行四舍五入和截取比较复杂:这是因为时间日期是有格式的。下面看看这两个函数的定义和用途:ROUND(date [, format])TRUNC(date [, format])Round函数对日期进行“四舍五入”,Trunc函数对日期进行截取。如果我们不指定格式的话,Round会返回一个最接近date参数的日期,而Trunc函数只会简单的截取时分秒部分,返回年月日部分。二、Round和Trunc函数示例: SQL > select to_char(sys 阅读全文
posted @ 2013-04-11 15:54 Kevin.Xi 阅读(436) 评论(0) 推荐(0)
摘要: 我把struts.xml没有放到src下,而是根据自己的习惯放到新目录:WEB-INF/conf/下了。这时候需要在web.xml中进行必要的配置,配置情况如下:[html] view plaincopystruts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterconfigstruts-default.xml,struts-plugin.xml,/WEB-INF/conf/struts.xmlStruts.xml内容如下:[html] view plaincopyindex.jsp这时候在IE地址栏中 阅读全文
posted @ 2013-04-11 10:15 Kevin.Xi 阅读(1013) 评论(0) 推荐(0)
摘要: 在操作ORACLE数据库的时候,由于执行完,没有COMMIT,直接把PL/SQL关闭掉,后来导致那张表被锁住,当编辑时就会出现这个信息,record is locked by another user!当出现这种情况的时候,只要操作下面几个步骤就可以解锁了。select t2.username,t2.sid,t2.serial#,t2.logon_timefrom v$locked_object t1,v$session t2where t1.session_id=t2.sid order by t2.logon_time;--查看锁--alter system kill session &# 阅读全文
posted @ 2013-04-11 10:10 Kevin.Xi 阅读(270) 评论(0) 推荐(0)
摘要: setAccessible()方法java代码中,常常将一个类的成员变量置为private在类的外面获取此类的私有成员变量的value时,需要注意:测试类:Java代码publicclassAccessibleTest{privateintid;privateStringname;publicAccessibleTest(){}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name 阅读全文
posted @ 2013-04-11 00:09 Kevin.Xi 阅读(251) 评论(0) 推荐(0)
摘要: 首先让我们看一看刚入软件公司会出现的情况:1. 你可能会常常发现,写了一段代码后,编译程序时是一大堆的出错 (原因:语法不熟)──别担心,这是每个程序员必须经历的事,这时候你就需要更大的耐心及细心,对每一行代码进行仔细人阅读并改正,这个很重要,这可以培养你的理解代码能力,所以要常读程序,不要等到程序运行以后才知道你的程序的结果。──如何避免:在写代码以前,要认真的学习计算机语言的语法,如关键点,易错点,易忘点。同时要自已动手写自已的测试代码,而尽量不要抄别人的代码示例。即使抄,在学习阶段也尽量不要每一行一模一样的对着抄。而应对着代码示例写有所不同的例子。比如:在学java 知识点时,你最好建一 阅读全文
posted @ 2013-04-10 10:12 Kevin.Xi 阅读(353) 评论(0) 推荐(0)
摘要: 七个受用一生的心理寓言 (一)成长的寓言:做一棵永远成长的苹果树 一棵苹果树,终于结果了。 第一年,它结了10个苹果,9个被拿走,自己得到1个。对此,苹果树愤愤不平,于是自断经脉,拒绝成长。第二年,它结了5个苹果,4个被拿走,自己得到1个。“哈哈,去年我得到了10%,今年得到20%!翻了一番。”这棵苹果树心理平衡了。但是,它还可以这样:继续成长。譬如,第二年,它结了100个果子,被拿走90个,自己得到10个。 很可能,它被拿走99个,自己得到1个。但没关系,它还可以继续成长,第三年结1000个果子…… 其实,得到多少果子不是最重要的。最重要的是,苹果树在成长!等苹果树长成参天大树的时候,那些曾 阅读全文
posted @ 2013-04-09 14:05 Kevin.Xi 阅读(118) 评论(0) 推荐(0)
摘要: 1、建立文件名stringBuffer.copy2、保存内容StringBuffer query = new StringBuffer(); query.append(" \n"); query.append(" \n"); query.append(" \n");3、复制到PLSQL Developer\SpecialCopy 目录下4、在PL/SQL中 ,选中SQL右击专用复制选择stringBuffer ok了。 阅读全文
posted @ 2013-04-08 17:10 Kevin.Xi 阅读(224) 评论(0) 推荐(0)
摘要: oracle中 connect by prior 递归算法 Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from table start with org_id = 'HBHqfWGWPy' connect by prior org_id = parent_id; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字 阅读全文
posted @ 2013-04-08 15:36 Kevin.Xi 阅读(129) 评论(0) 推荐(0)
摘要: LINUX的历史Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。Linux创始人:计算机业余爱好者Linus Torvalds:(林纳斯·托瓦兹)。LInux出生:诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。Linux 操作系统是UNIX 操作系统的一种克隆系统。LInux发展:以后借助于 阅读全文
posted @ 2013-04-08 14:05 Kevin.Xi 阅读(246) 评论(0) 推荐(0)
摘要: JSTL标签库的使用是为类弥补html表的不足,规范自定义标签的使用而诞生的。在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较大和不利于技术标准化产生了自定义标签库。JSTL标签库可分为5类:q核心标签库qI18N格式化标签库qSQL标签库qXML标签库q函数标签库本章将对这些内容一一讲述。9.1核心标签库JSTL的核心标签库标签共13个,从功能上可以分为4类:表达式控制标签、流程控制标签、循环标签、URL操作标签。使用这些标签能够完成JSP页面的基本功能,减少编码工作。(1)表达式控制标签:out标签 阅读全文
posted @ 2013-04-08 13:40 Kevin.Xi 阅读(245) 评论(0) 推荐(0)
摘要: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。而如果是使用 StringBuffer 阅读全文
posted @ 2013-04-05 23:59 Kevin.Xi 阅读(132) 评论(0) 推荐(0)