摘要: 目录 SpringBoot 中有一个 ControllerAdvice 的注解,使用该注解表示开启了全局异常的捕获,我们只需在自定义一个方法使用 ExceptionHandler 注解然后定义捕获异常的类型即可对这些捕获的异常进行统一的处理。 【示例】 封装一个返回体 这里,我们需要先定义一个全局异 阅读全文
posted @ 2023-10-19 17:34 LARRY1024 阅读(106) 评论(0) 推荐(0)
摘要: 目录依赖验证方式验证 Controller 的输入验证请求体:RequestBody验证请求参数:Path Variables 和 Request Parameters校验 ServiceValidator 编程方式手动进行参数验证自定义 Validator校验字段范围验证组 在前端对数据进行校验的 阅读全文
posted @ 2023-10-19 17:12 LARRY1024 阅读(488) 评论(0) 推荐(0)
摘要: 目录Spring 事务编程式事务管理声明式事务管理事务管理模型事务管理器:TransactionManager声明式事务接口:PlatformTransactionManager事务定义事务的传播机制PROPAGATION_REQUIREDPROPAGATION_REQUIRES_NEWPROPAG 阅读全文
posted @ 2023-10-19 15:36 LARRY1024 阅读(188) 评论(0) 推荐(0)
摘要: 目录AOP概念Spring AOP 和 AspectJAspectJ织入方式Spring AOP织入方式对比小结应用基于注解配置 AOP启用 @AspectJ 支持声明一个切面切入点支持的指示符声明一个目标对象 AOP AOP(Aspect Oriented Programming,面向切面编程) 阅读全文
posted @ 2023-10-19 10:16 LARRY1024 阅读(165) 评论(0) 推荐(0)
摘要: 目录代理模式代理模式分类静态代理实现方式动态代理JDK 动态代理实现方式CGLIB 动态代理实现方式cglib 与 JDK 动态代理的区别三种代理方式对比 代理模式 代理模式(Proxy Pattern)是一种结构型设计模式,它给某一个对象提供一个代理,并由代理对象控制原对象的引用。代理对象在客户端 阅读全文
posted @ 2023-10-18 11:55 LARRY1024 阅读(85) 评论(0) 推荐(0)
摘要: 目录JVM 内存结构运行时数据区程序计数器Java 虚拟机栈栈的作用栈的特点栈帧栈运行原理栈帧的结构局部变量表操作数栈动态链接方法返回地址本地方法栈(Native Method Stack)堆内存JIT逃逸分析字符串常量池本地内存直接内存元空间运行时常量池 内存是非常重要的系统资源,是硬盘和 CPU 阅读全文
posted @ 2023-10-17 19:22 LARRY1024 阅读(517) 评论(0) 推荐(0)
摘要: 目录类加载过程LoadingVerificationPreparationResolutionInitialization类加载器双亲委派模型 类加载过程 Java 的类加载过程可以分为 5 个阶段:载入、验证、准备、解析和初始化。 这 5 个阶段一般是顺序发生的,但在动态绑定的情况下,解析阶段发生 阅读全文
posted @ 2023-10-17 19:14 LARRY1024 阅读(57) 评论(0) 推荐(0)
摘要: 目录Condition可中断锁和不可中断锁有什么区别?原理源码分析awaitaddConditionWaiterunlinkCancelledWaiterssignaltransferForSignal总结await 与 signalLock 和 Condition 的应用附录链表中头节点的作用不带 阅读全文
posted @ 2023-10-17 17:33 LARRY1024 阅读(180) 评论(0) 推荐(0)
摘要: 目录ThreadLocalThreadLocal 实现线程隔离的原理ThreadLocal 内存泄漏场景 ThreadLocal ThreadLocal是一个将在多线程中为每一个线程创建单独的变量副本的类; 当使用ThreadLocal来维护变量时, ThreadLocal会为每个线程创建单独的变量 阅读全文
posted @ 2023-10-17 11:37 LARRY1024 阅读(60) 评论(0) 推荐(0)
摘要: 目录ReentrantLockReentrantLock 特性概览源码分析抽象同步器:Sync非公平同步器:NonfairSync公平同步器:FairSync小结 ReentrantLock ReentrantLock 是一个可重入的互斥锁,又被称为“独占锁”。 ReentrantLock 类实现了 阅读全文
posted @ 2023-10-17 11:36 LARRY1024 阅读(58) 评论(0) 推荐(0)
摘要: synchronized 关键字 synchronized 是 Java 中的一个关键字,翻译成中文是同步的意思,主要解决的是多个线程之间访问资源的同步性,可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 使用方法 修饰实例方法 给当前对象实例加锁,进入同步代码前要获得 当前对象实例的 阅读全文
posted @ 2023-10-17 11:33 LARRY1024 阅读(48) 评论(0) 推荐(0)
摘要: 目录简介方法介绍阻塞和唤醒示例示例1示例2示例3阻塞对象 blocker 的作用和显式锁、隐式锁等待唤醒的区别 简介 java.util.concurrent.locks.LockSupport 是一个工具类,提供了基本的线程阻塞和唤醒功能,它是创建锁和其他同步组件的基础工具,内部是基于 sun.m 阅读全文
posted @ 2023-10-17 10:12 LARRY1024 阅读(116) 评论(0) 推荐(0)
摘要: 目录前言CLH 锁AQS 框架AQS 核心思想AQS 的同步状态AQS 对资源的共享方式AQS 的重要方法AQS 的数据结构NodeConditionObjectConditionConditionObjectAQS 源码分析核心方法获取资源:acquireaddWaiteracquireQueue 阅读全文
posted @ 2023-10-16 20:07 LARRY1024 阅读(127) 评论(0) 推荐(0)
摘要: 目录线程池线程池创建方式通过 ThreadPoolExecutor 创建如何给线程池命名ThreadFactoryBuilder实现一个 ThreadFactory通过 JUC 工具类创建线程池的核心设计与实现ThreadPoolExecutor 的总体设计ThreadPoolExecutor 的继 阅读全文
posted @ 2023-10-12 10:54 LARRY1024 阅读(156) 评论(0) 推荐(0)
摘要: 目录锁的分类乐观锁和悲观锁悲观锁乐观锁乐观锁的实现版本号机制CAS 算法乐观锁的问题ABA 问题循环时间长开销大只能保证一个共享变量的原子操作对比自旋锁和适应性自旋锁无锁、偏向锁、轻量级锁、重量级锁可重入锁和非可重入锁公平锁和非公平锁读写锁和排它锁JUC 包下的锁抽象类 AQS/AQLS/AOS接口 阅读全文
posted @ 2023-10-11 17:34 LARRY1024 阅读(101) 评论(0) 推荐(0)
摘要: 目录Java 集合List, Set, Queue, Map 的区别集合框架底层数据结构CollectionListSetQueueMap如何选用集合?ListArrayList 和 Array(数组)的区别转换ArrayList 转换为数组数组转换为 ArrayListSetComparable 阅读全文
posted @ 2023-10-10 17:45 LARRY1024 阅读(149) 评论(0) 推荐(0)
摘要: 目录Java 数据类型Java 基本数据类型基本类型和包装类型的区别包装类型的缓存机制自动装箱与拆箱浮点数运存在算精度丢失风险如何解决浮点数运算的精度丢失问题?超过 long 整型的数据应该如何表示?变量成员变量与局部变量静态变量字符型常量和字符串常量面向对象基础深拷贝和浅拷贝的区别浅拷贝深拷贝总结 阅读全文
posted @ 2023-10-08 17:06 LARRY1024 阅读(80) 评论(0) 推荐(0)
摘要: 目录并发容器类并发 MapConcurrentMapConcurrentHashMapConcurrentSkipListMap并发 Queue并发 Set阻塞队列BlockingQueue 的操作方法BlockingQueue 的实现类ArrayBlockingQueueLinkedBlockin 阅读全文
posted @ 2023-10-08 14:27 LARRY1024 阅读(97) 评论(0) 推荐(0)
摘要: 目录并发编程模型的两个关键问题Java 内存模型共享变量Java 内存模型的抽象结构volatile 关键字如何保证变量的可见性?如何禁止指令重排序?JMM 与 Java 运行时内存区域的区别区别联系总结JMM 与重排序为什么指令重排序可以提高性能?重排序有哪几种?JMM 与顺序一致性模型什么是顺序 阅读全文
posted @ 2023-09-20 11:59 LARRY1024 阅读(71) 评论(0) 推荐(0)
摘要: 目录TCP 报文格式TCP 报文格式简介TCP首部格式TCP 标志位TCP 序列号、确认号序列号 Sequence Number确认号 Acknowledge Number三次握手三次握手过程为什么需要三次握手,而不是两次或四次?为什么不是两次握手?为什么不是四次握手?SYN 攻击原理检测防范四次挥 阅读全文
posted @ 2023-09-18 17:36 LARRY1024 阅读(319) 评论(0) 推荐(0)