首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
看
订阅
呼呼吃吃
更多收藏集
微信扫码分享
微信
新浪微博
QQ
22篇文章 · 0订阅
别再怀疑自己的智商了,Raft协议本来就不好理解
Raft声称是一种易于理解的分布式一致性算法。有不少工程师们翻了它的论文,参考了很多资料,最后只好怀疑自己是不是智商有问题。 Raft一直以来是很多高级资深程序员技术上的天花板,捅破相当有难度。每次刚刚拿起时汹涌澎湃,过不了多久便偃旗息鼓了,有一种丧尸般的难受。渴望逃离技术舒适…
简单实用的状态机设计与实现
在实际开发中,也会经常遇到状态机的问题。举个简单的例子,考虑用户支付场景下订单的状态,订单状态可能经过这样的变化:待付款 --> 处理中 --> 失败/成功 在这个过程中,业务系统需要向第三方支付系统(微信、支付宝)查询订单状态,更新本地库的订单状态。 类似的场景很多,特别是在…
final关键字深入解析
final关键字在java中使用非常广泛,可以申明成员变量、方法、类、本地变量。一旦将引用声明为final,将无法再改变这个引用。final关键字还能保证内存同步,本博客将会从final关键字的特性到从java内存层面保证同步讲解。这个内容在面试中也有可能会出现。 final变…
java编程——从jvm角度看懂类初始化、方法重写、重载
在讲类的初始化之前,我们先来大概了解一下类的声明周期。如下图 类的声明周期可以分为7个阶段,但今天我们只讲初始化阶段。我们我觉得出来使用和卸载阶段外,初始化阶段是最贴近我们平时学的,也是笔试做题过程中最容易遇到的,假如你想了解每一个阶段的话,可以看看深入理解Java虚拟机这本书…
跟着小白学zookeeper: 分布式锁的实现
最近小白在做一个系统功能时,发现有个方法是需要做同步的,but,生产环境中项目的部署是多个tomcat做集群的,而简单的使用synchronized加锁只是针对同一个JVM进程中的多线程实现同步,对于跨进程的同步无法达到统一加锁的目的。于是,小白便想到了分布式锁。前段时间刚好看…
实战-MySQL定时进行全量与增量备份
在产品上线之后,我们的数据是相当重要的,容不得半点闪失,应该做好万全的准备,搞不好哪一天被黑客入侵或者恶意删除,那就 gg 了。所以要对我们的线上数据库定时做全量备份与增量备份。例如:每天做一次增量备份,每周做一次全量备份。 GitHub 地址: 如上一段代码所示,其功能是将 …
Java锁之ReentrantReadWriteLock
上面就是读写锁的获取和释放过程源码,先分析简单的非阻塞获取锁方法,根据源码我们可以知道,写锁和读锁的是否获取也是判断状态是否不为0,写锁的状态获取方法是exclusiveCount(c),读锁的状态获取方法是sharedCount(c)。那么我们接下来分析下这两个方法是如何对统…
[算法总结] 17 题搞定 BAT 面试——链表题
链表是面试过程中经常被问到的,这里把剑指offer 和 LeetCode 中的相关题目做一个汇总,方便复习。 1. 在 O(1) 时间删除链表节点 题目描述:给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 解题思路:常规的做法是从链表的头结点开始遍历…
深入解密来自未来的缓存-Caffeine
。这两篇文章主要从一些实战上面去介绍如何去使用缓存。在这两篇文章中我都比较推荐Caffeine这款本地缓存去代替你的Guava Cache。本篇文章我将介绍Caffeine缓存的具体有哪些功能,以及内部的实现原理,让大家知其然,也要知其所以然。有人会问:我不使用Caffeine…
SpringMVC中出现的线程安全问题分析
(ps:前几个星期发生的事情)之前同事跟我说不要使用@Autowired方式注入HttpServletRequest(ps:我们的代码之前用的是第2种方式)。同事的意思大概是注入的HttpServletRequest对象是同一个而且存在线程安全问题。我保持质疑的态度,看了下源码…