CSDN博客

img kangchb

.net 阅读笔记

发表于2008/9/29 15:46:00  183人阅读

Boxing的概念

.net中的struct属于value type,所以分配是在stack上,而CLASS是分配在heap上的.把一个stack上的value type赋给一个reference会导致在heap中产生对这个value type的复制,而且这个复制的东西是system.object的子类.这种动作叫做boxing.
e.g. Struct size;
     Size s = new Size(); //stack上的一个value type
     IAdjustor itf = s; //boxing, heap上出现一个兼容system.object的Size 的复制
     s=(Size)itf; //unboxing, 把heap上的复制回到stack上的value type

Array,

对于n维(rank) array, 有两种存储方式,一种是连续存储,C语言就是这样的,另一种叫jagged,每一个array的元素都是一个array,而且每个元素里面的array可以不一样长,所以叫jagged.

Dispose,

.net中希望把用户认为需要显示调用类似destructor的部分实现到dispose()函数里, java 的rule engine就需要对rule 色session 显示的调用dispose, 

Equivalent

对于比较两个object是否相同,可以实现equals方法, 同时还可以实现getHashCode方法,如果getHashCode 不一样,则肯定两个object不同,如果hashcode一样,不能确定,可以再调用equals,getHashCode的调用开销比equals小很多.         
阅读全文
0 0

相关文章推荐

img
取 消
img