MRZvc
码龄12年
关注
提问 私信
  • 博客:10,768
    10,768
    总访问量
  • 27
    原创
  • 2,156,906
    排名
  • 343
    粉丝
  • 2
    铁粉

个人简介:静坐常思己过,闲谈莫论人非。

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2013-06-20
博客简介:

茄厛風吟

博客描述:
静坐常思己过,闲谈莫论人非。
查看详细资料
个人成就
  • 获得5次点赞
  • 内容获得1次评论
  • 获得8次收藏
创作历程
  • 5篇
    2020年
  • 22篇
    2019年
成就勋章
兴趣领域 设置
  • 运维
    容器devops自动化kubernetes系统架构网络
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

CompletableFuture 使用详解

1、 runAsync 和 supplyAsync方法CompletableFuture 提供了四个静态方法来创建一个异步操作。public static CompletableFuture<Void> runAsync(Runnable runnable)public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)public static <U>
原创
发布博客 2020.09.25 ·
208 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis与MongoDB区别

MongoDB 更类似 MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询 JSON 数据,能存储海量数据,但是不支持事务。Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,支持多种类型的数据结构,可用作数据库,高速缓存和消息队列代理。1、内存管理机制Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其.
原创
发布博客 2020.08.31 ·
195 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MongoDB空间定位(点)与距离检索

MongoDB空间定位(点)与距离检索测试数据:db.mapinfo.insert({"address": "南京 禄口国际机场", "tags": ['A'], "location": {"type": "Point", "coordinates": [118.783799, 31.979234]}})db.mapinfo.insert({"address": "南京 浦口公园", "tags": ['B'], "location": {"type": "Point", "coordinates.
原创
发布博客 2020.08.31 ·
802 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java数据类型和MySql数据类型对应表

原创
发布博客 2020.08.31 ·
155 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

邀请码生成器

package sourcecode;import java.util.Random;/** * 邀请码生成器 算法原理: 1) 获取id: 134567 2) 使用自定义进制转为:8VML 3) 转为字符串,并在后面加'O'字符:8VMLO * 4)在后面随机产生若干个随机数字字符:8VMLOD * 转为自定义进制后就不会出现O这个字符,然后在后面加个'O',这样就能确定唯一性。...
原创
发布博客 2020.08.31 ·
3543 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

3-Java中如何创建线程

Runnable和Thread实现多线程的区别Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势: 可以避免由于Java的单继承特性而带来的局限; 增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的; ...
原创
发布博客 2019.09.03 ·
102 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

14-ThreadLocal类详细剖析

ThreadLocal类详细剖析对ThreadLocal的理解JDK中的源码是这样描述ThreadLocal的:This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (...
原创
发布博客 2019.09.02 ·
121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java集合框架

Java集合框架概述Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。Java集合类的整体框架如下:从上图中可以看出,集合类主要分为两大...
原创
发布博客 2019.08.30 ·
114 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

TreeMap源码分析解读

基础结构 static final class Entry<K,V> implements Map.Entry<K,V> { K key; V value; Entry<K,V> left; // 左孩子 Entry<K,V> right; // 右孩子 ...
原创
发布博客 2019.08.30 ·
106 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

LinkedList源码分析解读

基础结构 private static class Node<E> { E item; // 当前值 Node<E> next; // 前置节点 Node<E> prev; // 后置节点 Node(Node<E> prev, E element, Node<E&...
原创
发布博客 2019.08.30 ·
110 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

红黑树源码分析解读

红黑树的介绍红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。红黑树的特性:(1) 每个节点...
原创
发布博客 2019.08.30 ·
221 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

HashSet源码分析解读

HashSetHashSet概述HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。HashSet的实现public class HashSet<E> extends AbstractSet<E> implements Set<E>, ...
原创
发布博客 2019.08.30 ·
92 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

HashMap源码分析解读

HashMapHashMap概述HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。public class HashMap<K,V> extends Abst...
原创
发布博客 2019.08.30 ·
92 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Vector源码分析详解

public class Vector<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ protected Object[] elementData; protected int ele...
原创
发布博客 2019.08.30 ·
107 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

如何设计一个百万级用户的抽奖系统?

1、抽奖系统的背景引入本文给大家分享一个之前经历过的抽奖系统的流量削峰架构的设计方案。抽奖、抢红包、秒杀,这类系统其实都有一些共同的特点,那就是在某个时间点会瞬间涌入大量的人来点击系统,给系统造成瞬间高于平时百倍、千倍甚至几十万倍的流量压力。比如抽奖,有一种场景:某个网站或者APP规定好了在某个时间点,所有人都可以参与抽奖,那么可能百万级的用户会蹲守在那个时间点,到时间大家一起参与这个抽奖。抢...
原创
发布博客 2019.08.30 ·
221 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hashtable源码分析详解

HashtableHashtable简介和HashMap一样,Hashtable也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null(为null时将抛...
原创
发布博客 2019.08.30 ·
106 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

一个简单的抽奖算法

通过随机数的区间分布实现一个抽奖算法。接受一个包含奖品中奖概率的list,返回中奖的奖品。先定义一个抽象奖品类。public class AbstractPrize { private double probability; // 中奖概率 private int prizeNum; // 奖品数量(暂时没用到) private String prizeName; // 奖品名...
原创
发布博客 2019.08.30 ·
420 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

二叉树的深搜和广搜

二叉树是计算机中一个重要的数据结构,在这里主要谈一下二叉树的深度优先搜索(DFS)和广度优先搜索(BFS)。所谓DFS,就是沿着树的深度一直往下,一直到达一个叶子节点,然后再返回遍历剩余的节点。根据树的性质,树结构不存在环,因此遍历的时候不需要标记。如果在遍历一个图的时候,因为图中有环的存在,因此需要标记访问过的节点,以防止程序进入死循环。言归正传,树的DFS有三种方式,分别为:前序遍历,中序...
原创
发布博客 2019.08.30 ·
834 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

AQS详解

AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架,如下图所示。AQS为一系列同步器依赖于一个单独的原子变量(state)的同步器提供了一个非常有用的基础。子类们必须定义改变state变量的protected方法,这些方法定义了state是如何被获取或释放的。鉴于此,本类中的其他方法执行所有的排队和阻塞机制。子类...
原创
发布博客 2019.08.22 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CAS初识

一、CAS概念与原理 CAS,全称Compare And Swap(比较与交换),解决多线程并行情况下使用锁造成性能损耗的一种机制。  实现思想 CAS(V, A, B),V为内存地址、A为预期原值,B为新值。如果内存地址的值与预期原值相匹配,那么将该位置值更新为新值。否则,说明已经被其他线程更新,处理器不做任何操作;无论哪种情况,它都会在 CAS 指令之前返回该位置的值。而我...
原创
发布博客 2019.08.21 ·
182 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多