随笔分类 -  Java

记录学习Java的一些笔记
摘要:前置知识 JDK 1.5 新增了 Future 接口,用于描述异步计算的接口。其主功能如下所示: // 尝试停止当前任务的执行,如果任务已完成、已被取消或由于某些其他原因无法取消,则此尝试将失败。 boolean cancel(boolean mayInterruptIfRunning); // 如 阅读全文
posted @ 2022-09-03 10:44 李小龙他哥 阅读(180) 评论(0) 推荐(0)
摘要:简介 MyBatis 包含一个非常强大的查询缓存特性,它可以非 常方便地配置和定制。缓存可以极大的提升查询效率。 MyBatis 系统中默认定义了两级缓存,也就是一级缓存和二级缓存: 默认情况下,只有一级缓存(SqlSession 级别的缓存,也称为本地缓存)开启。 二级缓存需要手动开启和配置,它是 阅读全文
posted @ 2022-04-04 22:44 李小龙他哥 阅读(71) 评论(0) 推荐(0)
摘要:AQS 基础篇 AQS 源码解读之加锁篇 在 AQS 源码解读之加锁中,线程 A 占用着锁没有释放。然后线程 B 和线程 C 都在 CHL 队列中排队,也就是执行了 parkAndCheckInterrupt 方法将自己挂起了。现在 CHL 队列的状态: 线程 A unlock() 方法解析 Ree 阅读全文
posted @ 2022-03-20 16:48 李小龙他哥 阅读(184) 评论(0) 推荐(1)
摘要:AQS 基础篇 AQS 源码解读之解锁篇 以 ReentrantLock 创建的非公平锁为基础,进行 AQS 全流程的分析。 分析 demo 一共有 A、B、C 三个线程。 public class AQSDemo { // 带入一个银行办理业务的案例 public static void main 阅读全文
posted @ 2022-03-20 13:44 李小龙他哥 阅读(315) 评论(0) 推荐(0)
摘要:AQS 源码解读之加锁篇 AQS 源码解读之解锁篇 简称:抽象的队列同步器。基于设计模式之模板设计模式。 state 变量 + CLH 变种的双端队列 简介 是用来构建锁或者其它同步器组件的重量级基础框架及整个 JUC 体系的基石,通过内置的 FIFO 队列来完成资源获取线程的排队工作,并通过一个 阅读全文
posted @ 2022-03-19 22:28 李小龙他哥 阅读(130) 评论(0) 推荐(0)
摘要:JVM 的参数类型 标配参数 -version -herp java -showversion X参数 Xint:解释执行 Xcomp:第一次使用就编译成本地代码 Xmixed:混合模式 XX参数 Boolean 类型 公式 -XX:+或者-某个属性 +表示开启 -表示关闭 案例 是否打印 GC 收 阅读全文
posted @ 2022-03-17 22:26 李小龙他哥 阅读(195) 评论(0) 推荐(0)
摘要:简介 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其它线程执行完毕,再从队列中取出任务来执行。 主要特点:==线程复用;控制最大并发数;管理线程;== 降低资源消耗,通过重复利用己创建的线程降 阅读全文
posted @ 2022-03-16 23:00 李小龙他哥 阅读(53) 评论(0) 推荐(0)
摘要:公平锁和非公平锁 简介 **公平锁:**是指多个线程按照申请锁的顺序来获取锁,类似排队打饭吗,先来后到。 **非公平锁:**是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取锁在高并发的情况下,有可能会造成优先级反转或者饥饿现象。 并发包中 ReentrantL 阅读全文
posted @ 2022-03-15 10:04 李小龙他哥 阅读(68) 评论(0) 推荐(0)
摘要:简介 CAS 的全称为 Compare-And-Swap,他是一条 CPU 并发源语。 他的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。 CAS 并发原语体现在 JAVA 语言中就是 sun.misc.Unsafe 类中的各个方法。调用 UnSafe 类中的 CA 阅读全文
posted @ 2022-03-13 22:58 李小龙他哥 阅读(114) 评论(0) 推荐(0)
摘要:简介 volatile 是一种同步机制,比 synchronized 或 Lock 相关类更轻量,因此使用 volatile 并不会发生上下文切换等开销很大的行为。 如果一个变量被修饰成 volatile,那么 JVM 就知道了这个变量可能会被并发修改。 因为其开销小,所以对应的功能也小,volat 阅读全文
posted @ 2022-03-13 20:56 李小龙他哥 阅读(144) 评论(0) 推荐(0)
摘要:死锁 死锁的定义 发生在并发中 当两个线程(或更多)线程(或线程)相互持有对方所需要的资源,又不主动释放,导致所有线程都无法继续执行,是程序陷入无尽的阻塞,这就是死锁。 如果多个线程之间的依赖关系是环形,存在环形的锁的依赖关系,那么也可能会发生死锁。 死锁的影响 死锁的影响在不同的系统中是不一样的, 阅读全文
posted @ 2022-03-10 22:41 李小龙他哥 阅读(323) 评论(0) 推荐(0)
摘要:简介 单例模式可以节省内存和计算,保证结果的正确. 方便管理 适用场景 无状态的工具类 如日志工具类 全局信息类 如统计网站的访问次数 优缺点: 优点: 在内存中只有一个对象,节省内存空间; 避免频繁的创建销毁对象,可以提高性能; 避免对共享资源的多重占用,简化访问; 为整个系统提供一个全局访问点。 阅读全文
posted @ 2022-03-10 22:41 李小龙他哥 阅读(3149) 评论(0) 推荐(1)