.net 阅读笔记

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值