2007-01-01 21:44
2006-12-11 19:27
多态 (Polymorphism) 大家应该都不陌生,它是我们开发面向对象系统的“老朋友”了 。但是老朋友也会有“烦心”的时候啊,呵呵。有时候不注意,还真会被它难到。譬如下面这个例子(thank Hayden)。大家可以先不看下面的答案,在自己脑海中运行一道,看看自己想的跟实际结果是否相符。
|
2006-11-11 23:54
2006-11-07 18:36
只要把下面代码复制保存一下,就可以知道你杀毒软件怎么样了,呵呵
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
这段代码是欧洲计算机防病毒协会开发的一种病毒代码,其中的特征码已经包含在各种杀毒软件的病毒代码库里,所以可以用做测试病毒扫描引擎。
等级:
特等:复制完代码后便提示内存有病毒
优等:刚保存完就提示病毒(或者直接删除)
中等:保存后几秒提示病毒(或者直接删除)
下等:需自己启动病毒扫描查杀才提示病毒(或者直接删除)
不过我的卡巴斯基6.0竟然得了个“中等”,要知道它可是2006年世界杀毒软件排行榜中名列第二的,所以上面测试的准确程度不知道有多少了。
|
2006-10-31 17:16
很多人喜欢单独安装VC++6.0,而不是完整安装VS,这样占用空间比较少,启动也快。但是要使用某些ActiveX控件的时候却会出现许可证问题(requires a design-time licence),譬如使用MSComm.ocx。至于ActiveX的许可证体系这里就不说了,简单说就是用来保证第三方ActiveX控件开发者的智力投资的。MSComm.ocx是VS自带的一个进行串口通讯的控件,本来在安装VS的时候会自动把相应的licence发放给用户,但是这个licence是由VB附带提供的,现在我们没有安装VB,因此当我们在插入该控件到我们的项目时,就会出现 |
2006-10-20 20:01
以前写过一篇关于java中sizeof的文章,今天看到这篇文字,顺手转过来了,作个补充吧。其中关于数据对齐的内容值得一看。原文在这里
前向声明:
sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话,那么这篇文章对你或许有所帮助。菜鸟我对C++的掌握尚未深入,其中不乏错误,欢迎各位指正啊
1. 定义:
sizeof是何方神圣sizeof乃C/C++中的一个操作符(operator)是也,简单的说其作用就是返回一个对象或者类型所占的内存字节数。MSDN上的解释为:
The sizeof keyword gives the amount o |
2006-10-17 21:22
知道什么是Big Endian,Little Endian吗?名字怪怪的,中文一般称为“大端”和“小端”。"Endian" 这个词出自乔纳森·斯威夫特的《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,其中一个皇帝送了命,另一个丢了王位。哦嗬,相当血腥。
但是到了计算机领域,这两个词仅仅用于表示CPU处理多字节的两种不同方式。先来段权威的描述:[from Computer System: A programmer's Perspective 2.1]
For ordering the bytes representing an object, there are two common conventions. Consider a w-bit integer having a bit representation [xw-1; xw-2; : : : ; x1; x0], where xw-1 is the most significant bit, and x0 is the least. Assuming w is a multiple of eight, these bits can be grouped as bytes, with the most significant byte having bits [xw-1; xw-2; : : : ; xw-8], the least significant byte having bits [x7; x6; : : : ; x0], and the other bytes having bits fro |
2006-10-15 23:48
看到题目就知道是涉及到Uncode的,Unicode的编码方式有UTF-32,UTF-16,UTF-8三种,这里为什么单单只讲UTF-16呢?无它,UTF-16这位老兄故事多啊~
在Unicode诞生之前,世界上许多字符集并存而且互不兼容,这导致很多软件在国际化过程中困难重重,随着互联网的普及和国际间交流的增多,问题就愈发严峻了。Unicode正是在这样的大环境下成长起来的。我们可以认为,Unicode的出现,就像秦始皇统一六国,在字符集中实现了统一的“度量衡”,在各个领域中发挥着重要的作用。
从90年代初开始,Unicode一直不断地发展和完善。在Unicode的最初版本中,Unicode是被设计成定长的,长度为16 bits,2 Bytes。这在形式上跟ASCII和ISO8859-1等编码方式是十分相似的,只不过长度更长,编码空间(code space)更大。当时人们认为,2个字节形成的编码空间,也就是65535个code point (code point就是编码空间中的一个值,用以唯一标识一个字符)已经能包括世界上所有出现过和将要出现的字符了。于是乎,在Unicode的编码问题上,一个最直接的办法就是每个字符使用两个字节进行存储,这样code point跟编码间有着简单的 |
2006-10-15 00:04
一、若我们定义一个函数 ,原型为:
String MD5 ( Information info)
其中Information 表示任意长度的信息,注意是任意长度的。 实现这个函数的最终要求:
1、对于相同的输入信息,产生的返回值结果相同;对于不同的信息得到得结果决不相同。(后者由于我
国王小云教授等人的研究成果已经不成立,也就是说两个不同的信息可能会产生“碰撞”,得到的结
果是一样的。)
2. 算法不可逆转,即使拥有返回结果和算法细节,也不可能推导出输入的初始信息。
下面是MD5算法对一些特定值产生的返回值:
md5 ("") = d41d8cd98f00b204e9800998ecf8427e
md5 ("a") = 0cc175b9c0f1b6a831c399e269772661
md5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
md5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
md5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
|
2006-10-11 00:15
一首很感人的歌。

When you have no light to guide you
And no one to walk to walk beside you
I will come to you
Oh I will come to you
When the night is dark and stormy
You won't have to reach out for me
I will come to you
Oh I will come to you
Sometimes when all your dreams may have seen better days
And you don't know how or why, but you've lost your way
Have no fear when your tears are fallin'
I will hear your spirit callin'
And I swear I'll be there come what may
When you have no light to guide you
And no one to walk to walk beside you
I will come to you
Oh I will come to you
When the night is dark and stormy
You won't have to reach out for me
I will come to you
Oh I will come to you
I will come to you
'Cause even if we |
2006-10-10 11:11
前段时间写的 深入浅出Java中文问题系列描述了很多Java各种应用中出现的中文问题,唯独没有说到文件的读写。最近用Java处理文件的时候,同样遇到了中文问题,觉得还是有必要总结一下,也使该系列的文章更加完整。
熟悉Java 的人都知道,在Java中,IO是分成两大部分的,分别对应字节和字符的操作,也就是Stream和Character,它们之间可以相互转换,桥梁就是StreamInputReader/StreamOutputWriter。为了更加清楚的了解它们之间的关系,我们可以看看它们所在的类结构。
java.lang. Object
java.io. InputStream (implements java.io.Closeable)
java.io. OutputStream (implements java.io.Closeable, java.io.Flushable)
java.io. RandomAccessFile (implements java.io.Closeable, java.io.DataInput, java.io.DataOutput)
java.io. Reader (implements java.io.Closeable, java.lang.Readable)
java.io. BufferedReader
java.io. InputStream |
2006-10-04 15:00

keep walking, everybody! |
2006-10-02 15:09
我曾经在深入浅出java中文问题系列中研究过java的中文问题,现在中文问题已经不再羁绊我在java世界中漫游的脚步了。最近,对Python产生了浓厚的兴趣,谁知道跟中文问题这个老朋友又一次不期而遇。看来,在代码世界中,中文问题会在很长一段时间里跟我们形影不离。这也难怪,谁让当初发明计算机的不是我们中国人呢,否则,现在全世界的计算机都支持而且必须支持GBK,这样,写这样文章的人就不会是我了,而是大洋彼岸的一个金发碧眼的程序员,而且标题也相应改为 “studying the english problem in '大蟒' ”。。哈哈
YY而已,还是面对现实问题吧。相对java而言,中文问题在Python中的表现更为激烈。“激烈”的意思不是说更为严重或者说难于解决,只是Python对于decode&encode错误的默认处理方式为strict,也就是直接报错,而java使用replace的方式来处理了,因此java出现中文问题后会打印出很多"??"。此外,Python的默认的encoding是ASCII,而java的默认encoding跟操作 |
2006-09-27 01:05
It's a question that crops up with depressing regularity: Why don't Linux filesystems need to be defragmented?. Here's my attempt at giving a simple, non-technical answer as to why some filesystems suffer more from fragmenting than others.
Rather than simply stumble through lots of dry technical explanations, I'm opting to consider that an ASCII picture is worth a thousand words. Here, therefore, is the picture I shall be using to explain the whole thing:
a b c d e f g h i j k l m n o p q r s t u v w x y z a 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 b 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
2006-09-25 00:53
在C/C++中,当我们想知道一个对象或者一个原始数据类型所占用的内存大小时,只需简单调用sizeof操作符即可,但是,在java中是没有相应的操作符或者方法来直接完成相应功能的。sizeof 在C/C++得到大量的运用,是程序员必不可少的工具之一,那么为什么java却不提供呢?要回答这个问题,我们可以从另外一个角度来看,那就是为什么C/C++中要使用sizeof。C中要使用sizeof主要是因为C程序员要自己管理堆内存的分配和释放,在使用malloc来获取堆内存时,我们必须知道要创建的对象的具体大小,才能根据对象的具体大小从堆中分配相应大小的动态内存,而获取对象大小这个工作就是通过sizeof来完成的。到了C++,我们可以使用操作符new来动态分配内存,这时,对于sizeof的依赖也没有在C时代时那么严重了。在C++中保留sizeof,主要是为了跟C保持兼容。说到这里,我们也可以明白为什么java中为什么没有sizeof了:java中的内存管理任务直接交给了JVM,这比C++更为彻底。同时,java是一个全新设计的完全面向对象语言,不存在C++向下兼容的问题,因此,java中不存在类似sizeof的操作符。(存在即合理,不存在也有它的道理:))。
但是,有些时候事 |
|
|
daping_zhang
男
上次登录: 2007年 5月
加为好友
|