- 博客(28)
- 收藏
- 关注
原创 网络爬虫
public class Spider implements Runnable { private ArrayList urls; //URL列表 private HashMap indexedURLs; //已经检索过的URL列表 private int threads ; //初始化线程数 public static void main(Strin...
2009-01-13 15:46:11
181
原创 URL消重-信息指纹
数学之美 系列十三 信息指纹及其应用2006年8月3日 上午 11:17:00<noscript></noscript>发表者:吴军,Google 研究员 任何一段信息文字,都可以对应一个不太长的随机数,作为区别它和其它信息的指纹(Fingerprint)。只要算法设计的好,任何两段信息的指纹都很难重复,就如同人类的指纹一样。信息指纹在加密、信息压缩和处理中有着广...
2009-01-13 14:40:05
291
原创 设计模式
package lq.test; import java.io.*; import java.util.*; //*********创建型模式*************** //factory method 1 //1具体的构造算法,和2构造出的具体产品由子类实现 interface Product { } //或者我也...
2009-01-12 22:45:53
154
原创 J2SE 5.0新特性 之 线程
1.1. 进程、线程与线程池 所谓进程是一种在自身定址空间中执行的相对独立的程序,是现代操作系统的基石。现在的多任务操作系统,会周期性地将CPU的时间划分给每一个进程,使操作系统得以同时执行一个以上的程序。 线程则是进程中的一个“单一连续控制的流程”,一个进程中可以拥有多个并行的线程。但线程不能单独存在,它依附于进程,只能从进程中派生而来。如果一个进程派生出...
2009-01-10 13:20:50
142
原创 爬虫/蜘蛛程序的制作
问题是对某一网站或所有网站进行抓取,即下载所有网页。怎么实现呢?先将问题最小化(转化的思想,转化为小规模,可以解决的问题):如果只有一个网页,怎么下载?问题变地很简单,只要用WebClient/WebRequest(甚至OpenFileDialog都可以)打开Url地址,将数据流存入本地存储器的文件(以相应的扩展名作为扩展名)即可。示例代码如下:string BoardStream;//下载内容存...
2009-01-10 11:40:58
625
原创 lucene多索引文件并行查询
Lucene并行索引多目录Lucene并行索引多目录1、多字段搜索就是同时要一个以上的字段中的内容进行比较搜索,类似概念在SQL中就是select * from Table where a like '%query%' or b like '%query%'。Lucene.net中的单个字段查询大家都比较熟悉,这里对字段content进行搜索Query query = QueryParser.Pa...
2009-01-10 11:35:58
129
原创 java.util.concurrent系列文章--(5)网络服务的简单实践
2006 年 1 月 18 日Java5增加了新的类库并发集java.util.concurrent,该类库为并发程序提供了丰富的API多线程编程在Java 5中更加容易,灵活。本文通过一个网络服务器模型,来实践Java5的多线程编程,该模型中使用了Java5中的线程池,阻塞队列,可重入锁等,还实践了Callable, Future等接口,并使用了Java 5的另外一个新特性泛型。简介本文将...
2009-01-06 21:36:33
103
原创 java.util.concurrent系列文章--(4)非阻塞算法简介
Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能。非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 —— 例如比较和交换。非阻塞算法的设计与实现极为困难,但是它们能够提供更好的吞吐率,对生存问题(例如死锁和优先级反转)也能提供更好的防御。在这期的 Java...
2009-01-06 21:34:42
115
原创 java.util.concurrent系列文章--(3)基于硬件同步原语的原子类型
在 JDK 5.0 之前,如果不使用本机代码,就不能用 Java 语言编写无等待、无锁定的算法。在 java.util.concurrent 中添加原子变量类之后,这种情况发生了变化。请跟随并行专家 Brian Goetz 一起,了解这些新类如何使用 Java 语言开发高度可伸缩的无阻塞算法。您可以在本文的 论坛中与作者或其他读者共享您对本文的看法。(也可以通过单击文章顶部或者底部的 讨论链接来访...
2009-01-06 21:34:02
147
原创 java.util.concurrent系列文章--(1)JDK1.5 并发集合
Doug Lea 最初编写的 util.concurrent 包变成了 JSR-166 ,然后又变成了 J2SE 平台的 Tiger 版本。这个新库提供的是并发程序中通常需要的一组实用程序。如果对于优化对集合的多线程访问有兴趣,那么您就找对地方了。请在本文对应的讨论论坛上与作者 John Zukowski 及其他读者分享您对本文的想法。(您也可以单击文章顶部或底部的 讨论来访问论坛)。 在 Ja...
2009-01-06 21:28:32
104
原创 Webservice 的设计和模式
Webservice 作为一项新的技术出现在我们面前,它的出世是用于解决在不同的平台下的应用的协同的。目前几乎每家厂商都要去开发Webservice 应用,然而如果缺乏对Webservice更深的了解,不能很好的在设计阶段处理好一些重要的问题,那么最终完成的系统必然是效率低下,没有可靠性的产品。 在设计Webservice 应用时,以下几点务必要考虑到:l 管理好与外系统的...
2008-12-04 14:05:00
110
原创 Java远程通讯可选技术及原理
Java远程通讯可选技术及原理 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、 Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是...
2008-12-04 11:35:05
107
原创 Hibernate+Spring+Struts2整合开发中的一个分页显示方案
Hibernate+Spring+Struts2整合开发中的一个分页显示方案 分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流。1、DAO层接口的设计,在Memb...
2008-12-01 09:07:34
188
原创 使用ftp4j类来实现FTP操作
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能。可以将ftp4j嵌到你的Java应用中,来传输文件(包括上传和下载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括:通过 TCP/IP直接连接,通过FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理连接,通过SSL安全连接。简...
2008-12-01 09:02:10
405
原创 QQ面试7(待续)
121、内部类可以引用他包含类的成员吗?有没有什么限制?一个内部类对象可以访问创建它的外部类对象的内容内部类如果不是static的,那么它可以访问创建它的外部类对象的所有属性内部类如果是sattic的,即为nested class,那么它只可以访问创建它的外部类对象的所有static属性一般普通类只有public或package的访问修饰,而内部类可以实现static,protected,pri...
2008-11-26 16:10:33
187
原创 QQ面试6
101、java中会存在内存泄漏吗,请简单描述。的确存在Java的内存泄漏, 并且事态可以变得相当严重Java garbage collector自动释放哪些内存里面程序不在需要的对象, 以此避免大多数的其他程序上下文的内存泄漏. 但是Java应用程序依旧会有相当的内存泄漏. 查找原因会十分困难. 有两类主要的Java内存泄漏:* 不再需要的对象引用* 未释放的系统资源 2.2 非必要的对象引用J...
2008-11-26 16:09:47
86
原创 QQ面试5
81、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增加set PRODUCTION_MODE=true。82、如何启动时不需输入用户名与密码?修改服务启动文件,增加 WLS_USER和WLS_PW项。也可以在boot.properties文件中增加加密过的用户名和密码...
2008-11-26 16:09:06
109
原创 QQ面试4
61、servlet的生命周期web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。62、如何现实servlet的单线程模式63、页面间对象传递的方法request,session,applicat...
2008-11-26 16:08:01
161
原创 QQ面试3
41、是否可以继承String类? String类是final类故不可以继承。 42、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上? switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。 43、...
2008-11-26 16:07:21
147
原创 QQ面试2
21、Static Nested Class 和 Inner Class的不同。 Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。22、JSP中动态INCLUDE与静态INCLUDE的区别?动态INCLUDE用jsp:include动作实现 <!--include file="inc...
2008-11-26 16:06:11
133
原创 QQ面试1
1、面向对象的特征有哪些方面 (1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。(2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继...
2008-11-26 16:05:07
105
原创 Tomcat4.1、5.5、6.0的连接池配置及测试程序
连接池配置需要在应用部署文件的<Context>节点内添加<Resource>描述。对于Tomcat5和Tomcat6,官方建议不要将<Context>的配置直接写在server.xml中,使用单独的xml文件部署应用的方法请参见:http://www.blogjava.net/fastunit/archive/2008/05/22/202112.html本...
2008-11-26 13:05:50
137
原创 Lucene 索引结构
Lucene核心部分——索引排序 Lucene 的索引排序是使用了倒排序原理。 该结构及相应的生成算法如下: 设有两篇文章1和2 文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too. 文章2的内容为:He once lived in Shanghai. 1. 由于lucene是基于关键词索引和查询的,首先我们要取得这两篇文章的关键词,通...
2008-11-25 15:07:08
329
原创 Lucene 性能优化
当索引的文件不多时,用 Lucene 默认的设置就能得到很好的性能。但是,如果索引大量文件,就得通过一些手段去提高 Lucene 索引性能。 1、 索引性能差的原因 1) Lucene 索引过程 在索引文件的过程中, Lucene 不是直接将文件索引到磁盘上,而是首先缓存,然后在写到磁盘。如上图所示。 2) 索引过程的瓶颈 ² 往...
2008-11-25 14:55:33
267
原创 Hibernate性能调优
我们先看一下常见的一个问题:inverse = ?我们考虑两种状况:inverse=false(default)1、用于单向的1对多关联2、parent.getChildren().add(child) 插入子对象3、parent.getChildren().delete(child) 删除子对象inverse=true1、用于双向的1对多关联2、child.setParent(parent)...
2008-11-25 14:16:00
84
原创 Eclipse + CDT + MinGW 安裝方法
Eclipse除了可以開發Java之外,還支援了許多語言,當然絕不會漏了 C/C++,現在就來看看如何利用 Eclipse 進行C/C++程式的開發。要使用 Eclipse 開發c/c++ 程式最主要的幾個步驟:1. 安裝 JRE由於 Eclipse 本身是用 Java 開發而成,因此自然需要使用到 JRE,如果先前已經安裝過了就可以不必安裝了。2. 安裝 Eclipse這當然沒問題,一定要裝的...
2008-11-25 10:55:40
132
原创 如何在Linux使用Eclipse + CDT开发C/C++程序?
A. 为什么要在Linux使用Eclipse开发C/C++程序? Linux是一个以C/C++开发为主的平台,无论是Kernel或是Application,主要都使用C/C++开发。传统在Linux下开发程序,是在文字模式下,利用vi等文字编辑器撰写C/C++程序存盘后,在Command line下使用gcc编译,若要debug,则使用gdb。这种开发方式生产力并不高,若只是开发学习用的小程序则...
2008-11-25 10:52:24
591
1
原创 Hadoop和分布式Lucene
Lucene是大家用的最多的开源搜索引擎。本文不探讨Lucene如何实时更新(http://issues.apache.org/jira/browse/LUCENE-1313),和如何修改Lucene评分机制,添加如PageRank评分因子,本文只讨论分布式的Lucene。 说到Lucene一般都会提到Nutch,Hadoop最早是Doung Cutting为了Nutch的crawler...
2008-11-25 10:32:25
904
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人