- 博客(26)
- 收藏
- 关注
原创 名词满天飞时,看看它
“When I use a word,” Humpty Dumpty said, in rather a scornful tone, “it means just what I choose it to mean—neither more nor less.”“The question is,” said Alice, “whether you can make words mean so m
2007-12-04 22:22:00
694
原创 说说java的数组
在the Java Language Specification 3rd里提到: IN the Java programming language arrays are objects, are dynamically created, and may be assigned to variables of type Object . All methods ofclass Object ma
2007-11-26 20:27:00
731
原创 The Java Language Specification 3rd写错了?
在第559页的表达式里提到java语言没有逗号操作符。摘取内容如下:15.27 ExpressionAn Expression is any assignment expression:Expression:AssignmentExpressionUnlike C and C++, the Java programming language has no comma operator. 什
2007-11-23 14:00:00
796
原创 C programming deep secrets里有趣的小故事.
真不知作者是从哪里找到这些合适又搞笑的故事的.charpter 3.Unscrambling Declarations in C."The name of the song is called Haddocks Eyes.""Oh, thats the name of the song, is it?" Alice said trying to feel interested."N
2007-11-09 15:55:00
896
原创 C语言数组下标为何从0开始
Many other features, besides the type system, were put in C for the C compiler-writers benefit (andwhy not, since C compiler-writers were the chief customers for the first few years). Feature
2007-11-07 14:06:00
8493
原创 也讲下正交性及入侵性
首先,正交性是借用了几何学的术语.几何说,如果两条线相交成直角,他们就是正交的.典型的坐标轴就是正交的,因为x轴y轴是垂直相交的.正交有什么好处呢?沿着某一条线移动,你投影另一条线上的位置不变.在计算机技术中,该术语用来表示某种不相依赖性或是解耦性.如果两个或更多的事物的一个发生变化,不会影响其它事物,这些事物就是正交的. 入侵性也有不相依赖及解耦性的意思.两者的主
2007-11-06 16:59:00
891
原创 foo bar的含义
看到很多的书上都爱用foo或bar来做变量名或函数名,包括jsr里用来做类型名(引用一句:In general, if Foo is a subtype (subclass or subinterface) of Bar),上网查下,比较赞同下面的说法:A metasyntactic variable is a placeholder name, or a kind of alias term
2007-10-24 15:36:00
1262
原创 初始化和赋值的区别
折腾我挺长一段时间,基本挺明白了,先来个区别说明:赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一个新的对象,并且其初值来源于另一个已存在的对象。编译器会区别这两种情况,赋值的时候调用重载的赋值运算符,初始化的时候调用拷贝构造函数。如果类中没有拷贝构造函数,则编译器会提供一个默认的。这个默认的拷贝构造函数只是简单地复制类中的每个成员。 下面看例子。 c++中初始化和赋值操作差别是很大的。
2007-10-19 11:35:00
16537
4
转载 关于"C++引用"
引用, 在具体实现时, 会申请一个临时空间, 目的是存放被引用对象的地址. 当使用引用变量时, 其实就是对被引用对象作了一次间接寻址.此文缘起我看了这篇文章:http://blog.youkuaiyun.com/newslxw/archive/2006/08/08/1038972.aspx 还记得当年读书时, 牛牛的C++老师告诉我: "引用, 其实就是别名, 与其所引用的对象完全等价". 可是,
2007-10-18 13:32:00
966
原创 引用和指针的主要区别
指针和引用有两个主要区别引用必须总是指向一个对象,如果用一个引用给另一个引用赋值那么改变的是被引用的对象而不是引用本身 .从上面的区别可以看出,引用一定要在定义时初始化,而指针则可以不初始化,建议初始化成NULL.指针给另一个指针赋值是改变的是指针的本身,而不是指向的对象.
2007-10-15 17:31:00
766
原创 声明和定义的区别
c++ primer 3rd 5.2声明语句讲得不清不楚的,还是Effective c++ 2nd讲得清楚.所谓声明( declaration),就是用来将一个object function class 或tempate的型别名称告诉编译器.声明式并不带有细节信息.对object而言,其定义式是编译器为它配置内存的地点.extern int x; // object declarationint
2007-10-12 16:19:00
779
原创 你了解overload吗?
以下是overload的一段代码,如果能给出运行结果,并能讲出原因说明了解了.public class OverloadTest ...{ void test(Object s) ...{ System.out.println("Object version"); } void test(OverloadTest s) ...{ System.
2007-10-11 17:33:00
1185
原创 你了解null吗?
还是引用老外的,我觉得讲得是对的,但java部分说null是null类型的一个特殊字面常量,我确实没法做确证工作,只有从事java语言开发者知道是否确实.c/c++可以从头文件上看到确如作者所说. 以下是引用内容:Null in Java(tm) In C and C++, "NULL" is a constant defined in a header file, with a valu
2007-10-11 16:39:00
632
原创 偶然看到c#的一段容器代码
using System;using System.Collections;public class Tokens: IEnumerable...{ private string[] elements; Tokens(string source, char[] delimiters) ...{ elements = source.Split(delimiters);
2007-10-08 16:59:00
592
原创 考考眼力,找下代码的bug
这个bug够隐蔽的。public class BinarySearch ...{ public static int binarySearch(int[] a, int key) ...{ int low = 0; int high = a.length - 1; while (low high) ...{ int m
2007-09-28 13:53:00
658
原创 类型的定义
我们经常提到类型,如果问一句,什么是类型,你会怎么回答?摘自老外的对类型的定义,写得挺好。a type is metadata about a chunk of memory that classifies the kind of data stored there. This classification usually implicitly specifies what kinds of
2007-09-28 13:41:00
851
原创 小心你的构造函数
public class IntAdder...{ private int x; private int y; private int z; public void IntAdder() ...{ x = 1; y = 2; z = x + y; } public void printResults() ..
2007-09-27 10:44:00
992
原创 多态原理
因为多态java和c++有共通之处,先来看c++的,再来看java的。以下内容摘自李鑫深入浅出C++虚函数表。-------------------------------------------------为什么要了解虚函数表了解虚函数表对理解C++实现多态的机制会有更深的了解,对对象的内存布局会有更好的认识。 验证虚函数表的存在(C++中的struct和class实
2007-09-26 16:51:00
3638
原创 理解this指针的好例子
看代码说话,先来个简单的。public class Wealthy...{ public String answer = "Yes!"; public void wantMoney() ...{ String answer = "No!"; System.out.println("Do you want to give me $1,000,000
2007-09-26 16:24:00
926
转载 为goto正名
昨天和老板一块儿review我的code,当看到我的代码中存在一些goto语句的时候,老板条件反射般严肃的问我:“为什么要用goto语句”? 我很理解她为什么会惊讶。自从计算机科学一代宗师Dijkstra于1968年发表了著名的文章《Go To Statement Considered Harmful》之后,goto语句就成了过街老鼠,人人喊打。甚至有人开玩笑说:“今天你敢用goto,明天老板就让
2007-09-22 00:02:00
1413
2
原创 String若干问题
主要就是string literals1 及constant pool问题了,看以下代码。public class StringExample ...{ public static void main(String[] args) ...{ String s0 = "Programming"; String s1 = "Program"+"ming";
2007-09-19 22:10:00
2279
原创 读the pragmatic programmer
Your Knowledge Portfolio里面提到些内容值得仔细阅读Managing a knowledge portfolio is very similar to managing a financial portfolio:1. 1. Serious investors invest regularly—as a habit. 严肃的投资者定期投资-作为一种习惯。
2007-09-17 23:25:00
651
原创 方法内匿名类的例子
在jdk的File的list方法里传入一个FilenameFilter的接口参数,使用时需要实现该接口。listpublic String[] list(FilenameFilter filter) 以下代码是给定一个目录,检查该目录下有多少个子目录,并列出目录名。class DirFilter ...{ public static void main(String[
2007-09-01 23:43:00
1075
原创 同功能不同的代码,差别呢?
以代码来说话吧,以下是实现同一功能的两段不同的代码。 第一段,两个FindChar类代码的对比:class FindChar...{ public static void main(String[] args) throws Exception...{ if(2!=args.length)...{ throw new Exception("ne
2007-09-01 01:26:00
786
原创 抽象类里没抽象方法的例子
都知道抽象类可以没有抽象方法,这时的抽象类和普通类的最大差别就是不能实例化.一直没找到在什么环境下用到这种特殊的抽象类.最近看了jdk的I/O包后,发现里面有个很好的例子,就是FilterReader类.以下是FilterReader的代码: public abstract class FilterReader extends Reader ...{ /** *//**
2007-08-30 22:15:00
6058
1
原创 读THE Java™ Programming Language, Fourth Edition有感
写得没有thinking in java清楚,比如对内部类章节就可以看出明显的差别. 作者毕竟是java语言之父,里面提到很多自己很了解的细节.比如: 2.1:对Cloneable接口的起名.Cloneable should have been spelled Clonable, but the misspelling was realized too la
2007-08-16 14:25:00
923
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人