自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (3)
  • 收藏
  • 关注

JAVA异常设计原则

异常是面向对象语言非常重要的一个特性,良好的异常设计对程序的可扩展性、可维护性、健壮性都起到至关重要。JAVA根据用处的不同,定义了两类异常 * [b]Checked Exception: [/b]Exception的子类,方法签名上需要显示的声明throws,编译器迫使调用者处理这类异常或者声明throws继续往上抛。 * [b]Unchecked Exception: ...

2011-01-01 20:39:04 247

原创 多线程编程的经验总结

本人对多线程的认识是非常浅薄的,尤其是线程间的交互,都还没实践过的,但至少写过一些简单的多线程程序,还是能总结出一点经验出来。 1. 给线程设置一个能说明它工作内容的名字,这对调试和排错都非常有帮助。比如“send-sms-thread”比默认的“thead-1,thread-2”直观多了。 2. 线程的一定要catch所有的异常,如果不希望出现异常就终止线程,那就在循环体...

2010-10-14 22:40:39 219

装饰器模式实现检索模块

[img]http://dl.iteye.com/upload/attachment/241398/dd68339b-af94-3845-bfdd-14af6019ddb3.jpg[/img]

2010-04-28 12:22:04 138

原创 安装java--error while loading shared libraries: libstdc++.so.5

error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory apt-get install libstdc++5

2010-02-01 21:08:20 152

原创 Servlet的Filter实现页面缓存

java有多个开源的缓存系统都支持页面缓存的,如OScache、Ehcache。这个例子就是从Ehcache里挖出来的,并做了些改造和简化,但原理在此例子中都是完全体现出来了。该例子只供大家学习用,企业应用还是需要做一些修改的。因为页面数据只是直接存放到HashMap里。CacheFilter.java页面数据就是存放到HashMap里,key是url。[code="java"...

2010-02-01 16:36:01 427

原创 常用正则表达式(转)

[b]PS:某些正则表达式不是很严格,只能做个简单的验证[/b] 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双...

2010-01-27 10:35:21 108 1

原创 linux下安装nutch-1.0--内部网络爬虫和检索的实现

Nutch是一个完整的开源全文检索软件,它是建立在lucene java之上增加,增加了一些web特性,如网络爬虫,link-graph数据库,HTML文本解析和其他格式文档解析,等等。[b][size=large]下载nutch[/size][/b]1.选择安装nutch的目录,我就直接安装到/home/admin下[code="java"][root@search-te...

2010-01-12 15:56:27 140

原创 tomcat源码—redirect和forward的实现

网上已经有很多关于redirect和forward区别的文章,更多的都是只是一些概念上的描述,虽然在大多情况下,知道这些就已经足够了。但也有例外:forward not working for struts2,why?我也是在工作中碰到了这个问题,才特意看了下tomcat有关这部分的源代码。深刻的了解下也无妨。redirect和forward都是属于servlet规范的,不同的servlet容...

2009-12-27 22:19:05 320

原创 junit4入门

转载自:[url]http://www.ibm.com/developerworks/cn/java/j-junit4.html[/url] JUnit 是 Java? 语言事实上的 标准单元测试库。JUnit 4 是该库三年以来最具里程碑意义的一次发布。它的新特性主要是通过采用 Java 5 中的标记(annotation)而不是利用子类、反射或命名机制来识别测试,从而简化测试...

2009-12-24 14:07:06 74

原创 lucene管理IndexReader和IndexWriter的最佳实践

实例化IndexReader需要加载索引文件,所以实例化它是非常耗资源的。IndexReader是线程安全的,通常一个索引目录,我们只实例化一个IndexReader就够了。当索引数据足够大(G的数量级)的时候,一般把索引资源按照某种规则散列到多个文件目录里(如:index-0,index-1,index-2.... 或者 blog,posts....),当然这些文件目录应该放在同...

2009-12-03 16:09:33 193

Berkeley DB

Berkeley DB(简称dbd)是oracle下一款开源的、高效的、可靠的、持久存储的、无管理界面的嵌入式数据库。一般作为应用程序“边缘”数据库,“边缘”是相对主数据库来说的,bdb只是存一些关键性的数据。 因为它的结构简单,不支持sql查询。所以他的效率是非常之高,可扩展性和可用性也非常好。 dbd有三个产品1.Berkeley DB 4.82.Berkeley D...

2009-11-08 11:08:38 73

md5的java实现

[code="java"]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'}; Messa...

2009-11-03 12:02:17 101

memcachedb的性能测试

memcachedb是新浪工程师开发的持久的分布式存储系统。前端用memcache作缓存,后端用Berkeley DB做持久存储,支持事务。存储方式简单,只支持key-value存取方式,所以效率非常高。适合存储高流量网站的点击率、浏览量等。memcachedb的官网:[url]http://memcachedb.org/[/url]测试环境Memachedb sere...

2009-11-02 12:49:06 100

原创 网站前台页面优化

1.样式、动作、数据的分离,采用外部文件的方式引入javascript和css可以缩短加载时间,而且浏览器都会缓存外部文件。 2.压缩静态资源文件,包括css、javascript和图片,通常全站都引用相同的css和js,所以压缩会较大程度提高网站的性能。图片的压缩前后大小变化是非常明显的,特别是大图片(几M的)位于全站首页,很有可能导致服务器挂掉。如果有必要也可以压缩HTM...

2009-10-26 10:51:40 111

用js对象模拟HashMap的部分功能

var jsMap=new Object();//put元素:key是js对象的属性名,value是属性名对应的值jsMap[key1]=new Person("zhangshan");jsMap[key2]=new Person("lishi");//判断是否存在if(jsMap[key]) return true;//遍历Mapfor(key in jsM...

2009-10-09 13:46:29 150

为什么产生“Too many open files”

操作系统都会限制一个进程同时打开文件的最大数量,通常linux默认的是1024.lucene有可能会导致“Too many open files”的异常,这取决于你是否正确使用lucene。1.总是要确保打开的文件句柄关闭掉,特别是出现错误的情况,捕获该异常,并在finally块释放持有的文件句柄。请记住,java没有拆构器,不要在finalize方法里处理文件句柄,该方法不会确保都被执行...

2009-09-20 21:25:45 158

两台linux服务器建立无密码通道

[b]服务器A->服务器B建立无密码通道[/b][quote]1.服务器A:ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no ...

2009-09-04 19:36:04 124

javascript的命名空间

JavaScript里并不存在“命名空间”的概念,但是JavaScript所有的对象都有自己的属性,属性又可以是对象,这样层层包装起来就能创造出像其他的语言的命名空间的效果。[code="JavaScript"]//创建一个默认的全局的命名空间var JAVAEYE={}//使用对象设置一些子命名空间JAVAEYE.blog={}JAVAEYE.forum={}//...

2009-08-27 16:14:07 107

根据文件最后修改时间来读取文件

[code="java"]public class ForumCategoryDaoImpl implements ForumCategoryDao { private String forumCategoryFilePath = null; private final Map forumCategoriesMap = new HashMap(); // Volatile修...

2009-08-27 08:30:20 137

原创 带你深入了解Web站点数据库的分布存储

在Web 2.0时代,网站将会经常面临着快速增加的访问量,但是我们的应用如何满足用户的访问需求,而且基本上我们看到的情况都是性能瓶颈都是在数据库上,这个不怪数据库,毕竟要满足很大访问量确实对于任何一款数据库都是很大的压力,不论是商业数据库Oracle、MS sql Server、DB2之类,还是开源的MySQL、PostgreSQL,都是很大的挑战,解决的方法很简单,就是把数据分散在不同的数据库上...

2009-08-14 14:07:56 109

CREATE DATABASE的用法

语法:[code="java"]CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=]...

2009-08-05 11:37:53 808

分治算法——归并排序的java实现

1.分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。分治法解题的一般步骤:(1)分解,将要解决的问题划分成若干规模较小的同类问题;(2)求解,当子问题划分得足够小时,用较简单的方法解决;(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。2.归并排序:是建立在归并操作上...

2009-08-05 09:08:43 182

linux实用命令

查看某个进程打开的文件:lsof -p ${pid} ${pid}是你要查看的进程号。

2009-07-23 16:22:42 79

web项目典型的工程目录结构和build.xml

--yourproject --src d --java d 运行的java源代码 --test d 单元测试的源代码 --configs d 配置文件 --lib d 开发需要的lib(里面通常是运行时不需要的jar) --build.propertis f (ant的) --build.xml f (ant) ...

2009-07-09 17:22:37 598

java Shutdown Hooks的使用

[code="java"]Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { LOG.info("Graceful shutdown RMI Server,rmi info:%s", distributedServer); System.out.println("Gracef...

2009-07-04 12:57:54 292

log4j 邮件 配置

Log4j在java项目中应该非常广泛的一个工具。但经常的去检查日志是非常繁琐的一个事情,有时,我们就需要配置log4j 发送邮件!首先需要三个jar包:log4j-1.2.15.jar(版本低于log4j-1.2.14.jar不支持smtp认证)、mail.jar、activation.jar先用编码方式测试邮件是否能发送。[code="java"...

2009-07-03 09:17:58 163

用lucene的注意事项(抛砖引玉)

1.同一个索引目录,IndexWriter和IndexReader确保要唯一,他们两个都是线程安全的,可以被多个线程调用。 让专门的类去管理(实例化和销毁)IndexWriter和IndexReader。2.尽量减少不必要的储存,只储存哪些要在返回结果里的字段,不需要检索的内容就不要建索引。索引太大了,对更新索引的效率都会有影响。3.不要强制kill建索引的程序,强制kill很有可...

2009-06-05 13:36:39 144

用spring的断言实现对service的参数验证

通常service每个公开的方法,都要先验证传入的参数是否合法,如果参数的值不合法直接抛异常。举一个简单的例子:有一个根据username获取User的方法 getUser(String username);为了安全性,这时方法的编写者通常会在方法体的最前面编写一段对入参进行检测的代码,如下所示:[code="java"]public User getUser(String usern...

2009-05-12 08:29:16 796

原创 lucene2.4.1的TokenStream

[code="java"]import java.io.IOException;import org.apache.lucene.analysis.Token;import org.apache.lucene.index.Payload;/** * TokenStream用来分析文字流,按一定的规则罗列token,在lucene有字节流是即将要索引的文本,或者查询的关键字。...

2009-05-07 12:52:41 175

原创 lucuene索引文件介绍

没优化之前的索引文件包含了一系列的文件,其中每个文件的功能对应如下。1.segments_* 文件描述一组索引的参数,使用头文件固定格式描述后面的内容,包括每个独立新建索引的大小、属性等。2.Fnm文件是索引域的描述文件,一个独立的索引(PerIndex)叫做一个Segment(索引段),一个fnm文件描述了本索引的File数,各个Field的属性编号。3.fdx文件是文档...

2009-04-30 08:36:33 110

生日转星座的java代码(附单元测试)

星座的枚举类ConstellationUtil .java [code="java"]public class ConstellationUtil { public enum Constellation { Capricorn(1, "摩羯座"), Aquarius(2, "水瓶座"), Pisces(3, "双鱼座"), Aries(4, "白羊座"), Taurus(...

2009-04-29 08:39:47 351

私有方法的单元测试

直接上例子待测试的类[code="java"]public class Calculator { private int count = 0; private int add(int a, int b) { return a + b; } private void increase() { count++; }}[/code]...

2009-04-10 21:02:02 1779

原创 发表日:2008/7/23 作者:长野雅广(Masahiro Nagano) 原文链接:http:/

发表日:2008/7/30作者:长野雅广(Masahiro Nagano)原文链接:http://gihyo.jp/dev/feature/01/memcached/0005前几次的文章在这里: * 第1次:http://tech.idv2.com/2008/07/10/memcached-001/ * 第2次:http://tech.idv2.com/20...

2009-01-13 10:17:46 105

原创 下面是《memcached全面剖析》的第三部分。 发表日:2008/7/16 作者:前坂徹(Tor

发表日:2008/7/23作者:长野雅广(Masahiro Nagano)原文链接:http://gihyo.jp/dev/feature/01/memcached/0004前几次的文章在这里: * 第1次:http://tech.idv2.com/2008/07/10/memcached-001/ * 第2次:http://tech.idv2.com/20...

2009-01-13 10:17:18 71

原创 下面是《memcached全面剖析》的第二部分。 发表日:2008/7/9 作者:前坂徹(Toru

下面是《memcached全面剖析》的第三部分。发表日:2008/7/16作者:前坂徹(Toru Maesaka)原文链接:http://gihyo.jp/dev/feature/01/memcached/0003前几次的文章在这里: * 第1次:http://tech.idv2.com/2008/07/10/memcached-001/ * 第2次...

2009-01-13 10:16:45 84

原创 memcached完全剖析–1. memcached的基础

[b]作者charlee、原始链接http://tech.idv2.com/2008/07/10/memcached-001/以及本声明。[/b]翻译一篇技术评论社的文章,是讲memcached的连载。fcicq同学说这个东西很有用,希望大家喜欢。发表日:2008/7/2作者:长野雅广(Masahiro Nagano)原文链接:http://gihyo.jp/dev/f...

2009-01-13 10:12:11 105

自定义异常的原则(转)

“本文是Exception处理的一篇不错的文章,从Java Exception的概念介绍起,依次讲解了Exception的类型(Checked/Unchecked),Exception处理的最佳实现:1. 选择Checked还是Unchecked的几个经典依据2. Exception的封装问题3. 如无必要不要创建自己得Exception4. ...

2008-05-04 16:11:55 232

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除