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

    前情提要MySQL 这两年越来越被开发者重视,市面上也出现了一些优秀的教程,使更多的人了解到了 MySQL 底层的逻辑。但对于我们来说 MySQL 最基本最常用的查询语句的编写,仍然需要最扎实的基本功。本文以一个简单的两表关联来讲解一个 SQL 语法。MySQL 两个表进行关联,table1.a ...

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

    本文重点前情提要上文中详细介绍了 AQS 源码的执行流程和核心思想, 如下。CAS自旋LockSupport.park() unpark()双端队列AQS 中 tryAcquire / tryRelease, tryAcquireShared / tryReleaseShared 都需要具体子类根...

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

    本文重点前情提要之前文章中写到了 JDK 中 synchronized 关键字可以实现同步锁,并且详细分析了底层的实现原理。虽然 synchronized 在性能上不再被人诟病,但是在实际使用中仍然缺乏一定的灵活性。比如在一些场景中需要去尝试获取锁,如果失败则不再进行等待,又或者设置一定的等待时间,...

    大内总管教你 JDK 动态代理

    JDK 动态代理分析。...

    ThreadLocal 解析

    ThreadLocalThreadLocal,先看名字,thread - 线程,local - 本地,组合起来为线程本地变量。JDK 中注释如下: * This class provides thread-local variables. These variables differ from *...

    Synchronized 原理及锁升级过程分析

    SynchronizedSynchronized,是 JDK 提供的内置同步锁关键字,早期它的实现原理相对来说性能稍弱,被称为重量级锁。JDK 1.6 之后 synchronized 进行了一些优化,减少锁获得与释放带来的性能消耗,引入了 偏向锁、轻量级锁。重量级锁synchronized 有三种使...

    Java 对象组成,对象头分析

    前言越发内卷的行业,使得程序员不得不去了解更多底层设计的东西,所以知识必须适可而止地总结一丢丢。Java 对象的组成Java 对象由三部分区域组成,分别是对象头实例数据对齐填充实例数据实例数据是,对象真正存储数据区域,包含了各种类型的字段。例如 boolean 类型的字段站 1 字节,int 类型字...

    Mybatis 源码分析

    Mybatis 源码分析Mybatis,一款优秀 ORM 框架,它的核心是将 Java 对象和数据库表映射起来,方便对数据进行增删改查操作。阅读源码的重点关注以下几点。1、如何找到要执行的 SQL2、如何执行 SQL,并返回对应的数据3、查询缓存如何存取包的划分MyBatis 的包划分很清晰,职责明...

    优雅停机之主动从Nacos下线实例

    问题服务提供方采用了 SpringCloud Alibaba 框架,将服务注册到 Nacos 上,部署采用的是 k8s + docker 容器部署。当服务升级发布时,新的 pod 被创建——Nacos 上服务实例加 1,旧的 pod 被关闭——Nacos 上服务实例减 1。Nacos 通过心跳检测机...

    跨域 CORS

    同源策略Same Origin Policy,同源策略,它是一种约定,也是浏览器最核心最基本的安全功能。如果缺少了同源策略,浏览器的正常功能会受到影响。同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。同源指的是以下三项必须相同:协议相同域名相同端口相同比如对网站 https://w...