`
lg_asus
  • 浏览: 190924 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论
文章列表
引用struts-json-plugin.XX.xx.jar。引入它里面的json-plugin.xml,然后user的package要继承json-default。引入json interceptor,如下: <interceptors> <interceptor-stack name="ecsStack"> <interceptor-ref name="defaultStack"> <param name="exception.logEnabled"> ...
前面几篇blog记录的都是java中一些很基础的知识,但不经常遇到,对于我这个有2年多开发经验的码农来说,还是不知其原理。因此这里单独开篇blog来记录开发中遇到的一些很基础很有用的skills。 注:很多思想都是来自群中的讨论,在此感谢tank大牛,教会了我好多东西,thx very much. (这篇blog原本是把群的号给公布出来,我只是想让更多java lover加入群中,没想到web  master把blog移入到了回收站,my god,以为我是打广告的么。不过,还是很欣赏管理员的铁面无私,加油,iteye) skill 1: 不要在for循环中访问链表,而是用遍历器。原因:链表访问 ...
class A<T> extends Throwable/RuntimeException 上面这段代码编译会报错,原因:由于Throwable及其子类是会在任何地方throws或catch,如果有泛型的话,那么在别的地方是不能确定泛型参数T的。 thanks for tank.
转载:http://blog.csdn.net/cuixinminsuijie/article/details/3497442?reload 在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。 按照结构化设计方法,一个应用程序是由多个功能相对独立的模块所组成。 扇入:是指直接调用该模块的 上级模块的个数。扇入大表示模块的复用程序高。 扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过 大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子 ...
一直使用(totalRecordSize - 1) / pageRecordSize + 1 来计算pageCount, 今天被群里的tank告知,如果totalRecordSize=0则上面这个式子结果是1,显然不对。 换成这个: (totalRecordSize + pageRecordSize - 1) / pageRecordSize 就会避免上面这个问题。

开发规范

1:制定API的时候,一定要考虑到参数类型、方法返回类型和所能抛出的异常,由于API改动的代价非常大,因此一定要考虑清楚,API要考虑后续的扩展,一个方法的内部实现是可以随意变化的,只要保证实现向后兼容就行,但暴露出来的API一般就不可能再去变了。 2:制定xml格式的时候,能用属性最好不要用text,因为属性用dtd/schema容易约束,而text则不好或不能约束。 群内tank给的例子: <contact> <name>张三</name> <email>xxx@example.com</email> </contrac ...

java异常

运行时异常可以不捕获,即使一段代码不可能抛出这个RuntimeException,你也可以在任何时候任何地点抛出这个RuntimeException,因此我建议RuntimeException不抛也不捕获,统一交给处理程序最后处理(调用者一般不会知道一个方法会抛出哪些RuntimeException的,因此由程序统一处理) 重写方法时,不能声明抛出和父类方法异常不兼容的异常。如父类抛出一个IOException,这时子类方法可以抛出IOException或Exception(不然里氏替换原则不满足),也可以不声明抛出异常。 编译期异常要显式捕获或往上抛(方法里要显式声明抛转这个异常)。 ...
项目需要,从XML中读取数据生成一个Tree,然后可以对叶子节点的值(属性不可以)进行编辑,并最后保存。 /** * chega * 2012-12-17下午2:11:42 */ package com.java2s.www; import java.io.File; import java.io.IOException; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.viewers.ITableLabelProvider; import o ...
今天启动oracle的时候,结果报:无监听程序,但昨天还是好好的,后来在命令行中启动监听器和服务: lsnrctl [stop] [start] [status] 这三个命令,都可以正在运行, net start oracleserviceXXX 也能正常启动。 后来在任务管理器中发现启动的XXX实例竟然只占用20M内存,和以前几百M内存相比,简直小的太多,当时就认为实例可能没有成功启动。 后来就想用startup来分阶段启动实例,见 http://blog.csdn.net/robinson_0612/article/details/5542983 结果sqlplus / as sysdba ...
推荐参考: http://rox-xmlrpc.sourceforge.net/niotut/index.html 下面是我写的一个小demo: import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.ServerSocketChannel; import ...

字符编码

关于字符编码ascii unicode 及utf8相关知识,请参考: http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 和 http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/
今天部门测试,两道题: 1:删除一个单向链表中值为某个特定值的所有节点 2:把一个单向链表反转 第一个题目比较简单,第二个题目有点难,我吭哧半天没搞出来,丢人。。。 写在卷面上的答案要是搬到计算机上,100%得不到正确结果,呃,太依赖调试了。。。 Node类: /** * chega * 2012-12-5下午2:55:52 */ /** * @author chega * * 2012-12-5下午2:55:52 * */ public class Node { public int item; public Node next; ...
一:求GCG(greatest common divisor) analysis: tow nonnegative integer p and q, if q is 0 then gcd is q, then the gcd is the greatest common divisor of q and p%q. q和p%q的最大公约数,当然也是p和q的最大公约数。 int gcd(int p, int q){ if(q == 0) return q; return gcd(q, p% ...
CountDownLatch只能使用一次,cyclicBarrier可以重复使用,同时还提供barrierAction。 在功能上,cyclicBarrier可以完全替代countdownlatch, 但是性能上,如果同时工作的线程在几百数量级,则两者性能差不多,但是在千/万数量级的线程时,countdownlatch性能远远高于cyclicbarrier。 下面是测试代码,改变count值,观察输出结果: public class Test2 { CyclicBarrier barrier; CountDownLatch latch; int count; long ...

Java&Js正则

greedy, reluctant, possessive 三种匹配模式在 http://docs.oracle.com/javase/tutorial/essential/regex/quant.html有详细介绍, greedy表示每次eat entire string, if not matched, back off one character step by step until matches, so for the remaining string; reluctant means eat "nothing" at first, if not matched, ...
Global site tag (gtag.js) - Google Analytics