今天为这个这里简单做了些SEO工作

先来个名词解释,SEO——Search Engine Optimization,即:搜索引擎优化。

主页上线有段日子了,我连续监测了一段时间,发现搜索引擎收录量非常少,Google还好,百度方面完全没有收录。

看来必须动手做SEO了,由于这个主页所采用的风格模板基本上都是DIV+CSS的,减轻了不少优化的工作量。于是主要工作就是围绕着description和keywords来进行的。首先改写了description的内容,用一段简要的文字来描述本站。然后将一些站点内容所涉及到的关键词放到keywords中。最后Uploading…

改动不是很大,希望收录量能上升,等段时间看看效果吧……

Java多线程控制的心得

近期我刚刚完成了一个信息采集的Java项目,其中采集环节是以多线程的方式来运行的。开发时在多线程的控制方面遇到了不少的麻烦,主要是线程同步问题和线程的状态管理,我就这两方面简单谈谈自己的心得。

在Java中,经常会出现多个线程同时对同一资源进行操作,比如同时改变同一个变量,例如线程A刚刚将变量值改为1,紧接着线程B又将变量值改为2,这时线程A继续下面的程序时如果需要用的这个变量,就会出现错误。

因此我们需要让一个线程操作资源时其他线程进行等待,这就需要用到锁的概念,Java中提供了synchronized这个方法让线程对资源操作时进行同步。synchronized具体的用法可以上网搜索一下,相关的技术文章很多很多。这里就不详细举例了。

在我的项目中,还遇到了另外一个问题,就是线程尚未结束,主进程就已经结束了,由于主进程过早结束造成数据库连接被销毁,导致线程无法正常操作数据库而报错。我的解决方案是先构建一个线程池,线程池中记录活动的线程数量,在主进程最后结束前,做一个while循环判断线程池中的活动线程数量,当活动线程为0时,再退出while循环并且结束主进程。

线程池的实现方法简要来说就是每创建一个新的线程,就将线程池中的活动线程数量+1,当线程结束时,通过线程回调,将线程池中的活动线程数量再-1。

Java多线程的实现

以NetBeans环境为例,新建一个J2SE的项目,然后在项目中新建一个名为mythread的包,在mythread包中,新建两个类,分别为Main.java和MyThread.java,下面提供这两个文件的代码。

Main.java代码:

MyThread.java代码:

Java的数组冒泡排序法

互联网产品设计文档类型简介(BRD、MRD、PRD和FSD)

BRD(Business Requirements Document),商业需求文档。这是产品声明周期中最早的问的文档,再早就应该是脑中的构思了,其内容涉及市场分析,销售策略,盈利预测等,通常是和老大们过的ppt,所以也就比较短小精炼,没有产品细节。

MRD(Market Requirements Document),市场需求文档。获得老大的认同后,产品进入实施,需要先出MRD,具体来说要有更细致的市场与竞争对手分析,通过哪些功能来实现商业目的,功能/非功能需求分哪几块,功能的优先级等等。实际工作中,这个阶段PD可能的产出物有Mind Manager的思维图,Excel的Feature List等。

PRD(Product Requirements Document),产品需求文档。

阅读全文

分享一个用jQuery实现自动检测并设置浏览器编码的实例

最近在一个项目遇到了需要全部适用UTF-8编码来制作页面的问题,发现有时浏览器并不那么听话,于是写了一段自动检测并且设置浏览器编码的程序,非常简单,具体方法如下:

下面html页面:

下面是autocharset.js文件:

弹出的模式窗体控制父窗体的方法

在父窗体中弹出一个模式窗体:

var strUrl = ‘test.php’;
window.showModalDialog(strUrl, window, “dialogWidth:800px; dialogHeight:600px; dialogHide:yes; scroll:no; status:no”);

在模式窗体中获取父窗体对象,并控制父窗体页面进行刷新(也可以进行其他操作)。

var objParentWin = window.dialogArguments; //获取父窗体对象
objParentWin.location.reload(); //刷新父窗体

一个匹配正浮点数的正则表达式