- 博客(25)
- 收藏
- 关注
原创 阿里云服务器启用swap分区
阿里云2C4G服务器,跑几个Java应用,一旦内存占用比较高,会经常死机,了解到可能是Swap相关的问题,配置开启Swap后,还真没死过机了。这里将开启方法记录一下。
2025-03-21 11:05:26
103
原创 修复宝塔面板9.0.0无法自动续签Let‘sEncrypt证书
用的脚本和自带的不一样,先按帖子内容加个定时任务试试,结果也是找不到即将到期的证书,于是对/www/server/panel/class/acme_v2.py脚本进行调试。服务器安装的宝塔9.0.0,证书到期后无法自动续签,看了下日志,都是没有找到30天内到期的证书,所以没有续签操作,但是明明有还剩几天就到期的了,猜测可能是脚本有问题。这句判断处,对证书内容进行循环比对,但是没有找到内容相同的,打开对应目录,发现证书文件一个结尾有空白行,一个没有,所以导致内容比对不匹配,改成如下代码。
2025-03-14 09:41:43
318
1
原创 Electron NSIS Windows安装后执行Bat脚本
使用Electron开发的软件,想在安装完成后执行自己写的bat脚本,设置一些路径或安装服务等操作,这里记录一下实现方法。
2024-12-11 07:00:00
417
原创 GDAL 转换GeoTiff坐标系
使用ODM合成出来的TIFF,坐标系是UTM投影,需要的事EPSG:4326坐标系,翻了翻ODM的文档,英文水平比较捉急,没找到设置输出坐标系的地方,查了查资料,可以用gdal来做坐标系转换,也能实现需求。
2024-12-10 07:00:00
237
原创 OpenDroneMap(ODM)使用
最近公司接到一个项目,要求把无人机航拍到的图片拼成一个地图底图,了解了一下,有个开源软件OpenDroneMap可以实现这个需求,在其基础上略作封装完成了这个项目。
2024-12-09 07:00:00
2077
7
原创 NRF52840 Dongle跑通Mesh Light例程记录
开发板:淘宝买的52840模块,应该是兼容官方的52840 dongle板子。使用NRF Connect SDK开发,需要准备一个调试器,官方VsCodeIDE扩展只支持JLink调试器,其他的调试器可以用OpenOCD。本人是个嵌入式小白,一共折腾了4天才跑起来,中间走了很多弯路,成功后才发现原来这么容易,都不需要改动代码,还是要好好看文档啊。。。
2023-03-14 19:42:56
1330
原创 SpringCloudGateway路由定义存至Mysql数据库
SpringCloudGateway默认根据配置文件或代码在启动时路由定义存在内存中,如果要修改路由配置,需要改动配置文件或代码后重启网关,十分不灵活。可以实现RouteDefinitionRepository接口,将路由配置保存至Mysql中。
2022-12-13 00:23:27
918
2
原创 SpringBoot Maven多模块项目配置文件加载
对于Maven多模块项目,想把SpringBoot的配置文件按模块拆分,各模块负责自己的配置,避免一个配置文件包含所有模块的配置。
2022-12-12 23:47:54
2893
1
原创 JDK源码阅读—AtomicInteger
AtomicInteger是JUC中提供了原子更新操作的一个Integer类,Java中i++(--)、++(--)i、i+=x、i-=x等都不是原子操作,多线程环境下需要加锁来保证数据的正确性,而AtomicInteger可以在不加锁的前提下确保上述操作的原子性,在高并发的场景下可以比加锁有更好的性能。
2021-04-18 18:04:04
169
原创 JDK源码阅读—TreeMap
TreeMap 底层基于红黑树实现,可保证在`log(n)`时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很高。TreeMap中元素按照键的大小进行排序,所以键需要实现Comparable接口或传入一个自定义的比较器。TreeMap非线程安全,多线程建议使用ConcurrentSkipListMap代替。
2021-04-11 20:27:47
202
1
原创 JDK源码阅读—PriorityQueue
PriorityQueue是一个优先队列的实现,每次出队都会弹出最小或最大的元素,其底层数据结构为二叉堆,使用数组存放二叉堆的元素。
2021-04-01 22:33:42
141
原创 JDK源码阅读—ArrayDeque
双端队列的实现一般有链表和循环数组两种,ArrayDeque就是使用循环数组实现的双端队列,其内部维护着一个数组对象,并且当数组空间不足时,会自动扩容,容量变为原来的2倍。
2021-03-30 21:30:00
206
原创 JDK源码阅读—IdentityHashMap
HashMap是一个散列表,储存的元素为键值对(key-value),允许空值和空键,非线程安全,不能确保内部元素的顺序。与其他Map不同,IdentityHashMap对键使用引用相等的比较(==)而不是equals,所以它可以存放多个内容相同的键,只要这些键的引用不相同。
2021-03-26 07:35:11
355
原创 JDK源码阅读—WeakHashMap
WeakHashMap是一个散列表,储存的元素为key-value的键值对,键和值允许为null。与其他Map不同的是,WeakHashMap储存的是key的弱引用,当key没有其他引用时,GC后key会被回收,WeakHashMap会将其对应的键值对从Map中删除,这个特性使得WeakHashMap比较适合做缓存。
2021-03-24 21:02:12
215
原创 JDK源码阅读—LinkedHashMap
LinkedHashMap是一个散列表,储存的元素为键值对(key-value),允许空值和空键,非线程安全,实际上它在HashMap的基础上添加了一个双向链表用于保存遍历顺序,所以LinkedHashMap是一个有序集合。
2021-03-21 17:48:43
253
原创 JDK源码阅读—HashMap
HashMap是一个散列表,储存的元素为键值对(key-value),允许空值和空键,非线程安全,不能确保内部元素的顺序。底层数据结构为数组+链表(红黑树)
2021-03-18 22:12:47
154
1
原创 JDK源码阅读—LinkedList
LinkedList是List接口的另一种实现,其底层数据结构为双向链表,列表头尾操作元素很快,查询因为需要对链表进行遍历,速度较慢。以下分析基于corretto-1.8.0_282版本。
2021-03-15 22:44:21
231
1
原创 JDK源码阅读—ArrayList
ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。以下分析基于corretto-1.8.0_282版本
2021-03-14 21:20:40
141
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人