1.常类型的变量或对象的值是不能被更新的。2.const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。3.编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
分类:
其他好文 时间:
2014-09-09 20:08:19
阅读次数:
175
从.NET 3.0开始,在方法内部可以使用var关键字声明局部变量。var关键字到底是什么?在何种情况下使用呢? □ var关键字用来隐式地声明一个数据类型,变量类型是在编译期确定的,而不是在运行时确定的 声明一个var变量a,把整型数10赋值给a,接着把一个字符串赋值给变量a。运行发现报错:无法将...
分类:
其他好文 时间:
2014-09-06 17:22:03
阅读次数:
217
看一个程序#include using namespace std;class A{public: virtual void Fun(int number = 10) { std::cout B,非A,缺省实参是编译时候确定的=>10,非20 输出:B::Fun with number 10条款.....
分类:
其他好文 时间:
2014-08-31 18:28:01
阅读次数:
217
JVM中相关方法的调用的指令
invokestatic
调用静态方法。
invokespecial
用于调用构造器方法、私有方法、父类方法。
invokevirtual
用于调用类的所有虚方法。
invokeinterface
用于调用接口方法。
解析(resolution)与分派(dispatch)
解析
解析调用一定是个静态的过程,在编译期间就完全确定,在类装载的解析阶段...
分类:
其他好文 时间:
2014-08-28 13:24:09
阅读次数:
308
template class Conversion{ typedef char Small; class Big {char dummy[2]; }; static Small Test(U); static Big Test(...); static T MakeT(); //稻草人函数publi...
分类:
其他好文 时间:
2014-08-27 21:51:48
阅读次数:
193
T.getClass()或者T.class都是非法的,因为T是泛型变量。由于一个类的类型是什么是在编译期处理的,故不能在运行时直接在Base里得到T的实际类型。/***可以在service层直接调用,也可以在DAO层扩展调用*/public class BaseDaoImpl implements ...
分类:
其他好文 时间:
2014-08-25 11:32:34
阅读次数:
134
条款41:了解隐式接口和编译期多态
n classes和templates都支持接口和多态
n 对classes而言接口是显式的,以函数签名为中心,多态则是通过虚函数发生于运行期。
n 对templates参数而言,接口是隐式的,奠基于有效表达式,多态则是通过template具现化和函数重载解析发生于编译器。
条款42:了解typename的双重意义
n 声明模板参数,前缀关键字...
分类:
编程语言 时间:
2014-08-22 22:37:43
阅读次数:
261
.Net平台下工作好几年了,资源文件么,大多数使用的是.resx文件。它是个好东西,很容易上手,工作效率高,性能稳定。使用.resx文件,会在编译期动态生成已文件名命名的静态类,因此它的访问速度当然是最快的。但是它也有个最大的缺点,就是修改资源文件后,项目必须重新编译,否则修改的资源不能被识别。.....
分类:
Web程序 时间:
2014-08-19 02:06:13
阅读次数:
419
我们都明白局部变量的优先级大于全局变量,或者说内围作用域的变量的优先级比外围的高。如果在当前作用域找不到此变量时,它就往外围的作用域找。不过,在这之前,有一个值得注意的问题就是:究竟当前作用域有没有这个变量。像javascript这样的解释型语言,基本分为两个阶段,编译期(下面为符合大多数语言的称呼...
分类:
Web程序 时间:
2014-08-16 22:30:31
阅读次数:
259
extern "C" 一句话概括 extern "C" 的作用:告诉 C++ 编译器,编译某段代码时不要进行名字重整,以此达到 C++ 中调用 C 函数,或者 C 中调用 C++ 函数的目的;
之所以 C++ 会有名字重整,是因为 C++ 为了实现重载等特性,需要在编译期把函数名重整,针对不同的参数...
分类:
其他好文 时间:
2014-08-15 12:46:38
阅读次数:
201