首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
星期六
订阅
沉浮1314
更多收藏集
微信扫码分享
微信
新浪微博
QQ
95篇文章 · 0订阅
Java并发-锁的应用与原理,看这一篇就够了
通过对锁原理的分析,重点分析ReentrantLock和ReentrantReadWriteLock的源码,通过锁的实现更深入的理解AQS。 本文很长,不要指望读10分钟以内看懂锁的原理。需要结合源码反复体会,才会把这块知识吃透。 在本文的开篇,先提出问题,我们所有的研究,都为…
Spring 解决循环依赖必须要三级缓存吗?
我们都知道 Spring 是通过三级缓存来解决循环依赖的,但是解决循环依赖真的需要使用到三级缓冲吗?只使用两级缓存是否可以呢?本篇文章就 Spring 是如何使用三级缓存解决循环依赖作为引子,验证两级缓存是否可以解决循环依赖。 既然要解决循环依赖,那么就要知道循环依赖是什么。如…
JVM系列(一) - JVM总体概述
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上一次编译,多…
关于 ReentrantLock 中锁 lock() 和解锁 unlock() 的底层原理浅析
1、在进行查看 ReentrantLock 进行 lock() 加锁和 unlock() 解锁源码时,需要知道 LockSupport 类、了解自旋锁以及链表相关知识。 2、在分析过程中,假设第一个线程获取到锁的时候执行代码需要很长时间才释放锁,及在第二个第三个线程来获取锁的时…
Hadoop 学习系列(四)之 MapReduce 原理讲解
本篇文章将会介绍 Hadoop 重要的计算框架 MapReduce。 实际运行层面,即算法逻辑作业在分布式主机中是以什么形式和什么流程运行的,因为自 MapReduce version2 以后,作业都是提交给 YARN 进行管理,所以本文将不会介绍此部分。 MapReduce是…
缓存穿透了怎么办?
在现在互联网架构中,几乎每个互联网项目都会引入缓存系统,比如 Redis、Memcached。来保护下游数据库和提升系统并发量。不管使用哪种缓存系统都有可能遇到缓存穿透的问题。 缓存穿透是指在缓存系统中没有查询到数据,而不得不将请求打到数据库上查询的情况。 缓存系统的容量是有限…
【进阶之路】Java代码性能调优(一)
String对象是java中重要的数据类型,在大部分情况下我们都会用到String。在java语言漫长的进化过程中,开发人员也对String做了大量的优化,其中字符串的不变性和常量池复用也是String的重要特点 String类以final进行了修饰,在系统中就不可能有Stri…
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功…
为什么 select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?
统计一张表的总数量,是我们开发中常有的业务需求,通常情况下,我们都是使用 select count(*) from t SQL 语句来完成。随着业务数据的增加,你会发现这条语句执行的速度越来越慢,为什么它会变慢呢? 为什么会变慢?想要得到答案就需要知道 MySQL 是如何统计总…
JAVA锁原理之 CAS原子操作篇
原子操作(atomic operation)指的是由多步操作组成的一个操作。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。 现代操作系统中,一般都提供了原子操作来实现一些同步操作,所谓原子操作,也就是一个独立而不可分割的操作。…