并发编程原理剖析——浅谈偏向锁、轻量级锁、重量级锁

为了换取性能,JVM在内置锁上做了非常多的优化,膨胀式的锁分配策略就是其一。理解偏向锁、轻量级锁、重量级锁的要解决的基本问题,几种锁的分配和膨胀过程,有助于编写并优化基于锁的并发程...

Java并发编程笔记——J.U.C之atomic框架:Unsafe类

一、Unsafe简介 在正式的开讲 juc-atomic框架系列之前,有必要先来了解下Java中的Unsafe类。 Unsafe类,来源于sun.misc包。该类封装了许多类似指针操作,可以直接进行内存管理、操纵对象、阻...

Java并发编程笔记——J.U.C之locks框架:基于AQS的读写锁(5)

一、本章概述 AQS系列的前四个章节,已经分析了AQS的原理,本章将会从ReentrantReadWriteLock出发,给出其内部利用AQS框架的实现原理。 ReentrantReadWriteLock(以下简称RRW),也就是读写锁...

Java并发编程笔记——J.U.C之locks框架:AQS共享功能原理剖析(4)

一、本章概述 AQS系列的前三个章节,我们通过ReentrantLock的示例,分析了AQS的独占功能。 本章将以CountDownLatch为例,分析AQS的共享功能。CountDownLatch,是J.U.C中的一个同步器类,可作...

Java并发编程笔记——J.U.C之locks框架:AQS的Condition原理剖析(3)

一、本章概述 本章将继续以ReentrantLock的调用为例,说明AbstractQueuedSynchronizer提供的Conditon等待功能。 二、Condition接口的实现 J.U.C包提供了Conditon接口,用以对原生的Object.wa...

Java并发编程笔记——J.U.C之locks框架:AQS独占功能原理剖析(2)

一、本章概述 本章以ReentrantLock的调用为例,说明AbstractQueuedSynchronizer提供的独占功能。 本章结构如下: 以ReentrantLock的公平策略为例,分析AbstractQueuedSynchronizer的独占功能...

Java并发编程笔记——J.U.C之locks框架:AQS模板方法设计模式概述(1)

一、AQS简介 AbstractQueuedSynchronizer抽象类(以下简称AQS)是整个java.util.concurrent包的核心。在JDK1.5时,Doug Lea引入了J.U.C包,该包中的大多数同步器都是基于AQS来构建的。 AQS框...

Spring IOC 容器源码分析——一篇文章读懂Spring5.x

Spring 设计的初衷 Spring 则立志于全方面的简化 Java 开发。对此,她主要采取了 4 个关键策略: 1、基于 POJO 的轻量级和最小侵入性编程; 2、通过依赖注入和面向接口松耦合; 3、基于切面和...

Mybatis深入源码分析之基于装饰模式纯手写一级,二级,三级缓存

写在前面:设计模式源于生活,而又高于生活! 什么是装饰者模式 在不改变原有对象的基础上附加功能,相比生成子类更灵活。 装饰者模式应用场景 Mybatis缓存,过滤器,网关控制,P2P分控审批 ...

深度源码分析——XXL-SSO分布式单点登录框架(轻量级、分布式、跨域、Cookie+Token、Web+APP均支持)

什么是XXL-SSO XXL-SSO 是一个分布式单点登录框架。只需要登录一次就可以访问所有相互信任的应用系统。 拥有"轻量级、分布式、跨域、Cookie+Token均支持、Web+APP均支持"等特性。现已开放源代...

06/13 13:09
249
Docker图形化工具——Portainer

目标搭建docker-ui 一.Docker图形化工具 docker 图形页面管理工具常用的有三种,DockerUI ,Portainer ,Shipyard 。DockerUI 是 Portainer 的前身,这三个工具通过docker api来获取管理的资...

深度Mybatis源码分析——SqlSessionFactoryBuilder(建造者模式),Mapper接口绑定原理(代理模式)

一:源码分析流程图 二:源码分析开始 public class TestMyBatis { public static void main(String[] args) { try { // 基本mybatis环境 // 1.定义mybatis_confi......

单例设计模式源码分析,常用设计模式白话文总结

什么是单例 单例模式确保某各类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些...

05/31 12:23
159
深入MyBatis源码,理解Java设计模式之适配器模式

写在前面:设计模式源于生活,而又高于生活! 什么是适配器模式 定义:将一个系统的接口转换成另外一种形式,从而使原来不能直接调用的接口变得可以调用。 适配器模式角色划分 适配器模式涉及...

05/29 00:00
1K
真实项目案例实战——【状态设计模式】使用场景

写在前面:设计模式源于生活,而又高于生活! 什么是状态模式 状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。 状态模式应用场景 1.一个对象...

05/26 14:24
902
真实案例实战——设计模式之【外观模式(门面模式)】

写在前面:设计模式源于生活,而又高于生活! 什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。...

05/25 23:16
77
【BATJ】面试必问MySQL索引实现原理

BATJ面试题剖析 1、为什么需要使用索引? 2、数据结构Hash、平衡二叉树、B树、B+树区别? 3、机械硬盘、固态硬盘区别? 4、Myisam与Innodb B+树的区别? 5、MySQL中的索引什么数据结构? 6、...

深入Proxy底层源码——实现自己的JDK动态代理

写在前面:设计模式源于生活,而又高于生活! JDK动态代理原理分析 在使用jdk动态代理的时候,必须要实现InvocationHandler接口;invoke方法中该三个参数分别表示为: 代理对象、被代理执行的...

JDK
05/21 16:00
69
浅谈Java【代理设计模式】——看这篇文章就懂了

写在前面:设计模式源于生活,而又高于生活! 什么是代理模式 为其他对象提供一种代理以控制对这个对象的访问。 为什么使用代理模式 中介隔离:在某些情况下,一个客户类不想或者不能直接引用...

”万丈高楼平地起“——如何从“建筑师”角度打造【装饰者设计模式】

写在前面:设计模式源于生活,而又高于生活! 什么是装饰者模式 在不改变原有对象的基础上附加功能,相比生成子类更灵活。 装饰者模式应用场景 过滤器,网关控制,P2P分控审批 装饰者模式类图...

没有更多内容

加载失败,请刷新页面