君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 106 下一页

2012年11月19日 #

摘要: 天地连站群可以根据用户输入的初始关键词,获取该关键词搜索引擎的搜索结果,然后逐条获取这些相关文章的内容。这样就需要面对无数网页的各种编码。为了解决这个问题,引入了下面的解决办法:在引入编码自动识别前,我们有两种途径获取网页的编码信息:其一、通过服务器返回的header里的charset变量获取其二、通过页面里的meta 信息获取正常情况下,如果服务器或者页面有提供这两个参数,而且参数是正确的,那我们抓取网页时就不存在编码的问题了。但是现实总是会难为我们这些程序员,抓取网页时,经常会出现以下几种情况:1.这两个参数缺失了2.这两个参数虽然都提供了,但是不一致3.这两个参数提供了,但是与网页实际的 阅读全文
posted @ 2012-11-19 22:17 刺猬的温驯 阅读(1200) 评论(1) 推荐(1) 编辑

2012年11月18日 #

摘要: 前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示:从上图我们可以很清楚看到,通过一个共享的队列,可以使得数据由队列的一端输入,从另外一端输出;常用的队列主要有以下两种:(当然通过不同的实现方式,还可以延伸出很多不同类型的队列,Dela. 阅读全文
posted @ 2012-11-18 23:11 刺猬的温驯 阅读(248) 评论(0) 推荐(0) 编辑

2012年11月16日 #

摘要: 简介:您可能已经非常熟悉新的 Java? 5 语言的泛型支持、并发工具库以及它们对集合框架的影响,但是这些并不是 Tiger 中集合框架的惟一变化。这个月,John Zukowski 将介绍另外几项增强,其中包括新的集合类型,以及现有类和接口的附加特性。请参与本文的讨论论坛。(可以单击文章顶部的讨论来访问该论坛。)JDK 5.0 中最吸引人的地方在于集合框架的一些最突出的特性上,例如:支持泛型的语言级别上的新变化,以及可以在java.util.concurrent包中找到的并发集合工具包。实际上,以前在 developerWorks 上的“驯服 Tiger: 并发集合”和“介绍 JDK 5.0 阅读全文
posted @ 2012-11-16 00:54 刺猬的温驯 阅读(292) 评论(0) 推荐(0) 编辑

摘要: 简介:Doug Lea 最初编写的util.concurrent包变成了 JSR-166 ,然后又变成了 J2SE 平台的 Tiger 版本。这个新库提供的是并发程序中通常需要的一组实用程序。如果对于优化对集合的多线程访问有兴趣,那么您就找对地方了。请在本文对应的讨论论坛上与作者 John Zukowski 及其他读者分享您对本文的想法。(您也可以单击文章顶部或底部的讨论来访问论坛)。在 Java 编程的早期阶段,位于 Oswego 市的纽约州立大学(SUNY) 的一位教授决定创建一个简单的库,以帮助开发人员构建可以更好地处理多线程情况的应用程序。这并不是说用现有的库就不能实现,但是就像有了标 阅读全文
posted @ 2012-11-16 00:54 刺猬的温驯 阅读(249) 评论(0) 推荐(0) 编辑

2012年11月1日 #

摘要: CDO的全称为Common Data Object 是公用数据结构的意思,这是抽象的一种新型的数据结构,可以设置基本的数据类型,比如:byte、short、int、long、float、double、String,也可以存储这些类型的数组,同样,CDO里可以嵌套新的CDO或者CDO数组,这种数据结构几乎是万能的数据结构,它可以很方便的转化为XML表示,也可以很方便的转化为Json的表示,同样XML或者Json也可以很方便的转化为CDO对象,设想有如下的代码:01CDO cdo1=newCDO();02cdo1.setIntegerValue("classid",1);03c 阅读全文
posted @ 2012-11-01 23:40 刺猬的温驯 阅读(1211) 评论(0) 推荐(0) 编辑

摘要: CDO中存储的数据类型用如下的接口常量定义:01packagecom.cdoframework.cdolib.base;0203importjava.io.Serializable;04importjava.text.SimpleDateFormat;050607publicinterfaceDataTypeextendsSerializable08{091011intNONE_TYPE =0;1213intBOOLEAN_TYPE =1;14intBYTE_TYPE =2;15intSHORT_TYPE =3;16intINTEGER_TYPE =4;17intLONG_TYPE =5;18 阅读全文
posted @ 2012-11-01 23:36 刺猬的温驯 阅读(462) 评论(0) 推荐(0) 编辑

摘要: 今天看NFS-RPC的源码,看到有这样的代码:Collections.unmodifiableList(servers);突然想起来自己之前看重构时的一种叫Encapsulate Collection的思想,今天以代码为主线再来回顾下:1publicclassCompany {23privateString companyName;//the name of company4privateList<String> clerkList;//the clerk list56//companyName,clearList getter and setter method7........ 阅读全文
posted @ 2012-11-01 23:35 刺猬的温驯 阅读(157) 评论(0) 推荐(0) 编辑

摘要: 在模块化Java系列文章的第4篇里,我们将介绍声明式模块化,描述如何定义组件并将它们组织在一起,而无需依赖于OSGi API进行编程。前一篇文章,《模块化Java: 动态模块化》描述了如何通过使用服务(service)给应用程序带来动态模块化特性。它们是通过输出的一个(或多个)可以在运行时被动态发现的接口而实现的。尽管这种方式使得client和server完全解耦,但是又带来一个如何(何时)启动服务的问题。启动顺序在彻头彻尾的动态系统里,服务不仅可以在系统运行的时候装卸,还可以以不同的顺序启动。有时,这是个大问题:无论A和B的启动顺序如何,在系统达到就绪状态并准备好接收事件之前,如果没有事件( 阅读全文
posted @ 2012-11-01 23:24 刺猬的温驯 阅读(336) 评论(1) 推荐(0) 编辑

摘要: 本文是“模块化Java”系列文章的第三篇,我们将讨论动态模块化。内容涉及如何解析bundle类、bundle如何变化、以及bundle之间如何通信。在前一篇文章《模块化Java:静态模块化》中,我们讨论了如何构建Java模块并将其作为一个单独的JAR进行部署。文中的例子给出了一个client和一个server bundle(两者在同一个VM中),client通过工厂方法找到server。在该例子中,工厂实例化了一个已知类,当然也可以使用反射来获取一个服 务实现;Spring就是大量运用这种技术把spring对象绑定在一起的。在我们讨论动态服务之前,有必要回顾一下类路径,因为标准Java代码和模 阅读全文
posted @ 2012-11-01 23:19 刺猬的温驯 阅读(485) 评论(0) 推荐(0) 编辑

摘要: 模块化是大型Java系统的一个重要特征。在这些项目中构建脚本和项目通常被划分为多个模块,以便改进构建过程,但是在运行时却很少考虑划分模块的问题。在“模块化Java”系列文章的第二篇里,我们将讨论静态模块化(static modularity)。内容包括如何创建bundle、将其安装到OSG引擎以及怎样建立bundle之间的版本依赖。在下一篇文章中,我们将讨论动态模块化(dynamic modularity)并展示bundle如何对其他bundle作出响应。在上篇文章《模块化Java简介》 中讲到,Java在开发时把package作为模块化单元,部署时把JAR文件作为模块化单元。可是尽管像Mav 阅读全文
posted @ 2012-11-01 23:17 刺猬的温驯 阅读(337) 评论(0) 推荐(0) 编辑

上一页 1 ··· 49 50 51 52 53 54 55 56 57 ··· 106 下一页