Spring MVC工作原理

spring 

Spring MVC工作原理

搞懂多线程(十)之AQS


搞懂多线程(十)之AQS 一、概念 AbstractQueuedSynchronizer是一个抽象类,缩写AQS:是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的CLH(FIFO)队列的变种来完成资源获取线程的排队工作,将每条将要去抢占资源的线程封装成一个Node节点

JVM之对象内存布局

JVM 

JVM之对象内存布局 一、整体说明 二、名词说明 1、对象头 在64位系统中,Mark Word占了8个字节,类型指针占了8个字节(未开启指针压缩),一共是16个字节。 下图为开启了指针压缩(JVM默认开启)的Object对象的内存占用情况(value值注意大小端问题,byte倒着读,bit正着读)

java基本数据类型


java基本数据类型 整数类型 补充:计算机存储单位 字节(Byte):是计算机用于计量存储容量的基本单位,一个字节等于8 bit。 位(bit):是数据存储的最小单位。二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8 bit 就称为一个字节(Byte)。 转换关系:

搞懂多线程(九)之ThreadLocal


一、概述 ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。 解决的是在当前线程中,有属于自己的变量,可以存储数据,例如可以使用ThreadLocal存储当前登录用户的信

搞懂多线程(八)之原子操作类


搞懂多线程(八)之原子操作类 一、概述 二、基本类型原子类 1、AtomicInteger 概念 可以原子方式更新的int值 构造方法

搞懂多线程(七)之CAS


搞懂多线程(七)之CAS 一、概念 CAS(compare and swap):中文翻译成比较并交换,实现并发算法时常用到的一种技术。 它包含三个操作数:内存位置、预期原值及更新值。 执行CAS操作的时候,将内存位置的值与预期原值比较: 如果相匹配,那么处理器会自动将该位置值更新为新值 如果不匹配,

搞懂多线程(六)之volatile关键字


搞懂多线程(六)之volatile关键字 一、特性 1.保证可见性 对一个被volatile关键字修改的变量 写操作的话,这个变量的最新值会立即刷新回到主内存中 读操作的话,总是能够读取到这个变量的最新值,也就是这个变量最后被修改的值 当某个线程收到通知,去读取volatile修饰的变量的值的时候,

搞懂多线程(五)之线程中断、等待、唤醒


搞懂多线程(五)之线程中断、等待、唤醒 一、线程中断 方式一:volatile关键字 通过volatile关键字的可见性修饰一个标识,要停止的线程监听该标识 方式二:AtomicBoolean原子类 通过AtomicBoolean原子布尔类,修饰一个标识,要停止的线程监听该标识 方式三:interr

搞懂多线程(四)之《锁》


搞懂多线程(四)之《锁》 一、乐观锁和悲观锁 乐观锁:认为自己在使用数据时不会有别的线程修改数据或资源,所以不会添加锁。 在Java中是通过使用无锁编程来实现,只是在更新数据的时候去判断,之前有没有别的线程更新了这个数据。 如果这个数据没有被更新,当前线程将自己修改的数据成功写入 如果这个数据已经被