- 博客(183)
- 资源 (7)
- 收藏
- 关注
原创 链表反转算法
**后继节点 *//** 节点数据域 */int data;} LinkNode;/**** 添加链表元素*//*** 查询链表*//***递归法 链表反转*//*** 迭代法 链表反转*/
2024-08-17 23:51:26 231
原创 快慢指针数组去重
快慢指针是原地算法的又一经典实现方式,比如数组去重,就可以引入快慢指针,一趟循环即将数组中的重复元素过滤掉。其核心思想是通过两个相向运动的指针,通过控制其运动快慢,快指针作为探测指针,提前预判重复元素,然后覆盖慢指针所指向的重复元素。快慢指针移动的原则,快指针再循环过程中不断前进,不受额外条件制约,慢指针在快慢指针不相等的情况下前进。数组总共有5个非重复的元素。
2024-08-14 15:23:13 166
原创 SpEL结合AOP示例
*** spEL* @return*/@Aspect@Component=null){LOGGER.info("TestAopAspect-->doAfter-------后置织入");/// 通过spel表达式获取到形参的中name的值/// 将name追加到返回的listtry {if(result!/**解析spel*//// 方法参数名称=null,"参数列表不能为空");///方法参数值i++) {
2024-08-10 17:40:07 378
原创 原地算法求两数之和
给定一个自增序列数组,总数组中找出两个元素等于目标值,并输出元素的下标。这个题右很多解法,通过hash可以将时间复杂度降到O(n),但是需要额外开辟空间,那么原地算法非常适合解决此题,及保障时间复杂度,亦可保障空间复杂度的最优。
2024-08-07 15:11:39 165
原创 原地算法实现数组反转
**左指针*/int left;/**右指针*/int right;} Tptr;/*** 数组反转*//*** 展示数组*/
2024-08-07 14:33:27 358
原创 Xtrabackup备份mysql数据库
XtraBackup是一个用于MySQL和Percona Server的开源热备份工具,它由Percona开发。XtraBackup支持两种备份类型:完整备份(full backup)和增量备份(incremental backup)。
2024-07-27 22:40:47 521
原创 sql手动自增id
有时候在运维处理数据的时候,需要给某张表插入新的记录,那么需要知道最新插入数据的id,并在最新id的基础上加上id增长步长获取新的id,这个过程往往需要现将max出来加1,再手动补充到sql语句中,很麻烦,而且数据多的时候容易出错。有什么方式可以解决这弊端,其实方法很简单,只需引入一个临时变量即可轻松解决。
2024-07-24 15:59:19 1034
原创 快速排序算法
快速排序又是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法。即在一个无序的序列中选取一个任意的基准元素pivot,利用pivot将待排序的序列分成两部分,前面部分元素均小于或等于基准元素,后面部分均大于或等于基准元素,然后采用递归的方法分别对前后两部分重复上述操作,直到将无序序列排列成有序序列。排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下复杂度为Ο(n2)。1、快速排序算法定义。
2024-07-24 11:16:42 129
原创 冒泡排序算法
*** 冒泡排序* @param data 待排序数组* @param len 数组长度*/int i = 0;int j = 0;for (i;i++)for (j;j++)/// 将小于当前元素的下一个元素进行交换printf("排序后-----------------\n");i = 0;for (i;i < len;i++)
2024-07-24 11:07:33 156
原创 插入排序算法
插入排序算法的大概实现思路是这样的,从数组第2个元素开始抽取元素,把它与左边第一个元素比较,如果左边第一个元素比它大,则继续与左边第二个元素比较下去,直到遇到不比它大的元素,然后插到这个元素的右边,迭代处理整个数组 ,选择适当的位置插入。插入排序算的时间复杂度O(n2) ,空间复杂度,O(1) 稳定排序。下面使用代码做简单演示。
2024-07-17 17:27:18 162
原创 选择排序算法
选择排序大体思路是找到数组中最小的那个元素,其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。选择排序的算法效率不是很高,时间复杂度O(n2) ,空间复杂度:O(1)。
2024-07-17 15:52:30 300
原创 java线程锁synchronized的几种情况
类方法做是在类加载过程中已经打上标记了,类信息存储在jvm的常量池中,而对象的方法锁是在运行动态确定的,因此类方法锁和不同的对象成员方法锁之间不存在竞争关系。在并发情景,能用无锁的数据块就不要用锁,能锁区块,就不要锁整个方法体,能锁对象就不要用类锁。
2024-07-11 12:04:35 556
原创 设计模式-装饰器
装饰器模式是一种结构型,它允许在运行时扩展一个对象的功能,而不需要改变其现有结构。这种模式的核心思想是通过创建一个装饰器来动态地增强或修改原有对象的行为。装饰器模式是继承的一个补充,提供了比继承更加灵活的方式来扩展对象的行为。
2024-07-04 16:08:07 300
原创 css grid实现九宫格布局
常见的九宫格布局可以使用flex布局实现,但是flex布局有个致命的缺陷,比如3行3列的布局,当第不足3个元素的时候,元素依然是平局平铺的,这样就不满足九宫格的效果,这种情况,使用grid布局可以轻松搞定这个问题。
2024-06-22 23:09:06 580
原创 Sping事件发布机制
对应于观察者模式中的主题,事件源发生某事件是特定事件监听器被触发的原因。Spring的ApplicationEvent是事件类,事件源soruce作为ApplicationEvent的一个属性维护,有用户自定义传入。事件发布器可以认为是事件监听的容器,对外提供发布事监听器的接口,通过publishEvent方法维护事件和事件监听器之间的映射关系,并在事件发生时负责通知事件监听器。Spring事件发布机制是一种非常重要的通信方式,使用观察者设计模式,可以用于状态通知、业务解耦、异步处理的业务场景。
2024-06-20 17:44:59 232
原创 ASM字节码插桩技术初探
ASM(全称:ASMifier Class Visitor)是一个java字节码操纵框架,ASM 提供了许多 API 和工具,可以直接以二进制形式读取和修改类文件、动态生成类或者增强既有类的功能。
2024-06-14 16:58:44 1146
原创 graalvm编译springboot3 native应用
云原生时代容器先行,为了更好的拥抱云原生,spring boot3之后,推出了graalvm编译boot项目,利用jvm的AOT( Ahead Of Time )运行前编译技术,可以将javay源码直接构建成机器码二进制的文件,无需jdk静态编译为class字节码,运行时jre解释执行,这样就无需依赖java环境运行,部署到容器中可以直接启动运行。
2024-06-12 23:54:04 1042 1
原创 k8s集群修改apiserver的ip地址
有时候由于服务器的调整,导致ip的的变化,k8s集群的api大管家的ip变动会导致kubectl的接口都无法正常使用,这是只需要将k8s主节点配置文件的ip替换即可。例如无需要将原来的192.168.146.202的ip替换成192.168.85.202,执行一下操作即可。重启apiserver。
2024-06-02 16:26:13 1040
原创 java函数式编程
Lambda 表达式是 JDK8以后 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。 java提供两类常用的函数,Consumer消费函数,Supplier供给函数。使@FunctionalInterface注解定义函数接口。 在项目开发中,有时候流程控制if语句比较多,可以使用函数编程有效的消除if嵌套
2024-05-08 22:22:46 7097
原创 Spring Boot设置io临时目录
在部署springboot项目,使用MultipartFile上传文件会出现以下异常出现这种情况的原因是由于在部署项目的时候没有指定应用的临时io目录,spring会直接使用操作系统的临时目录,而操作系统的临目录会在一定的周期类回收,导致隔一段时间后上传文件会出现上述问题。
2024-03-26 11:29:31 1208
原创 Nginx启停操作
上图表示nginx进程启动成功,进程号为30034为主进程(负责链接操作),剩下的四个是工作进程(负责io操作),这里很直观的体现出nginx的epoll是进程级别的。
2024-03-25 17:55:41 512
原创 msyq类型转换造成索引失效
今天碰到一个慢sql的问题,sql明明按照最前缀的原则写的,但是索引就是不生效,最终排查发现是因为索引字段发生类型转换造成的。
2024-03-21 14:35:28 361
原创 Java stream使用TreeSet去重
在使用stream处理集合的时候,有些场景需要使用指定的字段去重,去重的方法有很多,今天介绍一种,通过TreeSet去重。
2024-03-20 00:27:01 432
原创 Win11安装Plsql140报错2503
出现上述问题,主要是因为msi包安装的权限问题,使用管理员权限安装即解决。其实所有.msi二进制文件包安装出现2503、2502的报错,都可以使管理员身份执行。msiexec /package xxx.mis 的方式解决。
2024-03-15 17:04:11 564
原创 JAVA使用JNA调用.so(.dll)动态库
有写开发场景需要调用第三方c/c++的动态库,jdk本身有jni可以实现调用,但是jni的使用非常麻烦,这里提供另一个神器,那就是JNA。
2024-03-11 15:37:50 8623 2
原创 avue-crud中el-select的使用
Avue的v2版本是一个基于element-ui低代码前端框架,Avue的v3是一个基于element-plus低代码前端框架,它使用 JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率。
2024-02-05 10:07:44 985 1
原创 k8s存储之PV、PVC
在k8s集群中,资源存储会散落到各个工作节点上,这样对用资源调用很不方便,那么k8s是如何实现存储资源共享的呢,本文浅尝辄止的探讨一下,k8s是通过pv、pvc实现的。
2024-02-01 16:54:47 8192
商米消费机uniapp客显原生插件
2024-03-04
android平台ffmpeg动态库
2018-11-14
安装lxml模块的wheel文件
2018-03-19
ssm整合实例工程
2018-02-28
ssm框架搭建所需要的全部jar包
2018-02-28
tesseract-ocr-setup-3.02.02.exe
2017-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人