`
文章列表
今天项目切换数据库时,出错 访问数据库的代码大概是这样: String sql = "select sum(number) as sumNumberOfOneDay from tableName"; List<Map> rows = getJdbcTemplate().queryForList(sql); for (Map row : rows) { SomeBean item = new SomeBean(); item.setSumNumberOfOneDay(objectToInt(row.get("sumNumberOfOn ...
Netty 3.x的user guide里FrameDecoder的例子,有几个疑问: 1.文档说:FrameDecoder calls decode method with an internally maintained cumulative buffer whenever new data is received. 为什么每次有新数据到达时,都会调用decode方法? 2.Decoder与其他handler在pipeline的顺序是怎样的?谁先谁后? 3.所要接收的数据可能要经过多次才能接收完全,那这之前数据是如何保留? 先说结论: 1.因为每一次消息到达时都会触发pipe ...
package com.ljn.channel; /** * ChannelPipeline采用的是Intercepting Filter 模式 * 但由于用到两个双向链表和内部类,这个模式看起来不是那么明显,需要仔细查看调用过程才发现 * * 下面对ChannelPipeline作一个模拟,只模拟关键代码: */ public class Pipeline { //netty里面为了能处理Upstream和Downstream,采用的是双向链表; //现在只关注Upstream的处理,因此单向链表就可以了 private ...
Intercepting Filter类似于职责链模式 有两种实现 其中一种是Filter之间没有联系,全部Filter都存放在FilterChain中,由FilterChain来有序或无序地把把所有Filter调用一遍。没有用到链表这种数据结构。示例如下: package com.ljn.filter.custom; import java.util.ArrayList; import java.util.List; /** * 由FilterManager组织FilterChain,在FilterChain里面的filter顺序执行, * 各Filter之间没有交 ...
《Java并发编程实战》一书提到的用ExecutorService取代Java Timer有几个理由,我认为其中最重要的理由是: 如果TimerTask抛出未检查的异常,Timer将会产生无法预料的行为。Timer线程并不捕获异常,所以 TimerTask抛出的未检查的异常会终止timer线程。这种情况下,Timer也不会再重新恢复线程的执行了;它错误的认为整个Timer都被取消了。此时,已经被安排但尚未执行的TimerTask永远不会再执行了,新的任务也不能被调度了。 stackoverflow上也有关于此问题的讨论: http://stackoverflow.com/questions/4 ...
package com.ljn.base; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.io.IOUtils; imp ...
关于Table Driven Approach的一篇非常好的文章: http://www.codeproject.com/Articles/42732/Table-driven-Approach package com.ljn.base; import java.util.Random; public class TableDriven { public static void main(String[] args) { //实例1:计算税收 System. ...
参考以下两篇文章: http://www.mkyong.com/spring/spring-jdbctemplate-jdbcdaosupport-examples/ http://stackoverflow.com/questions/4762229/spring-ldap-invoking-setter-methods-in-beans-configuration Spring JdbcDaoSupport 的使用非常简单,粗看没什么可疑的: 1.让Dao extends JdbcDaoSupport : public class JdbcCustomerDAO extends Jd ...
package com.ljn.base; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; /** * 总述: * 1.ArrayListi不是线程安全的,CopyOnWriteArrayList是线程安全的。 * 2.ArrayListi读的时候不能写:在遍历时不能执行list.remove,list.add;但可以执行iterator.remove。 * ...
package com.ljn.base; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * “对ArrayList进行遍历时,不要进行list.remove或者list.add操作” * 我只是记住了这条规则,但规则的背后,是什么原理? * 通过代码来说明(暂时不考虑多线程的情况): */ public class ConcurrentModificationExceptionTest { public static voi ...
/** * 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 * @author lijinnan * @date:2013-11-5 下午3:07:10 */ public class ThreadComunication { private static final int ROUND_COUNT = 50; public static void main(String[] args) { //主线程和子线程“共 ...
http://javarecipes.com/2012/07/11/understanding-the-concept-behind-threadlocal/ http://blog.csdn.net/qjyong/article/details/2158097 这两篇文章都认为ThreadLocal的实现原理说到底是一个Map<Thread currentThread, Object value>: public class CustomThreadLocal { private static Map threadMap = new HashMap(); ...
参考文章: http://coolshell.cn/articles/2704.html http://www.programcreek.com/2013/10/top-10-questions-for-java-regular-expression/ java里用正则表达式判断是否素数: public static boolean prime(int n) { return !new String(new char[n]).matches(".?|(..+?)\\1+"); } 还可以解方程: public static void sovleLinearEqua ...
参考以下两篇文章,对原作者表示感谢: http://blog.csdn.net/small_love/article/details/6664831 http://www.ibm.com/developerworks/cn/opensource/os-cn-cas/ 一、我的开发环境: Host: 192.168.200.170 ljn.com 192.168.200.170 client.com 其中ljn.com用于server端生成证书 CAS: Service 版本    cas-server-3.4.8-release Client版本      cas-client-3.2.1- ...
package com.ljn.base; import java.util.Arrays; import java.util.Comparator; import java.util.Set; import java.util.TreeSet; /** * POJ 1177 (线段树+离散化+扫描线),题目链接为http://poj.org/problem?id=1177 * * 关于扫描线(ScanLine)和线段树结点(Node)各 ...
Global site tag (gtag.js) - Google Analytics