自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 不能错过的分布式ID生成器(Leaf-,Java面试问项目

Leaf的优势:高可靠、低延迟、全局唯一等特点。目前主流的分布式ID生成方式,大致都是基于数据库号段模式和雪花算法(snowflake),而美团(Leaf)刚好同时兼具了这两种方式,可以根据不同业务场景灵活切换。接下来结合实战,详细的介绍一下Leaf的Leaf-segment号段模式和Leaf-snowflake模式一、 Leaf-segment号段模式Leaf-segment号段模式是对直接用数据库自增ID充当分布式ID的一种优化,减少对数据库的频率操作。相当于从数据库批量的获取自增ID,每次从数

2021-08-10 23:06:00 316

原创 不能错过的分布式ID生成器(Leaf-(2),Java入门视频教程

目前主流的分布式ID生成方式,大致都是基于数据库号段模式和雪花算法(snowflake),而美团(Leaf)刚好同时兼具了这两种方式,可以根据不同业务场景灵活切换。接下来结合实战,详细的介绍一下Leaf的Leaf-segment号段模式和Leaf-snowflake模式一、 Leaf-segment号段模式Leaf-segment号段模式是对直接用数据库自增ID充当分布式ID的一种优化,减少对数据库的频率操作。相当于从数据库批量的获取自增ID,每次从数据库取出一个号段范围,例如 (1,1000] 代表

2021-08-10 23:04:51 175

原创 不能错过的分布式ID生成器(Leaf-(1),2021年五面蚂蚁

* 雪花算法模式     * @param key     * @return     */    @RequestMapping(value = “/api/snowflake/get/{key}”)    p

2021-08-10 23:03:38 210

原创 不是吧,拥有百万粉丝的大牛讲述学Java的历程

/** * 表示 节点 * @param <K> * @param <V> */static class RBNode<K extends Comparable<K>,V>{ // 节点是双向的 private RBNode parent; private RBNode left; private RBNode right; private boolean color; priva

2021-08-10 23:02:31 71

原创 不是吧阿sir,字节跳动架构师讲解Java开发

​ IoC 容器是 Spring⽤来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。将对象之间的相互依赖关系交给 IoC 容器来管理,并由 IoC 容器完成对象的注⼊。这样可以很⼤程度上简化应⽤的开发,把应⽤从复杂的依赖关系中解放出来。 IoC 容器就像是⼀个⼯⼚⼀样,当我们需要创建⼀个对象的时候,只需要配置好配置⽂件/注解即可,完全不⽤考虑对象是如何被创建出来的。2、Spring AOP,动态代理​ AOP(Aspect-Oriented Pr

2021-08-10 23:01:18 69

原创 不是吧阿sir(1),手持4个大厂offer的我

​ 主要是为了建立可靠的通信信道,保证客户端与服务端同时具备发送、接收数据的能力​ 为什么两次不行?​ 1、防止已失效的请求报文又传送到了服务端,建立了多余的链接,浪费资源​ 2、 两次握手只能保证单向连接是畅通的。(为了实现可靠数据传输, TCP 协议的通信双方, 都必须维 护一个序列号, 以标识发送出去的数据包中, 哪些是已经被对方收到的。 三次握手的过程即是通信双方 相互告知序列号起始值, 并确认对方已经收到了序列号起始值的必经步骤;如果只是两次握手, 至多只 有连接发起方的起始序列号能被确认,

2021-08-10 23:00:08 82

原创 不搞定HR这3个问题,建议不要轻易跳槽,深入分布式缓存从原理到实践技术分享

“他懂个屁,论技术水平,技术总监都要高抬我一手,他一个人事,说不要就不要?”“老王啊,都快奔三的人了,怎么还这么大的脾气?”“我的技术水平圈子里的人都是有目共睹的是吧,这点你不否认吧?”“嗯嗯…”“我去面试一个技术岗,技术面的时候,谈技术功底、源码问题、项目经验等等,面试官都赞不绝口。我就纳闷了,人事面的时候,说我不适合这个岗位!”“……”老王,一个在职场上奋战了近十载的老程序员,技术水准确实没得说。他热爱学习,别人都说“活到老,学到老”,用他的话说“只有学到老,我才能活到老”。总之他什么都好

2021-08-10 22:59:04 81

原创 Java SPI机制分析,大厂Offer拿到手软啊

static { loadInitialDrivers(); println("JDBC DriverManager initialized");} private static void loadInitialDrivers() { String drivers; try { drivers = AccessController.doPrivileged(new PrivilegedAction<String>() {.

2021-08-07 20:30:15 79

原创 Java SPI机制分析(1),源码解读及如何保证线程安全

} if (configs == null) { try { String fullName = PREFIX + service.getName(); if (loader == null) configs = ClassLoader.getSystemResources(fullName); else...

2021-08-07 20:29:09 216

原创 Java ArrayList类深度解析,Java两年工作经验面试题

问题 1:ArrayList 的 size 和 capacity 怎么理解?如果把 ArrayList 看作一个杯子的话,capacity 就是杯子的容积,也就是代表杯子能装多少东西,而 size 就是杯子装的东西的体积。杯子可能装满了,也可能没装满,所以 capacity >= size 。capacity 过大和过小都不好,过大会造成浪费,过小又存放不下多个元素的值,capacity == size,则 ArrayList 空间利用率最大,但是不利于添加新的元素。当 ArrayList 实例.

2021-08-07 20:27:59 115

原创 J2EE基础集合框架之Map集合,linux系统使用入门

下面我将用两张图片来阐述泛型的作用:我新定义一个对象,不是按照对应的泛型来定义。(只有在运行时报错,给大家看一下错误)Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at Map.Demo4.main(Demo4.java:24)错误的意思是无法将string类型转换为int类型)接下来我将把泛型定义好:大

2021-08-07 20:26:50 82

原创 I love 114514,Java数据结构与算法pdf百度云

OutputFor each test case, output a single line contain the answer for the test case.Sample Input、21145141919810Sample OutputAAAAAAAbuchulaile题解就是看那个字符串能不能找到  114514 作为子串#include<iostream>using namespace std;int main(){ int

2021-08-07 20:25:40 557

原创 HashMap + 软引用进行缓存,给2021的Java一些建议

@Overridepublic V put(K key, V value) { clearQueue(); // 创建 SoftNode对象 SoftNode softNode = new SoftNode(key, value, queue); // 返回key之前所对应的SoftNode对象,即oldSoftNode SoftNode oldSoftNode = temp.put(key, softNode); // 如果oldSoftNo

2021-08-07 20:23:28 129

原创 HashMap + 软引用进行缓存(1),Java传智播客笔记

SoftNode softNode = temp.get(key); return softNode == null ? null : (V) softNode.get();}@Overridepublic V put(K key, V value) { clearQueue(); // 创建 SoftNode对象 SoftNode softNode = new SoftNode(key, value, queue); // 返回ke...

2021-08-07 20:22:23 92

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除