自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 MybatisPlus自动生成代码

【代码】MybatisPlus自动生成代码。

2025-01-06 11:00:00 157

原创 Arthas使用

官网中的是需要联网的,如果网络允许,则可以直接根据官网的快速开始执行命令。

2024-12-27 11:00:44 567

原创 PostgreSQL使用explain

通过使用和命令,用户可以获得更详细的查询执行计划信息,从而更好地理解查询的性能瓶颈并进行优化。这些命令在分析复杂查询和优化数据库性能时非常有用。

2024-12-20 14:54:35 1303

原创 Linux监控java进程内存与CPU使用情况

根据测试情况来看,VmRSS 不等于 堆内存大小。个人猜测RSS值可能还包含了元空间等,但是通过开启jmx监控java进程的非堆内存占用情况,与VmRSS值还是差距悬殊。具体包含哪些值可参考“为什么Java进程使用的内存(RSS)比Heap Size大”根据参考博文来看,VmRSS值与top命令返回的RES值是一致的(执行top命令后,按s键)。但是我们公司设备上top命令没有返回RES值,返回的是RSS值,实际测试时发现RSS值与VmRSS值不完全一致,但是也差不多。top命令返回的%CPU值。

2024-12-20 14:52:06 620

原创 ThreadLocal理解

个人理解:以Thread的角度来看,使用了一个map用来存储这个线程中的对象,key为ThreadLocal对象,value为实际想存储的对象。也就是说,一个线程可以存多个对象,通过不同的ThreadLocal对象进行区分实际存储的对象。以ThreadLocal的角度来看,ThreadLocal变量本身不存数据,只是提供了get(), set()方法去操作实际的数据。

2024-08-29 21:55:51 853

原创 操作文件流时,异步流程删除文件成功问题

1、依然是未想到使用linux命令去查看,个人的排查到使用了缓存,仅根据NativeBuffer还不能确定是将缓存存在哪一块空间了;通过df -h可以得出在磁盘空间上;通过得出文件虽然被删除了,但其实是空间还未释放。2、在linux设备上使用测试下载文件时,删除文件,结果删除成功了,但是本地windows上测试时,delete方法会返回false,删除失败,可能是系统不同导致的?

2024-08-08 14:08:31 464

原创 Java8函数式编程阅读

附上原文档。

2024-08-03 15:13:08 1067

原创 并发下载导致设备重启排查记录

1、对linux的命令不熟悉,当从逻辑上确定了项目不会持续吃内存后,没有想到去查看到底是什么服务吃内存。当找到是nginx吃内存后,也没有想到去使用工具定位内存的具体情况(后来有了解到hcache工具,但是并没有进行安装)2、对nginx的配置不熟悉。,发现现实结果与理论中的结果不一致,内存还是持续上升。由于之前没有测试过这几个参数的使用,并不确定是配置配错了还是没生效。3、对报错没有认真分析,java有关数据库的报错,没有及时分析报错内容,有一定程度上误导了解决问题的方向。

2024-08-02 16:03:34 926

原创 ScheduledThreadPoolExecutor代码阅读

定时任务中的定时是通过take队列中任务时,根据delay进行awaitNanos(delay)控制的,通过leader控制每次只能有一个线程进行awaitNanos,其他线程执行wait,当awaitNanos结束后,会执行signal,释放wait进程。队列使用的是内部类类型的一个队列,内部通过数组存任务,size存任务数量,数组内部使用推排序来实现下一次take时,取的是时间最近的任务。

2024-07-12 16:42:28 927

原创 ThreadPoolExecutor代码阅读理解

假设在运行状态下,步骤1,由于workercount >= corePoolSize导致addworker失败,进入步骤2, 如果加入队列成功,则正常状态下,下面的if 与 elif 均不满足条件,所以此处就是仅将任务加入阻塞队列,假设步骤2中加入队列失败,即有限阻塞队列满了,则会执行步骤3,此处就再次尝试addWorker,此处是否添加成功的关键是workercount与maximumPoolSize比较,若小于maximumPoolSize,则会添加一个worker,反之返回false。

2024-07-06 10:30:47 1027

原创 ReentrantLock与ReentrantReadWriteLock代码阅读

根据上述介绍,如果是公平锁,则判断是否有线程已经在等待了,若有返回true,若是非公平锁,则判断等待的队列中是否在以独占的形式等待,若是则返回true。从代码中可以看出,获取独占锁时,会判断当前线程是否是占有独占锁的那个线程,如果是,则更新 state (AQS中的属性),所以此操作保证了锁的可重入。从此看出,如果已经有线程获取了独占锁,目前又有线程来获取共享锁,如果这两个线程不一致,则会获取锁失败,即同一线程,可以先获取独占锁,可重入共享锁。所以,如果由线程正在独占模式下等待,则不支持你直接获取共享锁。

2024-06-27 16:27:11 983

原创 AQS代码理解

上述是最简单的流程,假设第二个if条件为true,for循环中处理的事情为:从tail往前找,直至到node,将这个过程中找到的最后一个满足等待状态

2024-06-25 17:02:24 987 1

原创 LinkedHashMap

LinkedHashMap中accessOrder

2023-10-12 15:28:37 89

转载 logback的Appenders

logback 将写入日志事件的任务委托给一个名为 appender 的组件。Appender 必须实现接口。

2023-08-25 11:38:28 463 1

转载 Logback的架构与配置

logback 的架构与配置

2023-08-10 17:04:24 607 1

原创 MySQL是怎样运行的(五)——InnoDB数据页结构

InnoDB数据页的结构(从《MySQL是怎样运行的》中摘取)

2023-08-09 15:10:01 369 1

原创 docker,docker-compose使用记录

docker-compose使用

2023-07-27 17:47:46 379 1

原创 MySQL是怎样运行的(四)

InnoDB记录存储结构

2023-07-03 16:03:34 160 1

原创 MySQL是怎样运行的(三)

mysql字符集和比较规则

2023-06-20 17:59:51 3221

原创 Druid连接池的connectionErrorRetryAttempts、 timeBetweenConnectErrorMillis、breakAfterAcquireFailure参数使用

Druid连接池的connectionErrorRetryAttempts、 timeBetweenConnectErrorMillis、breakAfterAcquireFailure参数使用

2023-05-08 19:48:55 2583

原创 shutdown()、shutdownNow()的含义与区别

shutdownNow,不能保证当前正在运行的任务被停止;shutdown会将当前运行的任务与等待队列中的任务均执行结束,而shutdownNow会抛弃等待队列中的任务;两者均不接收新的任务。

2023-04-13 15:48:17 330

原创 springSecurity注入springSecurityFilterChain的过程

​ 被注入的springSecurityFilterChain对象由webSecurity.build();生成。​ build时,先读取自定义的配置,进行init,configure,performBuild,在performBuild时,会加载Springboot封装好的配置,然后遍历,分别执行init,configure,performBuild方法,最后将加载的filters生成chain,然后再进行代理。最后注入。

2023-03-15 18:01:18 648

原创 springboot配置文件

application.yml配置文件写什么?自动配置注解读取的配置存在spring.factories文件中配置文件与上述的spring.factories文件有什么联系?在该文件中的所有文件都有@Configuration这个注解,表明是一个配置类例如HttpEncodingAutoConfiguration.java这个类,有注解@Configuration@EnableConfigurationProperties(HttpProperties.class)//该类见下@Conditi

2021-10-11 16:00:00 146

原创 云E办(SpringBoot+Vue)

[]

2021-10-09 22:25:50 2203

原创 SpringSecurity

文章目录1、SpringSecurity简介1.1 安全框架概述1.2、常用安全框架1、SpringSecurity简介1.1 安全框架概述什么是安全框架?解决系统安全问题的框架。如果没有安全框架,我们需要手动处理每个资源的访问控制,非常麻烦。使用安全框架,我们可以通过配置的方式实现对资源的访问控制。1.2、常用安全框架SpringSecurity:Spring家族的一员。是一个能够为基于Spring的企业系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文配

2021-10-09 22:24:51 15958

原创 连通网络的最少操作次数

已知有n个节点,和m条连接两个节点的线条。需要移动几条线使得所有的节点通过线条可以达到其他的节点?若给出的图是一个极大连通图,则不需要进行任何操作。反之,表示当前的图存在不止一个连通子图。如果有多余的线条,则可以将几个子图进行连接。需要移动的线条数则为连通子图 的个数-1。什么时候有多余的线条?对于一个带有n个节点的图,一个最简单的极大连通子图需要n-1条线即可完成,所以给的已知线条数<n-1,则不可能成为一个极大连通图。所以可以转化为求连通子图的个数。有两种方法:图的深度优先搜索遍

2021-01-24 23:08:55 4640

原创 HashCode

HashCode1.最底层的实现方法为:在Object .java中public native int hashCode();2.在HashMap.java中的hashcode方法:public final int hashCode() { return Objects.hashCode(key) ^ Objects.hashCode(value);}3.在Objects中的hashcode方法:public static int hashCode(Object o) {

2020-12-16 18:00:32 7969

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除