Hi,everyone I have enjoyed Scrubyt for days and it worked greatly in most case.However,problems came out when scraped urls from Google and Yahoo at the same time.Here is my code: require 'rubygems'
require 'scrubyt'
Scrubyt.logger = Scrubyt::Logger.new
query = 'ruby'
google_dat ...
Java里面使用常量十分方便,将成员变量定义为final就行了,但在C++中,类的成员变量是不能赋初值的,因此往往将常量声明为全部数据,并用const来修饰。效果类似,但全局数据往往造成程序间不必要的耦合,是error prone,应该能免则免的。有一个变通的办法就是使用枚举:
cpp 代码
class ConstNum
{
.....
private:
enum ...
我曾经在深入浅出java中文问题系列中研究过java的中文问题,现在中文问题已经很少羁绊我在java世界中漫游的脚步了。最近,对Python产生了浓厚的兴趣,谁知道跟中文问题这个老朋友又一次不期而遇。看来,在代码世界中,中文问题会在很长一段时间里跟我们形影不离。这也难怪,谁让当初发明计算机的不是我们中国人呢,否则,现在全世界的计算机都支持而且必须支持GBK,这样,写这样文章的人就不会是我了,而是大洋彼岸的一个金发碧眼的程序员,而且标题也相应改为 “studying the english problem in '大蟒' ”。。哈哈
& ...
最近用Java处理文件的时候,同样遇到了中文问题,觉得还是有必要总结一下,也使该系列的文章更加完整。
熟悉Java 的人都知道,在Java中,IO是分成两大部分的,分别对应字节和字符的操作,也就是Stream和Character,它们之间可以相互转换,桥梁就是StreamInputReader/StreamOutputWriter。为了更加清楚的了解它们之间的关系,我们可以看看它们所在的类结构。
java.lang.Object
java.io.InputStream (implements java.io ...
数据库的重要作用无需多言,java也为我们提供了多种数据库存取方法,如 JDBC,ORM(Hibernate,Toplink)以及EJB中的Entity bean等。其中JDBC是基础,为后面两种方案提供了底层API;后两种对JDBC进行包装,使得我们使用面向对象的方式来操作数据库。在实际运用过程中,我们可以根据自己的实际情况,各取所需。本文主要研究数据库存取过程中可能出现的中文问题,因此选用比较底层的JDBC作为例子。
使用JDBC操作数据库,我们必须得有数据库或者第三方厂商专门提供的数据库驱动程序,在程序运行过程 ...
Web应用中出现的中文问题可能是最常见的,也是网络上讨论得最多的java中文问题了,而这跟JSP(Servlet)技术在Web中的广泛应用有着紧密的联系。Web应用运行在一个分布式的环境中,服务端和客户端通过HTTP协议连接在一起,而数据交换的双方分别是Web容器和浏览器。这就是一个典型的B/S结构的分布式应用。Web容器的存在是Web应用跟一般的控制台程序最大的不同之处。在一般的控制台程序中,数据是直接交付给程序员进行处理的,这样程序员对数据格式的控制有很大的自由度,也比较直观。但是在Web应用中,来自客户端的数据是先交付给Web容器,Web容器处理过后 ...
现代计算机采用的都是冯.诺依曼体系结构,因此都具有相同的结构特征,拥有五大组成部分:输入数据和程序的输入设备,记忆程序和数据的存储器,完成数据加工处理的运算器,控制程序执行的控制器,输出处理结果的输出设备。JVM是一台虚拟的计算机,也有类似的特征。本系列文章研究的是java中文问题,跟输入输出有着密切的联系,为了突出重点,我们暂且将JVM的其它细节放下,只需了解JVM内部的数据是用Unicode表示的,使用的编码方式是UTF-16(至于是UTF-16LE还是UTF-16BE就要看具体的虚拟机实现了,intel x86 -windows 下是UTF-16LE ...
通过引言我们可以知道,java中文问题是由于在输入输出时字符集之间的错位而产生的。那么,当前比较通用的字符集有哪些呢?它们都有些什么特点?它们之间有什么区别和联系?为什么字符集错位会导致出现中文问题呢?要回答这些问题,我们就要对字符集有一个系统的了解。网络上有一篇文章对此作了系统详细的描述,上面的文字相当简明到位。摘抄部分至此,作为系列文章的第二篇,也作以后复习之用。这里并没有把整个文章摘抄下来,主要是为了系列文章的连续性。
字符,字节和编码
原文地址:http://www.regexlab.com/zh/encoding.htm
级别:中级 ...
真正接触过java,或者说曾经用java解决过实际问题的人,对java的中文问题应该都有一定了解。为什么我在编辑器中输入的中文好好的,在控制台打印出来却变成了“星星月亮和问号”呢?我的系统在开发过程中一点问题没有,怎么部署到实际环境中却所有中文都变成了乱码甚至整个系统都运行不起来呢?嘿嘿,你很可能就是遇到java中文问题了。java中文问题是什么?为什么会这样?我该怎么办?问题的答案应该是所有跟类似问题初次碰面的人最迫切想知道的。
java中文问题已经是个老大难问题了,网上也好很多相关的文章, ...
这个问题是跟同学讨论interface Serializable的用法是注意到的。JDK文档中说Serializable 为标记接口(tag interface),实现该接口的类不需要实现任何指定的方法。但是,如果当我们需要自定义序列化过程时,就需要在类中添加两个指定的方法:
java 代码
private void writeObject(java.io.ObjectOutputStream out)
throws IOExce ...
最初接触File Mapping是为了能够方便地处理一个几百兆的大文件,当时查了些资料大概了解了一下就匆匆动手了,因为知其然而不知其所以然,在使用过程中遇到了不少问题,今天在这里就是想把这些历史遗留问题解决掉。
问题一、Mapping有“映射”之意,那么在该语境中形成映射关系的双方是谁,也就是从哪里映射到哪里呢?
要回答这个问题,我们必须要对虚拟内存有所了解。现在操作系统中,大多都使用虚拟内存技术来对内存进行管理。通过虚拟内存,操作系统给予 ...
JavaWorld一篇题为 Add dynamic code to your application 的文章介绍了如何使用动态代理技术使普通的java源代码具有像jsp一样的动态编译效果,十分有趣。
使用过jsp技术的程序员都知道,应用部署以后,我们是可以直接修改jsp源文件的。当客户请求这个被修改过的jsp文件时,web容器会自动监测出该jsp文件已经被更新,因此重新编译该jsp文件,向客户返回最新的信息。但是,对于一般的java源文件,如果我们仅仅修改源文件,而不重新编译部署的话,web容器是不会处理的。
那我们可不可以让普通的jav ...
使用JDBC时,我们都会很自然得使用下列语句:
java 代码
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8";
String user = "" ...
要理解 java中String的运作方式,必须明确一点:String是一个非可变类(immutable)。什么是非可变类呢?简单说来,非可变类的实例是不能被修改的,每个实例中包含的信息都必须在该实例创建的时候就提供出来,并且在对象的整个生存周期内固定不变。java为什么要把String设计为非可变类呢?你可以问问 james Gosling :)。但是非可变类确实有着自身的优势,如状态单一,对象简单,便于维护。其次,该类对象对象本质上是线程安全的,不要求同步。此外用户可以共享非可变对象,甚至可以共享它们的内部信息。(详见 《Effective ...
在C/C++中,当我们想知道一个对象或者一个原始数据类型所占用的内存大小时,只需简单调用sizeof操作符即可,但是,在java中是没有相应的操作符或者方法来直接完成相应功能的。sizeof 在C/C++得到大量的运用,是程序员必不可少的工具之一,那么为什么java却不提供呢?要回答这个问题,我们可以从另外一个角度来看,那就是为什么C/C++中要使用sizeof。C中要使用sizeof主要是因为C程序员要自己管理堆内存的分配和释放,在使用malloc来获取堆内存时,我们必须知道要创建的对象的具体大小,才能根据对象的具体大小从堆中分配相应大小的动 ...
java中修饰符final可以分别作用于类,方法和域。
final类。定义类的时候加上final修饰符,表明该类已经是相当完善了,不用也不能被其它类所继承,也就是说,该类在java的继承树结构中是一个叶节点。当一个类为final类时,该类的所有方法均自动成为final方法,不管你是否在方法前面加上修饰符final。而该类中的域可以通过加上final将其声明为一个final变量,也可以不加,声明为一般变量。一个类是否为final类,对该类的域是不产生任何影响的。
final方法。方法加上修饰符final可以将方法声明为一个final方法。final方法的作用有两个:其一,使该 ...
这段时间在看《深入java虚拟机》,在讲GC的时候提到了无意识对象保持(unintentional object retention)。 1、Java存在内存泄漏(memory leak)吗?是的,而且很隐蔽,不容易被发现。 2、不是说java的GC会自动回收内存吗?是的,但是GC回收的只是垃圾内存,也就是没有被其它“存活引用”引用着的引用。应用程序通过某条路径可以到达的引用所指向的内存是不能也不应该被回收的。 3、什么叫无意识对象保持?就是说你以为某个对象在使用 ...
多态 (Polymorphism) 大家应该都不陌生,它是我们开发面向对象系统的“老朋友”了 。但是老朋友也会有“烦心”的时候啊,呵呵。有时候不注意,还真会被它难到。譬如下面这个例子,大家可以先不看下面的答案,在自己脑海中运行一道,看看自己想的跟实际结果是否相符。java 代码public class Polymorphism{ public static void main(String[] args) { &n ...
以前写过一篇关于java中sizeof的文章,今天看到这篇文字,顺手转过来了,作个补充吧。其中关于数据对齐的内容值得一看。原文在这里 前向声明: sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话,那么这篇文章对你或许有所帮助。菜鸟我对C++的掌握尚未深入,其中不乏错误,欢迎各位 ...
知道什么是Big Endian,Little Endian吗?名字怪怪的,中文一般称为“大端”和“小端”。"Endian" 这个词出自乔纳森·斯威夫特的《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。哦嗬,相当血腥。 但是到了计算机领域,这两个词仅仅用于表示CPU处理多字节的两种不同方式。先来段权威的描述:[from Comput ...
看到题目就知道是涉及到Uncode的,Unicode的编码方式有UTF-32,UTF-16,UTF-8三种,这里为什么单单只讲UTF-16呢?无它,UTF-16这位老兄故事多啊~ 在Unicode诞生之前,世界上许多字符集并存而且互不兼容,这导致很多软件在国际化过程中困难重重,随着互联网的普及和国际间交流的增多,问题就愈发严峻了。Unicode正是在这样的大环境下成长起来的。我们可以认为,Unicode的出现,就像秦始皇统一六国,在字符集中实现了统一的“度量衡”,在各个领域中发挥着重要的作用。&n ...
一、若我们定义一个函数 ,原型为: String MD5 ( Information info) 其中Information 表示任意长度的信息,注意是任意长度的。 实现这个函数的最终要求:1、对于相同的输入信息,产生的返回值结果相同;对于不同的信息得到得结果决不相同。(后者由于我 国王小云教授等人的研究成果已经不成立,也就是说两个不同的信息可能会产生“碰撞”,得到的结 果是一样的。)2. 算法不可逆转,即使拥有返回结果和算法细节,也不可能推导出输入的初始信息。下面是 ...
- 浏览: 47625 次
- 性别:

- 来自: 广州/成都

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Two extractors couldn't ...
Update Scrubyt 0.3.4 to 0.4.01
-- by Dustin -
Bridge模式在JDBC中是如何 ...
哦。是这样的吧。JDBC有两个变化点。1.平台的变化2.数据库的变化。所以,这个 ...
-- by fireflyc -
Bridge模式在JDBC中是如何 ...
我觉得是jdbc的应用,实现DAO的时候用到了bridge模式吧,好像在哪里看到 ...
-- by crazycow -
背后的路【3】
一口气看完了...
-- by crazycow -
背后的路【2】
楼主有很多经历和我很像,希望能交个朋友,呵呵:)
-- by crazycow






评论排行榜