
java源码
文章平均质量分 91
你家宝宝
自2018年接触到Java,至今。
展开
-
Java实现一个延时队列
业务中经常会出现各种涉及到定时,延迟执行的需求任务。有一种队列专门处理这种情况。那就是延时队列。原创 2024-11-06 17:08:36 · 1499 阅读 · 0 评论 -
Json结构解析&比较
本次练习,主要是针对于两个Json的结构差异。多用于测试场景,比如一个很大的Json报文,需要和现有的Json报文对比,看看哪些字段没传递。亦或是新旧应用交替,使用Java应用代替其他应用,对比原先和现在的报文结构等。实现了通过javaBean的Class,解析获取一个包含所有字段的完整Json结构。实现了两个Json的比较,并记录差异节点路径;输出比较的日志。原创 2024-07-22 19:51:18 · 3490 阅读 · 0 评论 -
Tomcat线程池原理(下篇:工作原理)
Tomcat 线程池,是依据 JUC 中的线程池重新自定义实现的。其执行线程的代码逻辑,和JUC 中是相同的。主要区别在于,Tomcat中对 阻塞队列进行了改造。本文主要研究 Tomcat 的线程池是如何执行线程的,即线程池的工作原理。Tomcat线程池原理(上篇:初始化原理)当前线程数小于corePoolSize,则去创建工作线程;当前线程数大于corePoolSize,但小于maximumPoolSize,则去创建工作线程;原创 2024-02-21 19:42:00 · 1879 阅读 · 0 评论 -
Tomcat线程池原理(上篇:初始化原理)
在Java Web的开发过程中,Tomcat常用的web容器。SpringBoot之前,我们用的是单独的 Tomcat,SpringBoot时代,嵌入了Tomcat。在Jdk中,JUC内有线程框架,以及可以自定义参数配置的 TreadPoolExecutor。Tomcat内也实现了自己的线程池。所谓线程池,是被用来处理传入的 HTTP 请求的。当客户端发送请求时,Tomcat 会从线程池中获取一个可用的线程来处理该请求。处理完请求后,线程将返回线程池,并在下一个请求到来时再次被重用。原创 2024-02-21 19:40:10 · 2442 阅读 · 0 评论 -
SpringMVC原理(设计原理+启动原理+工作原理)
java8创建项目,使用阿里的源:https://start.aliyun.com创建前,请先设置好自己的maven环境,java版本。保持网络正常。选择spring-web的2.7.6 版本:使用阿里的源创建好项目后,会自动生成的有控制器Controller,启动类,以及一个页面。如此,准备工作就做好了。谈起SpringMvc,最先想起来的俩注解应该是Controller和。而关于启动项目时,框架对这俩注解的处理,基本都体现在其中。原创 2024-02-07 15:06:59 · 1596 阅读 · 0 评论 -
SpringCloud系列文章目录(总纲篇)
SpringCloud系列文章,有些文章上下文存在联系。并且,它们数量巨多,有涉及原理的,有涉及实战的。本文存在的目的是为了整理一篇大纲一样的东西,后续也会先更新大纲,随后按照大纲更新文章。原创 2023-11-24 10:33:05 · 935 阅读 · 0 评论 -
深入理解Java中的Lock和AQS
提起Java中的锁,一般我们最快的反应是。但是在Java1.5之后,Doug Lea 大姥设计并实现的 JUC 中,提供了更加丰富的API操作。其中Lock接口及其相关实现尤为经典。今天我们来一起学习这 JUC 中的优秀设计思想。与有锁不同,Lock接口及其实现是由Java代码实现的。其底层代码实现,基于抽象队列同步器()以及volatile关键字、CAS机制。以下内容分析,代码参考于Java11。因为Lock本身是一个接口,所以我们在用的时候,基本都是找它的实现。原创 2023-06-25 17:48:31 · 662 阅读 · 0 评论 -
深入理解Java中的synchronized
Java 中有这样一个关键字,它挑起了Java锁的半边天。甚至于在一些Java面试中,也会经常被提出来讨论。它就是synchronized,今天我们就一起来看看它在Java锁中起到了什么样的作用把!原创 2023-06-23 15:46:19 · 738 阅读 · 0 评论 -
Spring事务(注解 @Transactional )失效的12种场景
在某些业务场景下,如果一个请求中,需要同时写入多张表的数据或者执行多条sql。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到spring事务。,就能轻松搞定事务,一直用一直爽啊!!在使用注解声明事务时,有时我们想自定义回滚的异常,spring也是支持的。可以通过设置参数,来完成这个功能。} }如果在执行上面这段代码,保存和更新数据时,程序报错了,抛了等异常。而是我们自定义的异常,报错的异常不属于,所以事务也不会回滚。转载 2023-02-15 19:20:16 · 1812 阅读 · 1 评论 -
Spring事务和Transactional 注解原理(源码分析)
一般我们在SpringBoot项目中使用事务时,会用到注解。分两步操作,在 public 修饰的方法上增加注解,以及在启动类或自己的配置类上增加注解。这样就能愉快的使用注解了。本次我们主要看看Spring框架中,是如何通过代理模式以及这俩注解来实现事务的提交、回滚等操作的。原创 2023-02-14 23:10:37 · 896 阅读 · 0 评论 -
ThreadLocal原理、内存泄漏的验证
本文主要探讨ThreadLocal的原理以及内存泄漏的规避。Java 在多线程中,想要隔离数据,比如数据库对应的连接对象,在多次请求中,如何保证线程安全,并能保证事务的提交、回滚,我们可以使用ThreadLocal原创 2023-02-08 23:30:05 · 502 阅读 · 1 评论