随笔-4  评论-4  文章-0  trackbacks-0

我的评论

re: blog第一篇 菜菜宝宝 2010-08-25 23:09  
欢迎光临 :-)
re: java 连接池 总结 复习[未登录] 菜菜宝宝 2009-08-26 23:10  
上面说的只是设计连接池中碰到的问题之一,还能很多复杂的问题,诸如:

如果连接的物理连接断开连接池该采取哪些措施?
如果连接池中的连接状态已经超时了该采取什么处理?
如果连接池中的连接耗尽是让用户一直等呢,还是抛出获取连接超时?

等等诸如此类的问题。要想设计一个在现实当中能使用的连接池并非易事!
re: java 连接池 总结 复习[未登录] 菜菜宝宝 2009-08-26 23:06  
我认为不好!看看开源的连接池在使用时跟 JDBC 没有什么区别,采用 con.close() 将连接归还到池中去,而不是用了连接池我们必须用 release(con) 来归还连接。
我们要做到使用和不使用这样东西,对代码来说可以一行不用更改,唯一不同的只是获得连的方式不同,其他的还是完全一样,这样的东西才有价值。
重写 con.close 的方法一般装饰器模式重新包装,或者更为方便地采用动态代理进行拦截之后修改方法的行为。
@xing.liu

@菜菜宝宝
999999@LLL 不匹配
----------------------------------
999999@LLL 我测试的结果是 true 啊?符合博主的要求。
re: 生成蛇形矩阵的算法 菜菜宝宝 2009-07-25 01:35  
 1  2  9 10 25 26
 4  3  8 11 24 27
 5  6  7 12 23 28
16 15 14 13 22 29
17 18 19 20 21 30
36 35 34 33 32 31
哎,不好意思,看错题了,生成这样子的了。
re: 生成蛇形矩阵的算法 菜菜宝宝 2009-07-25 01:30  
public class Hello {

public static void main(String[] args) {
final int N = 6;
for(int i = 0; i < N; i++) {
for(int j = 0, m = 0; j < N; j++) {
if(j >= i) {
boolean b = j % 2 == 0;
m = (b ? (j + 1) * (j + 1) : j * j + 1) + (b ? -i : i);
} else {
boolean b = i % 2 == 0;
m = (b ? i * i + 1 : (i + 1) * (i + 1)) + (b ? j : -j);
}
System.out.printf("%2d ", m);
}
System.out.println();
}
}
}
java.util.Properties 咋没了,这个类是 Hashtable 的子类啊?
re: JDK 和 JRE 目录的文件结构 菜菜宝宝 2009-07-23 00:24  
@yami

您好啊,但是这篇文章仅仅是介绍目录结构的,我感觉也没啥个人意见好发表的啊,呵呵。仅在最后部分补充了些遗漏的部分,但这还不是全部,JRE 的目录下还有其他的目录我暂时还不知道是干什么用的。
@游客

您好,aaaZXXXXCCCC 这个的匹配结果返回的是 false 啊。
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class PasswordTest {

private final static Matcher passwordMatcher = Pattern.compile(
"^(?:([a-z])|([A-Z])|([0-9])|([@#$%])){8,15}$"
).matcher("");

public static void main(String[] args) {

String[] strs = {
"abcdefg12345",
"aaabbbAAA$$$",
"aaabbbAAAa@13434",
"aaAA11",
"AAAaaa113@"
};

for(int i = 0; i < strs.length; i++) {
System.out.printf("str: %-20s length: %2d result: %s%n",
strs[i],
strs[i].length(),
checkPassword(strs[i])
);
}
}

public static boolean checkPassword(String password) {

if (password == null) {
return false;
}

passwordMatcher.reset(password);

if (!passwordMatcher.matches()) {
return false;
}

int count = 0;
for (int i = passwordMatcher.groupCount(); i > 0; i--) {
if (passwordMatcher.start(i) > -1) {
count++;
}
}
return (count >= 3);
}
}