博客

java / 2022-08-22
0 1,490

一、公平锁/非公平锁公平锁在并发环境下,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入等待队列,然后按照FIFO的规则进行等待。非公平锁一上来就获取锁,如果失败,再采用公平锁的方式。二、可重入锁/递归锁这两个锁其实是一个锁的两种叫法,本

java / 2022-08-22
0 1,433

一、ArrayList集合1、现象 /** * 1、可能会抛出 * java.util.ConcurrentModificationException(并发修改异常) * 2、导致原因 * * 3、解决方案 * @param */

java / 2022-08-22
0 1,417

volatile是java虚拟机提供的一种轻量级的同步机制,它有三个重要的特性:保证可见性不保证原子性禁止指令重排要理解这三个特性,就需要对JMM(JAVA内存模型)有一定的了解才行。一、JMM(JAVA内存模型)JMM是 Java 虚拟机规范中所定义的一种内存模型,Java 内存模型是标准化的,屏

java / 2022-08-22
0 1,412

一、CAS是什么cas全称compare and swap,比较并交换,是一条CPU并发原语。解决多线程环境下使用锁导致上下文切换导致性能消耗的一种机制。它的功能是判断内存中某个地址的值是否是期望的值,如果是就修改为新的值,整个过程是原子的。这是一种非阻塞算法,线程在获取资源失败时,不需要挂起,因此

java / 2022-08-22
0 1,442

什么是AQSAQS全名:AbstractQueuedSynchronizer,是并发容器J.U.C(java.util.concurrent)下locks包内的一个类。它实现了一个FIFO(FirstIn、FirstOut先进先出)的队列。底层实现的数据结构是一个双向链表。这个双向链表是由线程封装成

2022-08-22
0 1,480

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" &quo

2022-08-22
0 1,460

1、缓存使用为了系统性能的提升,我们一般会将部分数据放入缓存中,加速访问。而db承担数据落盘工作。哪些数据适合放入缓存中:及时性、数据一致性要求不高的数据访问量大且更新频率不高的数据(读多写少)⚠️注意:在开发中,凡是放入缓存中的数据都应该指定过期时间。避免业务崩溃导致的数据永久不一致问题。2、本地

java / 2022-08-22
0 978

持续更新~~

2022-08-22
0 741

----------------- | ------ || 面向缓冲区(Buffer) | 面向流 || 非阻塞 | 阻塞 || 选择器 | |NIO三大核心缓冲区(Buffer)一个用于特定基本数据类型的容器,所有缓冲区都是

2022-08-22
0 583

一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、Loggers