学习临时笔记

1 mysql 三个重要日志 binlog 同步主从用的  redolog 事务持久化数据用的  undolog事务回滚确保原子性用的

2 异或运算  0和任何数异或都得到原来的数/两个相同的数字异或得0

右移16位异或可以同时保留高16位于低16位的特征,采用&运算计算出来的值会向1靠拢,采用|运算计算出来的值会向0靠拢。假如不做右移运算,那么hash仅是最后四位和1111运算(假如数组长度为16)那么hash高位的信息就会全部丢失(比如:如果有多个key.hashcode最后四位都是0000那么就会全部存储在索引为0的桶中产生碰撞),如果右移16位就会将高位的信息与低位的16位异或运算,保留了高位与低位的特征更能体现key.hashcode的特征,降低冲突的概率。主要目的:上面提到的所有问题,最终目的还是为了让哈希后的结果更均匀的分布,减少哈希碰撞,提升hashmap的运行效率。

防止一些实现比较差的 hashCode() 方法,使用扰动函数之后可以减少碰撞,进一步降低hash冲突的几率。不防止实现好的hashcode方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值