
JAVA基础
半盏屠苏
在码农的路上渐行渐远...
展开
-
一致性hash
一致性hash的产能背景通过hash将数据分步到数据库中,当机器增加一台或者减少一台 进行rehash时,数据的迁移量相对会比较大。什么是一致性hash?1.将所有机器hash后的定位到0-2^32次方 的圆环上,当新增节点 ,求新增节点hash值 定位到圆环上,只需要将下一个节点的部分数据迁移到新的机器上即可。如何解决分步不均匀问题?通过增加序列节点 进行hash...原创 2020-03-20 01:35:56 · 202 阅读 · 0 评论 -
【Effective JAVA】学习笔记
创建和销毁对象考虑用静态工厂方法代替构造器遇到多个构造器参数时,要考虑用构建器注:在lombok插件中 有个 @Builder注解 可以方便生成构建器,建造者模式用私有构造器或者枚举类型强化Singleton属性注:可以参考单例的几种实现方式,推荐枚举 和 静态类的方法实现,避免饿汉式加载和懒汉式的线程同步问题通过私有构造器强化不可实例化的能力。注:对于一些工具类 建议加上私有构造...原创 2019-08-24 02:05:36 · 125 阅读 · 0 评论 -
面试题 两个线程间隔打印1,2,3,4,5,6,7,8....100 一个线程打印奇数,一个线程打印偶数
此题还有一种变种 即 两个线程分别控制灯光交替闪烁, 其中一个线程控制开灯,另外一个线程控制关灯。主要考察的是对多线程协同的理解。主要利用 wait和notify进行解题。案例代码:/** * @date 2019/02/25 */public class ThreadTest { public static volatile int i = 1; ...原创 2019-02-26 22:23:49 · 982 阅读 · 2 评论 -
Spring如何在一个单例Bean中注入多例Bean,保证每次获取都是新的多例Bean
文章目录1 使用Lookup注解2 使用Spring的ObjectFactory在spring中 如果需要一个对象为多例,需要使用 @Scope注解,指明作用于为SCOPE_PROTOTYPE即可。当我们在一个单例的bean A中注入多例bean B时,由于spring在初始化过程中加载A的时候已经将B注入到A中,所以直接当做成员变量时,只会获取一个实例。我们可以通过以下两种优雅的方法解决:...原创 2019-08-22 02:05:27 · 5336 阅读 · 0 评论