1.C++指针和引用的区别:
(1) 指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。
★相同点:
●都是地址的概念;
指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。
★不同点:
●指针是一个实体,而引用仅是个别名;
●引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针可以“见异思迁”;
●引用没有const,指针有const,const的指针不可变;(具体指没有int&const a这种形式,而const int&a是有的,前者指引用本身即别名不可以改变,这是当然的,所以不需要这种形式,后者指引用所指的值不可以改变)
●引用不能为空,指针可以为空;
●“sizeof引用”得到的是所指向的变量(对象)的大小,而“sizeof指针”得到的是指针本身的大小;
●指针和引用的自增(++)运算意义不一样;
●引用是类型安全的,而指针不是(引用比指针多了类型检查
链接:http://www.cnblogs.com/dolphin0520/archive/2011/04/03/2004869.html
http://blog.sina.com.cn/s/blog_4ed9fbab01014pp3.html
链接:http://www.cnblogs.com/gsk99/archive/2010/12/13/1904557.html
3.c# lock关键字:
lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。
先来看看执行过程,代码示例如下:
假设线程A先执行,线程B稍微慢一点。线程A执行到lock语句,判断obj是否已申请了互斥锁,
判断依据是逐个与已存在的锁进行object.ReferenceEquals比较(此处未加证实),如果不存
在,则申请一个新的互斥锁,这时线程A进入lock里面了。
这时假设线程B启动了,而线程A还未执行完lock里面的代码。线程B执行到lock语句,检查到obj
已经申请了互斥锁,于是等待;直到线程A执行完毕,释放互斥锁,线程B才能申请新的互斥锁并执行
lock里面的代码。
链接: http://www.cnblogs.com/jintianhu/archive/2010/11/19/1881494.html
1.首先很多人觉得已经有了类,干嘛还需要接口?
答:在程序开发中,有时要求某些类具有特定的方法、属性,为了避免开发者遗漏,C#提供了接口的概念。接口定义了类必须包含的部分,如果有遗漏,就会发生语法错误!通俗说:接口定义了一些东西(方法、属性、索引器、事件),继承这个接口的类必须实现该接口的所有定义内容,缺一不可!
2.接口是什么玩意?
答:接口是一种用来定义程序的协议,仅仅是定义,不能赋值,举个例子,他定义 int Add();这一句话就够了,而实现这个加法算法的方法让继承它的那个类去实现!
3.类和接口简单的区别?
答:在继承方面,类继承类的话,类只能有一个类爸爸;类继承接口的话,类可以有多个接口爸爸;接口继承接口的话,接口也可以有多个接口爸爸。再通俗点说:有了接口,间接实现了类的多重继承!
4.接口及接口成员声明?
答:声明接口时,除interface关键字和接口名称,其他都可选的。重点::::可以使用new、public、protected、internal、private等修饰符来声明接口,但是接口里的成员必须是公共的,也就是说定义接口里面的成员时不用加修饰符,它默认的是public,你如果手贱写了其他如private等修饰符,就报错了。
链接: http://blog.csdn.net/u010763324/article/details/40952801
http://blog.jobbole.com/85751/