JAVA
文章平均质量分 91
Kerwin_luo
Java小白,不断进阶
展开
-
JUC系列-AQS
AbstractQueuedSynchronizer抽象队列同步器,JUC的顶层框架类,内部基于FIFO(先进先出)的CLH队列。核心变量是代表状态的int变量state,子类通过改变state值来决定锁的获取或者释放。同步器同时支持共享锁(share mode)和排他锁(exclude mode),一般来说子类只支持其中一种,如此只需要实现对应模式的方法即可。ConditionObject是AQS中的内部类,提供了条件锁的同步实现,实现了Condition接口,可以在不满足某个条件的时候挂起线程等待原创 2022-03-05 17:14:04 · 247 阅读 · 0 评论 -
SpringMvc配置与默认Swagger的冲突
SpringMvc配置与默认Swagger的冲突问题背景项目使用了Swagger自动生成可视化文档,版本为2.9.2。正常情况下SpringBoot整合Swagger后默认就能访问文档页面。现在在项目中尝试配置SpringMvc拦截器,发现Swagger页面无法访问。问题复现在SpringBoot中引入Mvc配置,加入拦截器。有两种形式:1、@Configuration配置类继承WebMvcConfigurationSupport,该类是Mvc配置的主要类。如:@Configurationpu原创 2021-03-01 16:54:36 · 998 阅读 · 0 评论 -
JVM随笔
JVM随笔运行时数据区1、程序计数器:一块较小的内存空间,唯一一个不会OOM的区域。字节码解释器工作时通过改变该计数器的值来选取下一条需要执行的字节码指令,属于线程私有,如果执行的是Native方法,则计数器数值为空。2、Java虚拟机栈:线程私有,描述的是Java方法执行的内存模型。每个方法被执行的同时会创建一个栈帧,用于存储局部变量表、操作栈、动态链接和方法出口等信息。方法开始执行到结束...原创 2020-05-08 00:35:07 · 223 阅读 · 0 评论 -
Seata整合SpringCloud
Seata整合SpringCloud业务场景项目中业务系统与微服务之间需要同步更新数据库,遇到了分布式事务问题。在两种场景下会出现数据不一致:第一,当微服务方法成功执行,业务系统遭遇异常时,业务系统回滚,微服务无感知而提交事务;第二,即使整个请求流程中均无异常发生,遇到并发时,由于微服务和业务系统属于各自独立的事务,两边的提交顺序无法保证,也会出现数据不一致。基于以上业务场景,尝试引入阿里...原创 2020-03-02 16:10:52 · 4801 阅读 · 0 评论 -
TOMCAT架构浅析
TOMCAT架构浅析前言Tomcat是常用的Java Web服务器,HTTP请求在经过服务器之后,服务器会解析HTTP报文,将请求封装成Request对象,同时生成一个Response对象作为响应数据的载体。在平时的应用中,我们一般处理的是Request和Request对象,如何产生这两个对象对我们而言是透明的。本文旨在从整体上探究这一过程,浅析Tomcat架构与相关的技术细节。TOMCAT...原创 2019-12-06 20:24:32 · 187 阅读 · 0 评论 -
JUC系列1-基础知识
JUC系列-基础知识线程启动代码示例继承Thread类实现Runnable接口利用FutureTask线程常用方法线程通知与等待wait方法notify方法生产者与消费者代码示例如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰...原创 2019-08-27 15:14:16 · 1058 阅读 · 0 评论