- 浏览: 787310 次
- 性别:
- 来自: 深圳
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
Netty源码学习-FileRegion -
飞天奔月:
写得有趣 ^_^
那一年你定义了一个接口 -
GoldRoger:
第二个方法很好
java-判断一个自然数是否是某个数的平方。当然不能使用开方运算 -
bylijinnan:
<script>alert("close ...
自己动手实现Java Validation -
paul920531:
39行有个bug:"int j=new Random ...
java-蓄水池抽样-要求从N个元素中随机的抽取k个元素,其中N无法确定
文章列表
今天项目切换数据库时,出错
访问数据库的代码大概是这样:
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)各 ...