加载中
一篇文章带你领略——JVM运行原理揭秘

JVM运行时数据区 线程共享:所有线程能访问这块内存数据,随虚拟机或GC而创建和销毁 线程独占:每个线程都会有它独立的空间,随线程生命周期而创建和销毁 线程安全问题:共享资源的抢占、线程...

08/18 10:32
31
Java并发编程笔记——J.U.C之atomic框架:Unsafe类

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

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

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

Mybatis深入源码分析之SqlSessionFactory二级缓存原理分析

上篇内容回顾可以参考;Mybatis深入源码分析之SQLSession一级缓存原理分析 这里再概括下上篇源码分析内容: 一:Mybatis一级缓存 mybatis的一级缓存是SqlSession缓存,在操作数据库的时候需要...

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

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

LockSupport实现线程挂起和唤醒——深入浅出原码分析

面试题 (1)LockSupport比Object的wait/notify有两大优势,分别是什么? (2)LockSupport源码是如何实现的,具体说说你的看法? (1)LockSupport比Object的wait/notify有两大优势,分别是...

读写锁——ReentrantReadWriteLock原理详解

1.读写锁ReentrantReadWriteLock的原理 解决线程安全问题使用ReentrantLock就可以了,但是ReentrantLock是独占锁,某一时刻只有一个线程可以获取该锁,而实际中会有写少读多的场景,显然Ree...

Mybatis深入源码分析之SQLSession一级缓存原理分析

通过前面几篇文章,Mybatis深入源码分析之SqlSessionFactoryBuilder源码分析,Mybatis深入源码分析之Mapper与接口绑定原理源码分析。我们对Mybatis源码也有了一定的了解。本篇文章,我们继续...

浅谈Java【代理设计模式】——看这篇文章就懂了

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

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

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

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

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

05/31 12:23
154
Spring5.0源码深度解析之SpringBean的生命周期

SpringBean的生命周期 一:单例与多例对象是如何初始化 单例默认情况下是在容器被加载的时候就会初始化 多例是在每次获取Bean对象的时候初始化 代码验证: @Component public class UserEnti...

六个面试题层层剖析——LongAddr原子类原理探究

并发编程面试题 (1)LongAddr的结构是怎样的? (2)当前线程应该访问Cell数组里面的哪一个Cell元素? (3)如何初始化Cell数组? (4)Cell数组如何扩容? (5)线程访问分配的Cell元素有冲...

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

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

JDK
05/21 16:00
69
比LongAddr功能更强大的LongAccumulator原子类原理探究

面试题 (1)LongAccumulator与LongAddr类的结构 (2)LongAddr与LongAccumulator类有什么区别? (3)LongAddr与LongAccumulator类相同点? (1)LongAccumulator与LongAddr类的结构 (2)L...

Java并发编程笔记——J.U.C之executors框架:executors框架设计理念

一、executors框架简介 juc-executors框架是整个J.U.C包中类/接口关系最复杂的框架,真正理解executors框架的前提是理清楚各个模块之间的关系,高屋建瓴,从整体到局部才能透彻理解其中各个模...

两个Integer的引用对象传递给一个swap方法的内部进行交换,返回后,两个引用的值是否会发生变化

示例一: /** * 大厂面试题(微博、百度、腾讯): * 两个Integer的引用对象传递给一个swap方法的内部进行交换,返回后,两个引用的值是否会发生变化 */ public class Test001 { public sta...

08/17 14:23
18
史上最通俗易懂的Mybatis源码分析之执行流程总结

一:Mybatis源码分析流程 public static void main(String[] args) { try { // 基本mybatis环境 // 1.定义mybatis_config文件地址 String resources = "mybatis_config.xml"......

Spring5.0源码深度解析之SpringBean循环依赖问题解决方案

Spring循环依赖 什么是Spring的循环依赖?循环依赖会存在哪些问题? 示例:AService依赖BService; BService依赖AService @Service public class AService { // @Autowired public BService b...

Spring5.0源码深度解析之理解Configuration注解

Spring5.0之:@Configuration的使用 @Configuration用于定义配置类,可替换XML配置文件,被注解的类内部包含有一个或者多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationCo...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部