- 浏览: 137876 次
- 性别:
- 来自: 杭州
最新评论
-
Golden_Sky:
需要自己写代码来调用么?还是他自己如果有配置级别的错误时候他就 ...
log4j 邮件 配置 -
Golden_Sky:
luckaway 写道我想相信问一下,这个如果在配置文件中配置 ...
log4j 邮件 配置 -
Golden_Sky:
panda_eyes 写道我也试用过了 还用这个在工作交流会 ...
log4j 邮件 配置 -
Golden_Sky:
sealv 写道你这个是啥版本 为啥我这没有setSMTPUs ...
log4j 邮件 配置 -
Golden_Sky:
我想相信问一下,这个如果在配置文件中配置好了,比如我调整的级别 ...
log4j 邮件 配置
文章列表
异常是面向对象语言非常重要的一个特性,良好的异常设计对程序的可扩展性、可维护性、健壮性都起到至关重要。
JAVA根据用处的不同,定义了两类异常
* Checked Exception: Exception的子类,方法签名上需要显示的声明throws,编译器迫使调用者处理这类异常或者声明throws继续往上抛。
* Unchecked Exception: RuntimeException的子类,方法签名不需要声明throws,编译器也不会强制调用者处理该类异常。
异常的作用和好处:
1. 分离错误代码和正常代码,代码更简洁。
2. 保护数据的正确性和完整性,程序更严谨。
3. ...
本人对多线程的认识是非常浅薄的,尤其是线程间的交互,都还没实践过的,但至少写过一些简单的多线程程序,还是能总结出一点经验出来。
1. 给线程设置一个能说明它工作内容的名字,这对调试和排错都非常有帮助。比如“send-sms-thread”比默认的“thead-1,thread-2”直观多了。
2. 线程的一定要catch所有的异常,如果不希望出现异常就终止线程,那就在循环体里catch异常。如果是碰到异常希望终止线程执行,那就在循环之外捕获异常,并记录异常信息,优雅的终止线程。
3. 日志里最好能把线程名称也记录上,不管是log4j里配置线程名称,或者程序里添加线程名称 ...
error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory
apt-get install libstdc++5
java有多个开源的缓存系统都支持页面缓存的,如OScache、Ehcache。
这个例子就是从Ehcache里挖出来的,并做了些改造和简化,但原理在此例子中都是完全体现出来了。该例子只供大家学习用,企业应用还是需要做一些修改的。因为页面数据只是直接存放到HashMap里。
CacheFilter.java
页面数据就是存放到HashMap里,key是url。
public class CacheFilter implements Filter {
public static final String HEADER_LAST_MODIFIED = "Last-Modifi ...
PS:某些正则表达式不是很严格,只能做个简单的验证
正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? / ...
Nutch是一个完整的开源全文检索软件,它是建立在lucene java之上增加,增加了一些web特性,
如网络爬虫,link-graph数据库,HTML文本解析和其他格式文档解析,等等。
下载nutch
1.选择安装nutch的目录,我就直接安装到/home/admin下
[root@search-test1 ~]# cd /home/admin/
2.下载nutch-1.0:
[root@search-test3 admin]# wget "http://labs.xiaonei.com/apache-mirror/lucene/nutch/nutch-1.0.tar.gz ...
网上已经有很多关于redirect和forward区别的文章,更多的都是只是一些概念上的描述,虽然在大多情况下,知道这些就已经足够了。但也有例外:forward not working for struts2,why?我也是在工作中碰到了这个问题,才特意看了下tomcat有关这部分的源代码。深刻的了解下也无妨。
redirect和forward都是属于servlet规范的,不同的servlet容器的实现可能会有一些区别,但原理都是类似的。
redirect和forward的定义:
1. redirect(重定向):服务端发送给客户端一个重定向的临时响应头,这个响应头包含重定向之后的URL,客户 ...
转载自:http://www.ibm.com/developerworks/cn/java/j-junit4.html
JUnit 是 Java? 语言事实上的 标准单元测试库。JUnit 4 是该库三年以来最具里程碑意义的一次发布。它的新特性主要是通过采用 Java 5 中的标记(annotation)而不是利用子类、 ...
实例化IndexReader需要加载索引文件,所以实例化它是非常耗资源的。
IndexReader是线程安全的,通常一个索引目录,我们只实例化一个IndexReader就够了。
当索引数据足够大(G的数量级)的时候,一般把索引资源按照某种规则散列 ...
Berkeley DB(简称dbd)是oracle下一款开源的、高效的、可靠的、持久存储的、无管理界面的嵌入式数据库。一般作为应用程序“边缘”数据库,“边缘”是相对主数据库来说的,bdb只是存一些关键性的数据。 因为它的结构简单,不支持sql查询。所以他的效率是非常之高,可扩展性和可用性也非常好。
dbd有三个产品
1.Berkeley DB 4.8
2.Berkeley DB Java Edition 3.
3.Berkeley DB XML 2.5
三个产品的结构图如下所示:
PS:嵌入式数据库就是嵌入到应用程序中的数据库,运行和销毁都是随着应用程序的进行的。
...
- 2009-11-08 11:08
- 浏览 1480
- 评论(0)
public class MD5Util {
public final static String getMD5(String s) {
char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
} catch ...
- 2009-11-03 12:02
- 浏览 1023
- 评论(0)
memcachedb是新浪工程师开发的持久的分布式存储系统。前端用memcache作缓存,后端用Berkeley DB做持久存储,支持事务。存储方式简单,只支持key-value存取方式,所以效率非常高。适合存储高流量网站的点击率、浏览量等。
memcachedb的官网:http://memcachedb.org/
测试环境
Memachedb serever安装在linux测试服务器(centOS系统)
客户端测试程序用java,运行在本地PC机。
Key:是md5 32位
Value:ArrayList{745466546,123445645,156465464,31446 ...
- 2009-11-02 12:49
- 浏览 1711
- 评论(0)
1.样式、动作、数据的分离,采用外部文件的方式引入javascript和css可以缩短加载时间,而且浏览器都会缓存外部文件。
2.压缩静态资源文件,包括css、javascript和图片,通常全站都引用相同的css和js,所以压缩会较大程度提高网站的性能。图片的压缩前后大小变化是非常明显的,特别是大图片(几M的)位于全站首页,很有可能导致服务器挂掉。如果有必要也可以压缩HTML自身的页面。
3.使用良好的结构,删除不必要的html元素,尽量使用css布局来代替表格布局。
4. 适当使用ajax来加载和刷新局部数据,使用json而不是xml格式传输数据。json是 ...
- 2009-10-26 10:51
- 浏览 1514
- 评论(0)
var jsMap=new Object();
//put元素:key是js对象的属性名,value是属性名对应的值
jsMap[key1]=new Person("zhangshan");
jsMap[key2]=new Person("lishi");
//判断是否存在
if(jsMap[key])
return true;
//遍历Map
for(key in jsMap){
document.write(jsMap[key]);
}
- 2009-10-09 13:46
- 浏览 1149
- 评论(0)