日期:2014-05-17  浏览次数:20828 次

几个基本的知识点,不太确定,请教~
1.null 是对象还是值?
2.它有gettype()及gethashcode()吗

3.具有不同的哈希码的对象是属于不同的对象?
4.具有相同的哈希码的对象是属于同一个对象?
5.这个对象的哈希码的作用?
6.null在内存中的那个地方,堆还是栈中,所占字节数?有没哈希值?

自己的答案:
1.是不确定的对象。
2.没有
3.是
4.是
5.便于cls对内存中的对象能够快速的读取及修改。
基础

------解决方案--------------------
null是关键字

http://msdn.microsoft.com/zh-cn/library/vstudio/edakx9da.aspx
------解决方案--------------------
1,值
2,无
3,不一定
4,是
5,散列表
6,指向内存地址为000...的区域的指针,字节数为一个指针的大小,32或64byte,无。
------解决方案--------------------
null 是值
------解决方案--------------------
完全没有想过这个问题,关注&学习。
------解决方案--------------------
引用:
引用:4,不一定

哈希吗不能用作对象的唯一标识


哈希吗不能用作对象的唯一标识 那什么能作为一个对象的唯一码呢?
这个哈希表是一个散列表的话,是不是根据数据结构中的哈希算法计算出来的呢
那一个对象的value 是什么呢

string s="abc";
string t="abc";
s和t的哈希值是一样的,也就是……

字符串有驻留技术,你比较下引用,s,t就是同一个对象。
------解决方案--------------------
引用:
引用:1,值
2,无
3,不一定
4,是
5,散列表
6,指向内存地址为000...的区域的指针,字节数为一个指针的大小,32或64byte,无。

指向内存地址为000...的区域的指针,字节数为一个指针的大小,32或64byte,无。 
null是一个指向内存地址0000的区域的指针,你确定,以000...开始的这个地址……

我的理解是null就是一个指向0000....的一个“指针标识”,就是这么一个全0的“值”,实际不指向任何东西。
就像我们说这个东西是黑色的,到底什么是黑色?要有一个具体可以的东西可以比较吧。
所以当初就把全0的指针作为null的标识,只要指针是全0,就认为是null.

这样的一个标识已经能标识自己了,就没必要再用一个哈希吗来标识它了吧。

我觉得好绕啊,,,

个人见解,不当之处请指正。
------解决方案--------------------
以前写过一个哈希码的文章,,被我删了,在CSDN博客回收站,无法恢复
------解决方案--------------------
1.null 是对象还是值?
  值吧
2.它有gettype()及gethashcode()吗
  没
3.具有不同的哈希码的对象是属于不同的对象?
  不一定,同一对象可以多个
4.具有相同的哈希码的对象是属于同一个对象?
  同上
5.这个对象的哈希码的作用?
  不知道
6.null在内存中的那个地方,堆还是栈中,所占字节数?有没哈希值?
  0值,参考c 指针

以上个人猜想