自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Postman/Apipost中使用Post URL编码发送含换行符参数的问题分析

摘要:Postman/Apipost在使用x-www-form-urlencoded发送含换行符参数时存在失效问题,原因是工具未能正确处理换行符的URL编码转换(\n应转为%0A)。Apipost会自动替换为空格,Postman可能保留原格式但不正确编码。该问题目前尚未提供有效解决方案,需开发者注意特殊字符的手动编码处理。

2025-07-18 15:46:10 41

原创 【构建Tomcat版本检查工具:自动检测并提醒版本更新】

摘要(150字): 本文介绍了一个自动化Tomcat版本检查工具的Java实现方案,可自动检测本地Tomcat版本并与官网最新稳定版对比。工具核心功能包括:通过catalina.home获取本地版本,使用Jsoup解析Apache官网获取最新版本,智能版本比对及提醒机制(单版本最多提醒3次)。实现细节涵盖命令行版本获取、官网页面解析、基于Properties的配置管理以及可扩展的通知模块。该方案减少了人工检查成本,避免通知泛滥,轻量易集成,并提供了扩展为邮件通知、批量检查等功能的建议。典型的运行输出示例展示

2025-07-11 17:44:36 304

原创 数据库性能优化指南:解决ORDER BY导致的查询性能问题( SQL Server )

本文针对300万行数据表查询中ORDER BY导致的性能问题进行了深入分析,发现关键在于排序操作导致全表扫描。提出三种优化方案:1)创建覆盖索引减少I/O;2)使用CTE分阶段处理+随机采样技术;3)定期数据归档。其中CTE+覆盖索引组合方案可将查询时间从30秒降至0.03秒,提升1000倍。文章还提供了索引维护策略、查询设计原则和系统监控配置等最佳实践,建议实施分阶段处理、随机采样和定期维护的组合方案,同时考虑长期的分区表和归档策略。

2025-07-09 17:02:29 931

原创 微信环境外打开小程序方案

微信小程序支持在微信环境外打开,提供明文和加密URL Scheme两种方案。明文Scheme适用于固定页面跳转,含appid、path等参数;加密Scheme通过API生成,适合敏感数据或时效性场景,支持设置过期时间。最佳实践包括跨平台兼容处理、参数规范和安全措施(如启用Scheme校验)。关键操作建议使用加密Scheme,注意iOS需配置通用链接,Android需添加intent-filter。两种方案可根据场景组合使用,实现安全可控的外部跳转。

2025-07-04 11:24:26 552

原创 现代计算机持久化存储设备原理

现代计算机持久化存储设备的核心原理是通过非易失性介质实现断电后数据保存。主要设备包括:1)固态硬盘(SSD),采用浮栅晶体管存储电子,通过控制器实现地址映射、损耗均衡和垃圾回收等关键功能,但存在写放大和擦写次数限制;2)传统硬盘(HDD),利用磁记录原理存储数据,依赖机械结构导致较高延迟。SSD通过闪存芯片和智能控制器的协同工作,实现了高速随机访问,克服了闪存物理限制。理解这些原理有助于优化存储性能、选择合适设备并延长使用寿命。

2025-07-02 10:33:54 722

原创 k8s从入门到实践

k8s从入门到实践介绍Kubernetes(简称k8s)和Docker Swarm是两个流行的容器编排工具,它们都可以帮助用户管理和部署分布式应用,尤其是基于容器的应用。以下是两者的主要特点和对比:Kubernetes (k8s):开源项目:由Google发起,现在由Cloud Native Computing Foundation (CNCF)管理。成熟度与社区支持:拥有庞大的开发者社区和生态系统,高度活跃且持续更新迭代,支持众多云服务提供商以及企业内部部署。功能丰富:提供了丰富的特性集,包括

2024-01-25 14:40:19 1279 1

原创 [350]两个数组的交集 II.java

给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现。如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]如果 nums1 的大小比 nums2 小,哪种方法更优?你将如何优化你的算法?

2023-07-20 13:04:01 203

原创 @Transaction和自定义切面的执行顺序思考

spring若无特殊情况均采用的是基于jdk和cglib的动态代理,此时关于@Transactional的优先级为最低优先级,最晚开启事务和最早提交事务,最贴近代理方法执行如果项目引入了AspectJ的静态代理,则@Transactional执行的优先级低于基于jdk和cglib的动态代理,需要注意的是需要关注此时自己编写的Aspect的配置是否@Transactional的Aspect配置执行的优先级顺序,关于AspectJ的静态代理顺序不在本文讨论范围,有兴趣可一起讨论。

2023-07-18 10:52:40 1972

原创 Tomcat服务停滞问题分析:内存泄漏导致GC抖动及线程阻塞(内存泄漏导致的渐进式服务退化)

因渐进式内存泄漏导致的GC抖动型JVM假死

2023-07-17 16:00:21 800

原创 SpringAOP的实现和执行原理

查看advisors是如何拿到的,其顺序又是什么?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nrnxPotN-1689226439387)(https://gitee.com/gityyh/notebook3/blob/master/spring/assets/20230706_105109_image.png)]

2023-07-13 13:41:05 541

原创 诡异的索引失效(关于sqlserver varchar 类型的字段导致索引失效的原因排查 GPT排查工具)

2023-03-24 15:29:00 353

原创 运输层-UDP概述

文章目录前言一、特点二、首部结构前言用户数据报协议UDP只在IP的数据报服务之上增加了很少一点的功能,这就是复用和分用的功能以及差错检测的功能。一、特点UDP是无连接的,即发送数据之前不需要建立连接(当然,发送数据结束时也没有连接可释放),因此减少了开销和发送数据之前的时延。UDP使用了最大努力交付,但是不保证可靠交付。UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这就是说,应

2021-03-30 22:58:09 231

原创 计算机网络——运输层

121212

2021-03-29 23:01:33 269

原创 二叉树的层序遍历

二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层序遍历结果:[[3],[9,20],[15,7]]作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnldjj/来源:力扣(LeetCode)

2021-03-28 22:31:53 300

原创 TOMCAT9配置Https访问

1.在conf/server.xml中配置<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="D:\tomcat\apach...

2020-08-21 13:04:51 458

原创 Caused by: java.security.NoSuchAlgorithmException: SunTlsRsaPremasterSecret KeyGenerator not availab

错误截图:发生条件:电脑做了虚拟化内存设置之后重启了电脑,原先可以启动的项目启动时报错解决办法:1.重新设置eclipse的JRE2.设置eclipse中的tomcat中的jre依赖3.重新启动正常

2020-06-17 19:08:42 872

原创 li标签和a标签的点击时间如何同时触发(涉及JS的默认事件,冒泡,捕获)

参考作者献上:http://caibaojian.com/javascript-stoppropagation-preventdefault.html页面中的所有#menus1 li 都绑定了click()事件,需求是当点击<li>菜单的时候触发<li>以及<li>下的<a>标签的点击时间,<li>click是给<li>加class标记被选择,<a>标签click是打开页面,遇到问题是,<a>标签的事件触

2020-06-12 20:54:04 804

原创 POSTMAN请求参数后台request.getParameter()获取不到参数问题

复制粘贴其他请求中的userName和accessToken时发现请求到后台一致无参数,删除后重新录入后就好了

2020-05-20 15:02:11 3813

原创 Java对象的内存布局最佳解析

https://blog.csdn.net/John8169/article/details/83054325

2020-03-02 22:06:55 165

原创 HashMap扩容死循环分析

2020-02-25 21:37:32 226

原创 垃圾收集算法

1.标记清除算法:标记出来需要清楚的对象,然后进行清楚,并造成空间的不连续2.复制算法:将内存分为2个区,每次只使用一个区域,把S1区域的存活对象,复制到S2中,如此反复进行,有点可以保证空间的连续,但是浪费50%的空间3.标记整理算法:可以理解为标记清除-整理算法,避免了标记清除算法带来的空间的不连续,缺点是比较耗时3.分代收集算法:现在商业虚拟机采用的方法,将内存分为新生代和老年代...

2020-02-22 22:27:30 165

原创 Java中的引用类型

参考链接

2020-02-22 21:52:52 222

原创 java.lang.OutOfMemoryError总结(待续。。。)

总结目的通过代码验证java虚拟机运行时区域存储的内容; 工作中如果遇到内存溢出问题,能够根据反馈的异常信息快速判断哪个内存区域发生溢出Java堆内存溢出报错信息:java.lang.OutOfMemoryError:Java heap space原因可能是内存泄漏或者创建太多对象导致内存不足Java虚拟机栈和本地方法区栈报错信息:1.stackOverFlowErro...

2020-02-22 21:36:22 212

原创 JAVA虚拟机发生GC的过程简要分析(待续...)

了解JVM发生GC的原因以及过程,才可以更加针对的对虚拟机进行内存分配,从而减少full gc,避免造成系统卡顿甚至系统崩溃FULLGC带来的危害(STW)在发生FULL GC的时候,意味着JVM会安全的暂停所有正在执行的线程(Stop The World),来回收内存空间,在这个时间内,所有除了回收垃圾的线程外,其他有关JAVA的程序,代码都会静止,反映到系统上,就会出现系统响应大幅度...

2020-02-20 22:10:26 413 1

原创 GC:可达性分析算法

可达性分析算法之前有一个叫引用计数法,原理非常简单如果一个对象没有任何引用与之关联,基本上对象不可能在其他地方用的上,这个对象就成为可被回收的对象,但是这个方法虽然非常简单,而且高效,但是它无法解决循环调用的问题,如下图所示:public class Main { public static void main(String[] args) { Demo d1 = n...

2020-02-20 21:27:55 1987

原创 JVM虚拟机运行时数据区(内存模型)

JDK8 之后的 JVM 内存布局参考链接

2020-02-18 22:06:20 226

原创 InnoDB非主键索引结构叶子节点为什么存储的是主键值而不是像MyiSAM索引存储数据地址?

1.保持一致性,当数据库表进行DML操作时,同一行记录的页地址会发生改变,因非主键索引保存的是主键的值,无需进行更改;2.节省存储空间,后续补充,不太清楚原因。参考链接:https://blog.csdn.net/a1_HelloWord/article/details/104341349...

2020-02-16 22:23:00 4123 3

原创 Mysql联合索引的数据结构(B+Tree)

B+Tree中的data存储last_name,first_name,dob三个字段信息,类似于一个主键索引的中的一个字段,将三个字段组合在一起,比较的时候和单独的一个字段的区别在于,先比较last_name,然后比较first_name,最后再比较dob,执行这样的规则。综上所述:这样就比较好理解Mysql索引的最左前缀原理...

2020-02-16 21:40:00 2236 2

原创 为什么说InnoDB必须要有主键并且推荐使用自增整型主键呢?

1.InnoDB存储引擎的数据结构必须需要一个主键才可以组织起来,如果用户使用InnoDB存储引擎建立表的时候,没有指定主键,则Mysql会自动的帮你找到一个合适的唯一索引作为主键,若找不到符合条件唯一索引条件的字段时,会生成类似于ROW_ID的虚拟列充当该InnoDB表的主键;2.整型的存储比字段类型要小,而且应为是InnoDB存储引擎使用的是B+Tree数据结构,在进行查询数据是需要对每个元素进行比较,而整型的对比效率是高于其他数据结构的,字符串等。...

2020-02-16 13:25:20 4598 7

原创 MyISAM引擎和InnoDB引擎的区别

1.从Mysql内部的储存文件的格式不一样;MyISAM是3个文件xxx.frm,xxx.MYI,xxx.MYD,而InnoDB是2个文件,分别是xxx.frm,xxx.IBD2.索引的组织结构不一致;MyISAM的索引结构中,叶节点保存的是数据的地址,而InnoDb的索引结构中叶节点保存了所有的数据结构后续补充......

2020-02-16 13:11:58 139

原创 MySql索引之InnoDB引擎(聚集索引)

Mysql内部文件以InnoDB作为存储引擎建立表test_innodbCREATE TABLE `test_innodb` ( `ID` int(11) DEFAULT NULL, `NAME` varchar(99),) ENGINE=InnoDB DEFAULT CHARSET=utf8;我们会发现D:\MySQL\mysql-5.7.13-winx64\data...

2020-02-16 13:06:55 213

原创 MySql索引之Myisam引擎(非聚集索引)

Mysql内部文件若以这个Myisam引擎创建表test_my时,详见代码:CREATE TABLE `test_my` ( `id` int(11) NOT NULL AUTO_INCREMENT, `mame` varchar(100), PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;我们会发现D:\M...

2020-02-16 12:53:40 749

原创 B+Tree作为Mysql索引的优势?

B+Tree的性质:非叶子节点只存储键值信息。(可以存放更多的索引) 所有叶子节点之间都有一个链指针。(提高区域访问效率) 数据记录都存放在叶子节点中。(查找数据更加快速)采用B+Tree的结构时,Mysql的InnoDB存储引擎查找到一行记录最多只需要3次磁盘IO操作(10亿条数据量)InnoDB存储引擎中页的大小为16KB,一般表的主键类型为INT(占用4个字节)或BIGINT(...

2020-02-16 11:44:55 487

原创 B+Tree

B+Tree简介B+Tree是B-Tree的变种,B+Tree与B-Tree有几点不同:非叶子结点只存储键值信息 所有的叶子结点之间都有一个链指针 数据记录都存储在叶子节点中B+Tree的创建过程B+Tree在创建时也B-Tree创建过程不同之处在于裂变的过程时B+Tree找到中间结点作为父结点时,会冗余一个结点。...

2020-02-16 11:31:18 223

原创 InnoDB存储引擎中有页(Page)的概念

系统从磁盘读取数据到内存时是以磁盘块(block)为基本单位的,位于同一个磁盘块中的数据会被一次性读取出来,而不是需要什么取什么。InnoDB存储引擎中有页(Page)的概念,页是其磁盘管理的最小单位。InnoDB存储引擎中默认每个页的大小为16KB,可通过参数innodb_page_size将页的大小设置为4K、8K、16K,在MySQL中可通过如下命令查看页的大小:mysql>...

2020-02-16 10:59:28 1179 1

原创 B-Tree作为索引有哪些优势?

首先通过对B-Tree的结构可知,B-Tree作为索引有下列的优势:叶结点具有相同的深度,叶结点的指针为空,相比红黑树或者平衡二叉树平衡性更好 一个结点中可以存储多个关键字元素,第一点在相同的索引元素下笔红黑树或者平衡二叉树的深度更小,减少了对磁盘的IO操作次数,第二点每次读取到多个数据后,在内存中的运算速度更加的迅那么B-Tree中每个结点的数据是否时越多越好呢?答:否,1.因为索引...

2020-02-16 00:26:32 1030

原创 B-Tree以及创建过程演示

当元素<4且>0时,直接按照顺序插入元素即可,插入元素结束,当元素=4时,将插入的元素按照顺序放入结点中,然后从中选择一个数作为当前结点的父结点(选择结点的规则是 (n+1)/2 取整),本例为(5+1)/2=3即选取第三个元素,放入父结点中,若没有父结点则创建一个父结点,则插入结束;首先定义一个5阶的B树(平衡5路查找树),现在我们要把4、9、32、12、24、30、51、29、69、31、90、70、75、79、、80、85、91、 这些数字构建出一个5阶树出来;8.插入70,75,79。

2020-02-15 23:01:15 4020 3

原创 动态数据结构演示网站

链接地址:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

2020-02-15 22:19:37 990

原创 哈希索引为什么不可以作为Mysql的索引?

1.哈希索引也不支持部分索引列匹配查找,如果在数据(a,b)上面建立索引,在查询数据a的时候数据不能使用索引;2.哈希索引只支持等值比较查询,所有的范围查找均不支持;3.哈希冲突如果比较严重的话,对数据库索引的维护压力比较大,如果在重复值比较多的列上建立索引,当对某条数据进行删除的时候,需要遍历对应哈希值的链表中每一行。...

2020-02-13 22:26:33 719

原创 红黑树为啥不可以作为Mysql的索引

红黑树基本都是存储在内存中才会使用的数据结构。在大规模数据存储的时候,红黑树往往出现由于树的深度过大而造成磁盘IO读写过于频繁,进而导致效率低下的情况。为什么会出现这样的情况,我们知道要获取磁盘上数据,必须先通过磁盘移动臂移动到数据所在的柱面,然后找到指定盘面,接着旋转盘面找到数据所在的磁道,最后对数据进行读写。磁盘IO代价主要花费在查找所需的柱面上,树的深度过大会造成磁盘IO频繁读写。根...

2020-02-13 18:33:18 966

【打开小程序H5示例.html】

【打开小程序H5示例.html】

2025-07-04

空空如也

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

TA关注的人

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