
coding
DustinCheung
这个作者很懒,什么都没留下…
展开
-
关于sizeof【转】
以前写过一篇关于java中sizeof的文章,今天看到这篇文字,顺手转过来了,作个补充吧。其中关于数据对齐的内容值得一看。原文在这里 前向声明: sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要...2006-10-20 12:01:39 · 151 阅读 · 0 评论 -
C++的常量
Java里面使用常量十分方便,将成员变量定义为final就行了,但在C++中,类的成员变量是不能赋初值的,因此往往将常量声明为全部数据,并用const来修饰。效果类似,但全局数据往往造成程序间不必要的耦合,是error prone,应该能免则免的。有一个变通的办法就是使用枚举:cpp 代码 class ConstNum { ..... privat...2007-05-31 11:20:15 · 211 阅读 · 0 评论 -
Message Digest Algorithm 5 信息摘要算法5
一、若我们定义一个函数 ,原型为: String MD5 ( Information info) 其中Information 表示任意长度的信息,注意是任意长度的。 实现这个函数的最终要求:1、对于相同的输入信息,产生的返回值结果相同;对于不同的信息得到得结果决不相同。(后者由于我 国王小云教授等人的研究成果已经不成立,也就是说两个不同的信息可能会产生“碰撞”,得到的结 果是一样的。...2006-10-14 16:04:43 · 360 阅读 · 0 评论 -
UTF-16
看到题目就知道是涉及到Uncode的,Unicode的编码方式有UTF-32,UTF-16,UTF-8三种,这里为什么单单只讲UTF-16呢?无它,UTF-16这位老兄故事多啊~ 在Unicode诞生之前,世界上许多字符集并存而且互不兼容,这导致很多软件在国际化过程中困难重重,随着互联网的普及和国际间交流的增多,问题就愈发严峻了。Unicode正是在这样的大环境下成长起来的。我们可以...2006-10-15 15:48:02 · 421 阅读 · 0 评论 -
Big Endian and Little Endian
知道什么是Big Endian,Little Endian吗?名字怪怪的,中文一般称为“大端”和“小端”。"Endian" 这个词出自乔纳森·斯威夫特的《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。哦嗬,相当血腥。 但是到了计算机领域,这两个词仅仅用于...2006-10-17 13:22:10 · 165 阅读 · 0 评论 -
Two extractors couldn't work together
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'...2008-01-12 01:32:38 · 202 阅读 · 0 评论 -
awk引用shell中带meta字符的字符串
link='http://localhost:8080 Blog='more id_list.txt |awk "{print \"$link\"\$1}" 上面这段代码完成的功能是将id_list.txt中的每一行的内容拼接到link变量后,并将拼接后的内容输出到控制台。譬如,如果id_list.txt中的内容为:123456789 那么,控制台将输出下面的内容:h...2009-03-25 20:45:14 · 174 阅读 · 0 评论 -
多态(Polymorphism)的实现机制(上)--C++篇
最初发表在这里。 多态(Polymorphism)是面向对象的核心概念,本文以C++为例,讨论多态的具体实现。C++中多态可以分为基于继承和虚函数的动态多态以及基于模板的静态多态,如果没有特别指明,本文中出现的多态都是指前者,也就是基于继承和虚函数的动态多态。至于什么是多态,在面向对象中如何使用多态,使用多态的好处等等问题,如果...2009-04-06 20:48:44 · 235 阅读 · 0 评论 -
多态(Polymorphism)的实现机制(下)--Java篇
最初发表在这里。 既然多态是面向对象的三大本质特征之一(其它两个是数据抽象和继承),那么C++为什么不将方法调用的默认方式设置为动态绑定,而要通过关键字virtual进行标记呢?Bruce Eckel在《Thinking in C++》中提到,这是由于历史原因造成的,C++是从C发展而来的,而C程序员最为关心的是性能问题,由于动态绑定比静态绑定多几条指令,性能有所下降,如果将动态绑...2009-04-06 21:14:16 · 222 阅读 · 0 评论 -
C/C++库文件简介
最初发表在这里。 其实,C/C++世界开始时并没有库这个概念,我们编写程序的时候,都是自己搞定一切:Coding,Compile,Link,生成一个可执行文件后载入系统运行就可以了。但是,如果每个程序员都这样各自为政的话,将会导致大量的重复劳动。譬如,在很多程序中都需要输入输出的功能,按照现在这种状况,只有每个程序员都自己重新开发这样的功能模块,这样效率之低下可想而知。于是,大家渴...2009-04-06 21:25:03 · 310 阅读 · 0 评论 -
1.03 - 0.42 = ?
最初发表在这里。 0.61。一定确定以及肯定?看看计算机是怎样回答的:一号选手C/C++的答案是:printf("%5.20f", 1.03-0.42); output = 0.61000000000000010000 二号选手Java的答案是:System.out.printf("%5.20f", 1.03-0.42) ; output = 0.61000000000000010000三...2009-04-06 21:45:32 · 1190 阅读 · 0 评论 -
使用DataSource的连接池何以提高性能?
最初发表在这里。 连接池为什么能够提高性能呢? 打个比喻吧: 从前有一条河,河水弯弯向东流。河东有个村庄叫河东村,河西有个小镇叫河西镇,河东村的村民经常要跨过小河到河西镇去购买些日常用品,但是小河上没有桥啊,怎么办呢?村民只好每次过河的时候,千辛万苦,披荆斩棘,搭起一座独木桥,等买完东西回来的时候,再把桥给拆了。 这样过了许多年,村民们慢慢觉得这样不划算啊,每次河都要花...2009-04-06 22:03:09 · 322 阅读 · 0 评论 -
Python code snip
Python Tips, Tricks, and Hacks2009-10-28 22:22:29 · 611 阅读 · 0 评论 -
C++ code snip
1. 将文件内容读取为string a. string readFile2(const string &fileName){ ifstream ifs(fileName.c_str(), ios::in | ios::binary | ios::ate); ifstream::pos_type fileSize = ifs.tellg();...2009-08-23 18:01:56 · 268 阅读 · 0 评论 -
RSA算法密钥长度的选择
RSA算法密钥长度的选择是安全性和程序性能平衡的结果,密钥长度越长,安全性越好,加密解密所需时间越长。 1. 非对称加密算法中1024 bit密钥的强度相当于对称加密算法80bit密钥的强度。有资料上说以当前的软硬件水平,破解1024bit的RSA加密密文,需要一套10亿美金的系统使用若干十年的时间,所以2015年前,1024bit的还无需太担心暴力破解的危险。 2. 密钥长度...2010-09-15 15:07:40 · 1960 阅读 · 0 评论 -
Python中文问题研究
我曾经在深入浅出java中文问题系列中研究过java的中文问题,现在中文问题已经很少羁绊我在java世界中漫游的脚步了。最近,对Python产生了浓厚的兴趣,谁知道跟中文问题这个老朋友又一次不期而遇。看来,在代码世界中,中文问题会在很长一段时间里跟我们形影不离。这也难怪,谁让当初发明计算机的不是我们中国人呢,否则,现在全世界的计算机都支持而且必须支持GBK,这样,写这样文章的人就不会是我了,而...2007-05-07 18:30:04 · 182 阅读 · 0 评论 -
深入浅出Java中文问题(六) 文件读写
最近用Java处理文件的时候,同样遇到了中文问题,觉得还是有必要总结一下,也使该系列的文章更加完整。 熟悉Java 的人都知道,在Java中,IO是分成两大部分的,分别对应字节和字符的操作,也就是Stream和Character,它们之间可以相互转换,桥梁就是StreamInputReader/StreamOutputWriter。为了更加清楚的了解它们之间的关系,我们可以看看它们...2007-05-07 17:16:19 · 179 阅读 · 0 评论 -
Java多态中的方法覆盖
多态 (Polymorphism) 大家应该都不陌生,它是我们开发面向对象系统的“老朋友”了 。但是老朋友也会有“烦心”的时候啊,呵呵。有时候不注意,还真会被它难到。譬如下面这个例子,大家可以先不看下面的答案,在自己脑海中运行一道,看看自己想的跟实际结果是否相符。java 代码public class Polymorphism{ public static void main(Str...2006-12-11 11:27:51 · 332 阅读 · 0 评论 -
Unintentional Object Retention,HPjtune&HPjmeter
这段时间在看《深入java虚拟机》,在讲GC的时候提到了无意识对象保持(unintentional object retention)。 1、Java存在内存泄漏(memory leak)吗?是的,而且很隐蔽,不容易被发现。 2、不是说java的GC会自动回收内存吗?是的,但是GC回收的只是垃圾内存,也就是没有被其它“存活引用”引用着的引用。应用程序通过某条路径可以到达的引用所指向的内...2007-01-01 21:54:06 · 236 阅读 · 0 评论 -
修饰符final浅析
java中修饰符final可以分别作用于类,方法和域。 final类。定义类的时候加上final修饰符,表明该类已经是相当完善了,不用也不能被其它类所继承,也就是说,该类在java的继承树结构中是一个叶节点。当一个类为final类时,该类的所有方法均自动成为final方法,不管你是否在方法前面加上修饰符final。而该类中的域可以通过加上final将其声明为一个final变量,也可...2007-01-02 17:42:52 · 161 阅读 · 0 评论 -
java中的sizeof
在C/C++中,当我们想知道一个对象或者一个原始数据类型所占用的内存大小时,只需简单调用sizeof操作符即可,但是,在java中是没有相应的操作符或者方法来直接完成相应功能的。sizeof 在C/C++得到大量的运用,是程序员必不可少的工具之一,那么为什么java却不提供呢?要回答这个问题,我们可以从另外一个角度来看,那就是为什么C/C++中要使用sizeof。C中要使用sizeof主...2007-01-02 23:49:21 · 905 阅读 · 0 评论 -
理解java String
要理解 java中String的运作方式,必须明确一点:String是一个非可变类(immutable)。什么是非可变类呢?简单说来,非可变类的实例是不能被修改的,每个实例中包含的信息都必须在该实例创建的时候就提供出来,并且在对象的整个生存周期内固定不变。java为什么要把String设计为非可变类呢?你可以问问 james Gosling :)。但是非可变类确实有着自身的优势,如状态单...2007-01-04 23:21:01 · 168 阅读 · 0 评论 -
使用JDBC时Class.forName()的作用
使用JDBC时,我们都会很自然得使用下列语句:java 代码 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8"; String user = ""; ...2007-01-08 01:29:26 · 553 阅读 · 0 评论 -
java动态代码的实现以及Class的卸载
JavaWorld一篇题为 Add dynamic code to your application 的文章介绍了如何使用动态代理技术使普通的java源代码具有像jsp一样的动态编译效果,十分有趣。 使用过jsp技术的程序员都知道,应用部署以后,我们是可以直接修改jsp源文件的。当客户请求这个被修改过的jsp文件时,web容器会自动监测出该jsp文件已经被更新,因此重新编译该jsp文件,向客户...2007-01-11 22:00:42 · 1104 阅读 · 0 评论 -
File Mapping析疑
最初接触File Mapping是为了能够方便地处理一个几百兆的大文件,当时查了些资料大概了解了一下就匆匆动手了,因为知其然而不知其所以然,在使用过程中遇到了不少问题,今天在这里就是想把这些历史遗留问题解决掉。 问题一、Mapping有“映射”之意,那么在该语境中形成映射关系的双方是谁,也就是从哪里映射到哪里呢? 要回答这个问题,我们必须要对虚拟内存有所了解。现在操作系统...2007-01-12 23:39:02 · 275 阅读 · 0 评论 -
访问对象的private 方法
这个问题是跟同学讨论interface Serializable的用法是注意到的。JDK文档中说Serializable 为标记接口(tag interface),实现该接口的类不需要实现任何指定的方法。但是,如果当我们需要自定义序列化过程时,就需要在类中添加两个指定的方法:java 代码 private void writeObject(java.io.ObjectOutputSt...2007-03-28 20:17:33 · 1128 阅读 · 0 评论 -
深入浅出Java中文问题(一) 引言
真正接触过java,或者说曾经用java解决过实际问题的人,对java的中文问题应该都有一定了解。为什么我在编辑器中输入的中文好好的,在控制台打印出来却变成了“星星月亮和问号”呢?我的系统在开发过程中一点问题没有,怎么部署到实际环境中却所有中文都变成了乱码甚至整个系统都运行不起来呢?嘿嘿,你很可能就是遇到java中文问题了。java中文问题是什么?为什么会这样?我该怎么办?问题的答案应该是所...2007-05-07 16:59:37 · 465 阅读 · 0 评论 -
深入浅出Java中文问题(二)字符,字节和编码
通过引言我们可以知道,java中文问题是由于在输入输出时字符集之间的错位而产生的。那么,当前比较通用的字符集有哪些呢?它们都有些什么特点?它们之间有什么区别和联系?为什么字符集错位会导致出现中文问题呢?要回答这些问题,我们就要对字符集有一个系统的了解。网络上有一篇文章对此作了系统详细的描述,上面的文字相当简明到位。摘抄部分至此,作为系列文章的第二篇,也作以后复习之用。这里并没有把整个文章摘抄...2007-05-07 17:03:24 · 190 阅读 · 0 评论 -
深入浅出java中文问题(三)console程序的中文问题
现代计算机采用的都是冯.诺依曼体系结构,因此都具有相同的结构特征,拥有五大组成部分:输入数据和程序的输入设备,记忆程序和数据的存储器,完成数据加工处理的运算器,控制程序执行的控制器,输出处理结果的输出设备。JVM是一台虚拟的计算机,也有类似的特征。本系列文章研究的是java中文问题,跟输入输出有着密切的联系,为了突出重点,我们暂且将JVM的其它细节放下,只需了解JVM内部的数据是用Unic...2007-05-07 17:08:34 · 173 阅读 · 0 评论 -
深入浅出java中文问题(四)Web应用中的中文问题
Web应用中出现的中文问题可能是最常见的,也是网络上讨论得最多的java中文问题了,而这跟JSP(Servlet)技术在Web中的广泛应用有着紧密的联系。Web应用运行在一个分布式的环境中,服务端和客户端通过HTTP协议连接在一起,而数据交换的双方分别是Web容器和浏览器。这就是一个典型的B/S结构的分布式应用。Web容器的存在是Web应用跟一般的控制台程序最大的不同之处。在一般的控制台程...2007-05-07 17:12:21 · 142 阅读 · 0 评论 -
深入浅出java中文问题(五)数据库出现的中文问题
数据库的重要作用无需多言,java也为我们提供了多种数据库存取方法,如 JDBC,ORM(Hibernate,Toplink)以及EJB中的Entity bean等。其中JDBC是基础,为后面两种方案提供了底层API;后两种对JDBC进行包装,使得我们使用面向对象的方式来操作数据库。在实际运用过程中,我们可以根据自己的实际情况,各取所需。本文主要研究数据库存取过程中可能出现的中文问题,因此选...2007-05-07 17:14:05 · 181 阅读 · 0 评论 -
Linux内存管理
首先提供Gustavo Duarte写的三篇非常精彩的文章:1. Anatomy of a Program in Memory2. How The Kernel Manages Your 3. Page Cache, the Affair Between Memory and Files 然后看看Linux下malloc的实现原理:1. Doug Lea. A Memory...原创 2011-05-21 23:42:58 · 241 阅读 · 0 评论