- 浏览: 4631 次
- 性别:
- 来自: 成都
最新评论
文章列表
String===HashCode Double源码因HashCode调用底层c。下次会详细阐述
源码解析: 先判断当前hash值是否为0 .如果为0 在判断他S听所存放的元数据的长度是否大于0、在把元数据放入到对象中。循环出h的大小。
注释:算出的是ascii的字符串的散列哈希。
在Effective Java 2 这本书中提到的方案是因为使用31这个数(素数)会让哈希更分散。(这个只需使用素数就可以了,java为了更规范所以采用了31)。
^ 异或 两边的位不同时结果为1,否则为0
简诉:这个可以理解f(a!=b) 如果不同结果为1,否则为0例子:比如 2 ^ 3 == 10^11 第二位都是1所以第二位的0,,第二位不同所以为1 。最终结果01=1
~ 非 0变1 1变0
简诉:取反。可连接if(!a) 1 变 0 0 变1
例子:比如~2 = 00000000000000000~30个0后面跟10 根据上诉换算出结果-3
& 与 两边位都是1为1,其余是0
简诉:可直接理解为必须(and),在if判断&& 2边都相同才能为1
例子: 2&3 == ...