同步和异步:这两个概念与消息的通知机制有关.举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了.前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息.在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触发机制(在这里是柜台的人)通过某种机制(在这里是写在小纸条上的号码)找到等待该事件的人.而在实际的程序中,同步消息处理就好比简单的read/write操作,它们需要等待这两个操作成功才能返回;而异步处理机制就是类似于select/p Read More
posted @ 2012-02-14 21:53 Andy_YF Views(140) Comments(0) Diggs(0)
==============================================================================我使用的服务方式的Tomcat,内存2G,我在Configure Tomcat-》JAVA-》JAVA OPTIONS中的参数设置是:-Xms500m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=48m -Duser.timezone=GMT+08首先检查程序有没有限入死循环 这个问题主要还是由这个问题 java.lang.OutOfMe Read More
posted @ 2012-02-13 21:53 Andy_YF Views(2582) Comments(0) Diggs(0)
读文件:BufferedReader从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,BufferedReader in = new BufferedReader(new FileReader("foo.in")); Read More
posted @ 2012-02-13 13:41 Andy_YF Views(358) Comments(0) Diggs(0)
读文件:BufferedReader从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。 通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,BufferedReader in = new BufferedReader(new FileReader("foo.in")); Read More
posted @ 2012-02-13 13:41 Andy_YF Views(203) Comments(0) Diggs(0)
在本篇文章中,你会学习到如何利用 Lucene 实现高级搜索功能以及如何利用 Lucene 来创建 Web 搜索应用程序。通过这些学习,你就可以利用 Lucene 来创建自己的搜索应用程序。架构概览通常一个 Web 搜索引擎的架构分为前端和后端两部分,就像图一中所示。在前端流程中,用户在搜索引擎提供的界面中输入要搜索的关键词,这里提到的用户界面一般是一个带有输入框的 Web 页面,然后应用程序将搜索的关键词解析成搜索引擎可以理解的形式,并在索引文件上进行搜索操作。在排序后,搜索引擎返回搜索结果给用户。在后端流程中,网络爬虫或者机器人从因特网上获取 Web 页面,然后索引子系统解析这些 Web Read More
posted @ 2012-02-10 21:06 Andy_YF Views(479) Comments(0) Diggs(0)
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署。在下文中$CATALINA_HOME指的是Tomcat根目录。一、静态部署 静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问。以下3中方式都可以部署: 1、将PetWeb目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器就可以了。这种方式比较简单,但是web应用程序必须在webapps目录下。访问地址如下:http://localhost:8080/PetWeb/ 2、这种方式可以不必将PetWeb目录拷贝到webapps下,直接在F:\部署。方 Read More
posted @ 2012-02-10 20:56 Andy_YF Views(235) Comments(0) Diggs(0)
String.Trim()方法到底为我们做了什么,仅仅是去除字符串两端的空格吗?一直以为Trim()方法就是把字符串两端的空格字符给删去,其实我错了,而且错的比较离谱。首先我直接反编译String类,找到Trim()方法:public string Trim() { return this.TrimHelper(WhitespaceChars, 2); }TrimHelper方法有两个参数,第一个参数名WhitespaceChars,首字母尽然是大写的,肯定有文章,真不出我所料:internal static readonly char[] WhitespaceChars;这里只是定义... Read More
posted @ 2012-02-10 20:52 Andy_YF Views(285) Comments(0) Diggs(0)
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。一、术语session在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为 Read More
posted @ 2012-02-10 20:40 Andy_YF Views(475) Comments(0) Diggs(1)
在tomcat下运行servlet,需要在web.xml文件中对servlet进行配置,下面用一个具体的例子一步一步来看一下整个过程。1:首先创建一个web应用程序,这里我是用Eclipse建的,就叫web吧,存放路径C:/eclipse/workspace/web2:tomcat中,添加conf下的server.xml中的<Context >标记<Context path="/web" reloadable="true" docBase="C:/Eclipse/workspace/web"/>3:编写一个名为 Read More
posted @ 2012-02-10 20:33 Andy_YF Views(1027) Comments(0) Diggs(0)
不管怎么说,搜索都是非常重要的技术,不仅仅是操作系统集成了,很多应用软件都有搜索的功能,论坛有专门用于在论坛搜索的,互联网就有诸如像百度、谷歌之类的搜索引擎,总而言之,只要数据量稍微大一点的应用程序,都会提供搜索这个功能.我们为什么需要Lucene?任何的的查询功能都类似,都是对文本内容的搜索,说白了,就是找出含有指定字符串的的资源,只是查找的范围不同而已.目前的主流搜索都是全文搜索,即根据程序扫描文章中的每一个词,为每一个词建立相应的索引,并且指明该词在文章中出现的次数和位置.当用户查询时,根据建立的索引进行查找,类似于通过字典的检索方式来查字的过程.我们做搜索,要保证几点,第一点就是要快, Read More
posted @ 2012-02-10 20:23 Andy_YF Views(228) Comments(0) Diggs(0)