1. UUID 128位占用空间较多
    2. (重要)UUID是无序的在插入数据时会造成索引重排,如果是有序的主键直接在B+树的最后插入数据即可

java语言中的锁

java语言中的锁
从java的集合线程安全开始说起 平时经常使用的集合类如ArrayList,LinkedList,HashSet等以及Map都是线程不安全的,如果进行多线程操作会出现线程安全问题,那么java是如何解决这些常用类的线程安全问题呢 几个常用的保证集合类线程安全的方法 使用synchronized关键字 使用Collections提供的工具方法保证线程……继续阅读 »

骐骏 2年前 (2019-05-27) 950浏览 0评论 0个赞

CAS问题简述

CAS问题简述
1. 什么是CAS compareAndSwap 对比并交换,是一条CPU原语,执行必须是连续的不能够被打断。Atomic类使用CAS原理实现 java语言中利用,sun.misc.Unsafe类实现了CAS java8中里有do...while循环实现了CAS public final int getAndSetInt(Object paramOb……继续阅读 »

骐骏 2年前 (2019-05-20) 913浏览 0评论 0个赞

线程池相关知识点

线程池相关知识点
 从阻塞队列开始说起 在操作阻塞队列时,如果队列内容为空,那么消费线程会被阻塞;如果队列已经满了,那么生产线程将会阻塞 阻塞队列的分类 ArrayBlockingQueue 有界队列 底层为Array形式存储 如果所有的任务都是按顺序执行,不存在“插队”和从队伍中离开,则适合使用ArrayBlockingQueue LinkedBlocking……继续阅读 »

骐骏 2年前 (2019-05-18) 1299浏览 0评论 1个赞

volatile是如何保证内存可见性的

volatile是如何保证内存可见性的
在java的内存模型中,每个线程都要将主内存中的变量复制到线程的工作内存中,在线程操作完成后将工作内存中的变量写会到主内存中。如果一个变脸被复制到线程的工作空间中,在线程工作空间中的修改,如果不能及时写回主内存中,那么其他线程是无法获取大这个变量已被修改的状态。 java引入volatile关键字来实现指令在读取变量时,必须去读主内存中的变量,而不将变量复……继续阅读 »

骐骏 2年前 (2019-05-02) 766浏览 0评论 0个赞

《亿级流量网站架构》读书笔记

《亿级流量网站架构》读书笔记
限流详解 限流算法 令牌法:每秒产生指定数量令牌,如果能够获得令牌则不限流;无法获得令牌则限流 漏斗法:类似于一边进水一边放水;将请求放入桶中如果桶没满,正常处理,如果桶满,则拒绝请求。 应用级限流 分布式限流 redis + lua nginx + lua 接入层限流 (nginx等) ngx_http_limit_conn_mo……继续阅读 »

骐骏 3年前 (2018-08-10) 963浏览 0评论 0个赞

java bean的关系

java bean的关系
Java类之间的关系: 依赖,关联,聚合,组合 依赖:常以方法参数的形式出现 关联:可以单向也可以是双向,常以成员变量的方式出现 聚合:一种特殊的关联关系,表示两个对象之间是整体和部分的弱关系,部分的生命周期可以超越整体。如电脑和鼠标 组合方式: 也是一种特殊的关联关系,表示两个对象之间是整体和部分的强关系,部分的生命周期不能超越整体,或者说不能脱离整体而存……继续阅读 »

骐骏 4年前 (2018-01-03) 182浏览 0评论 0个赞