`
luckaway
  • 浏览: 137876 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
异常是面向对象语言非常重要的一个特性,良好的异常设计对程序的可扩展性、可维护性、健壮性都起到至关重要。 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:嵌入式数据库就是嵌入到应用程序中的数据库,运行和销毁都是随着应用程序的进行的。 ...
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 ...
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 ...
    1.样式、动作、数据的分离,采用外部文件的方式引入javascript和css可以缩短加载时间,而且浏览器都会缓存外部文件。     2.压缩静态资源文件,包括css、javascript和图片,通常全站都引用相同的css和js,所以压缩会较大程度提高网站的性能。图片的压缩前后大小变化是非常明显的,特别是大图片(几M的)位于全站首页,很有可能导致服务器挂掉。如果有必要也可以压缩HTML自身的页面。     3.使用良好的结构,删除不必要的html元素,尽量使用css布局来代替表格布局。     4. 适当使用ajax来加载和刷新局部数据,使用json而不是xml格式传输数据。json是 ...
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]); }
Global site tag (gtag.js) - Google Analytics