Fork me on GitHub
My Sunshine

鸣谢生命有你参与 笑纳我的邀请。


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 搜索

解决Hash碰撞冲突方法总结

发表于 2017-11-15 | 分类于 学习笔记
字数统计 846 | 阅读时长 3

Hash碰撞冲突

我们知道,对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰撞冲突。如下将介绍如何处理冲突,当然其前提是一致性hash。

阅读全文 »

理解一致性哈希算法(consistent hashing)

发表于 2017-11-15 | 分类于 学习笔记
字数统计 2,027 | 阅读时长 7

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。
一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:

阅读全文 »

Java 8 Optional类的分析与使用

发表于 2017-11-12 | 分类于 学习笔记
字数统计 1,997 | 阅读时长 9

Optional 类 是jdk 1.8后新添加的特性,阿里巴巴的代码规范也明确说明了使用 Optional 来防止NPE。

Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。
Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。
Optional 类的引入很好的解决空指针异常。

阅读全文 »

JPA多表查询的解决办法

发表于 2017-11-09 | 分类于 学习笔记
字数统计 1,128 | 阅读时长 5

实际业务中,多表关联查询应用实例很多,怎么使用JPA进行多表查询,可以选择不同的方法优化。
记下在JPA中多表查询的有效使用方法。

阅读全文 »

Java多线程中Lock

发表于 2017-11-05 | 分类于 学习笔记
字数统计 4,937 | 阅读时长 21

如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:

  1. 获取锁的线程执行完了该代码块,然后线程释放对锁的占有;
  2. 线程执行发生异常,此时JVM会让线程自动释放锁。
阅读全文 »

Java多线程中synchronized

发表于 2017-11-05 | 分类于 学习笔记
字数统计 972 | 阅读时长 4

在多线程中,当多个线程同时访问同一个资源对象的时候,由于线程在处理中是不可控的,导致,执行的结果可能出现不可控的错误。

例如:两个线程thread-1和thread-2,同时要数据入库,需要判断数据字段a,不重复,所以当插入数据的时候先去检查数据库中a字段,当我们的两个线程中字段a相同的时候,出现thread1先执行查询,在thread2查询,两个线程同时都会得到a字段没重复,这个时候,数据入库,肯定会有问题的。

有线程安全的问题,这个资源叫做临界资源。

阅读全文 »
1…101112…14
Kai Zhang

Kai Zhang

82 日志
3 分类
29 标签
RSS 听音乐
GitHub Email QQ
Links
  • 悦夏
  • 闪电拉拉
  • draw.io
  • processon
© 2017 - 2021 Kai Zhang
Hosted by Github Pages
Site words total count:225.9k
0%