自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 看了那么多 MySQL 教程,90% 的同学依然写不对的一个简单 SQL

前情提要MySQL 这两年越来越被开发者重视,市面上也出现了一些优秀的教程,使更多的人了解到了 MySQL 底层的逻辑。但对于我们来说 MySQL 最基本最常用的查询语句的编写,仍然需要最扎实的基本功。本文以一个简单的两表关联来讲解一个 SQL 语法。MySQL 两个表进行关联,table1.a = table2.a,如果 a 字段可能出现 null 值,实际上查询结果可能并不是我们期望的。和一些有多年开发经验的老司机进行过沟通,有部分会采用间接的方式解决。场景再现我们新建两张表,老司机表 t

2021-05-23 16:40:41 93

原创 老司机带你细数 AQS 子类,及以其实现的类

本文重点前情提要上文中详细介绍了 AQS 源码的执行流程和核心思想, 如下。CAS自旋LockSupport.park() unpark()双端队列AQS 中 tryAcquire / tryRelease, tryAcquireShared / tryReleaseShared 都需要具体子类根据不同的策略来实现,而具体的排队逻辑、控制加锁及释放都是在 AQS 中实现的AQS 的子类1、ReentrantLock独占锁可重入公平与非公平通过 CAS 设置 state

2021-04-26 20:16:12 457

原创 深入 AQS 源码,搞懂核心思想

本文重点前情提要之前文章中写到了 JDK 中 synchronized 关键字可以实现同步锁,并且详细分析了底层的实现原理。虽然 synchronized 在性能上不再被人诟病,但是在实际使用中仍然缺乏一定的灵活性。比如在一些场景中需要去尝试获取锁,如果失败则不再进行等待,又或者设置一定的等待时间,超时后就放弃等待。正文开始,ReentrantLock 介绍java.util.concurrent.locks 包提供了多种锁机制的实现,本文暂且以 ReentrantLock 为例,探究 Jav

2021-04-19 19:41:59 151

原创 大内总管教你 JDK 动态代理

代理模式Proxy Pattern,代理模式,一个类可以代表另一个类的功能。在生活中代理模式也是比比皆是,房产中介、委托律师、海外代购、同城闪送,他们都是代理了实际用户的一些行为,并且极大地提供了专业性、方便性和扩展性。代理模式的类图如下。静态代理根据代理模式的思想,可以用以下这个例子来说明。在古代皇帝下圣旨、口谕,给王公大臣升职加薪、给后宫嫔妃册封,都是大总管去送信儿,王公大臣也得老老实实磕头谢恩,大总管就是皇帝的代理。/** * @author lyqiang */interfac

2021-04-06 11:52:41 105 2

空空如也

空空如也

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

TA关注的人

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