- 博客(61)
- 资源 (125)
- 问答 (1)
- 收藏
- 关注
原创 【JAVA】JEXL (Java Expression Language) 的语法参考文档
var fun = x -> x * x // 单参数简写类型系统:支持强类型和动态类型安全性:提供安全导航和空值处理扩展性:支持运算符重载和自定义函数Java集成:无缝与Java对象和方法交互函数式特性:支持lambda表达式和闭包集合操作:丰富的集合字面量和操作符错误处理:完整的异常处理机制元编程:通过注解和编译指示支持元编程JEXL提供了一个强大而灵活的表达语言,既保持了与Java的良好集成,又提供了脚本语言的简洁性和动态特性。
2025-11-03 08:49:52
458
原创 【Python】注册系统信号处理函数优雅地停止服务
当程序运行时:用户按下Ctrl+C(触发SIGINT),或外部执行kill <pid>(触发SIGTERMPython 拦截信号;调用;执行关闭线程、socket、数据库连接;保存状态;然后再退出,达到“优雅退出”的效果。✅这几行代码的作用是:当程序被中断(Ctrl+C)或被系统要求终止(kill)时,自动调用,实现优雅关闭而不是直接强制退出。logging.info("服务启动")try:time.sleep(5) # 每5秒执行一次任务。
2025-10-29 08:56:14
324
原创 【数据结构与算法】基于STRtree 的矩形空间索引
STRtree 的原理可以概括为:通过这一特定算法,将空间对象进行分层、分组,并用最小边界矩形来概括每一组对象的空间范围,从而在查询时利用层次结构进行快速剪枝,极大地减少了需要精确比较的对象数量。它是一种为读操作优化的、非常适合静态数据的高效空间索引。
2025-10-28 10:56:15
658
原创 【机器人】autossh实现反向SSH隧道
问题:现有两台服务器,一台为ubuntu操作系统(ROS环境),IP:114.215.200.174,另外一台是CentOS(中转服务器), IP:47.111.169.128, 我现在想通过centos上的2222端口映射到ubuntu上的22端口,从而且实现反向隧道的功能。
2025-10-27 15:11:20
412
原创 【机器人】RViz中LaserScan的参数信息说明
在中可视化LaserScan(通常来自)消息时,左侧属性面板中会列出许多参数,这些属性控制激光雷达点云的显示方式和外观。
2025-10-25 08:40:53
1154
原创 【C++ Primer】第十八章:用于大型程序的工具
用于大型程序的工具专注于 C++ 在大型项目开发中的关键特性,这些工具对于构建可维护、可扩展的复杂系统至关重要。
2025-10-23 08:57:38
196
原创 【ROS Noetic】第四节:windows上安装VSCode连接WSL
在Windows上安装 VS Code安装插件WSL在WSL Ubuntu中执行code .→ 从此,所有代码在 Ubuntu 编译、运行,但在 Windows 界面下编写。
2025-10-23 08:54:53
1224
原创 【C++ Primer】第十七章:标准库特殊设施
标准库特殊设施涵盖了 C++ 标准库中一些非常实用但相对独立的组件,这些工具能极大提升编程效率和代码质量。使用 C++ 标准库中的高级工具解决复杂问题,大大提升编程效率!
2025-10-22 21:58:45
329
原创 【C++ Primer】第十五章:面向对象程序设计
面向对象程序设计是 C++ 的核心章节,涵盖了继承、多态、动态绑定等关键概念。这是理解 C++ 面向对象编程精髓的关键。
2025-10-21 08:12:38
210
原创 【C++ Primer】第十三章:拷贝控制
"拷贝控制"是 C++ 面向对象编程的核心章节,如何控制对象的拷贝、移动、赋值和销毁行为是写出高质量 C++ 类的关键。如果一个类需要自定义其中任何一个拷贝控制成员,那么它通常需要自定义所有五个。
2025-10-20 08:53:45
182
原创 【C++ Primer】第十四章:操作重载与类型转换
"操作重载与类型转换"是 C++ 中非常强大和灵活的特性,它能够定义类类型对象的行为,使它们用起来像内置类型一样自然。
2025-10-20 08:51:32
130
原创 【ROS Noetic】第三节:创建Nodelet
Nodelet是一种机制,用于将通常作为独立ROS节点运行的算法或功能模块加载到一个共享的进程(称为Nodelet管理器)中。当数据在同一进程内的Nodelet之间传递时,它们可以直接通过内存传递,而无需经过ROS的TCP/IP套接字(如通常ROS节点之间使用时的情况)。这是一个特殊的ROS节点,它负责托管和管理其他Nodelet的生命周期。所有的Nodelet都运行在它所处的进程中。
2025-10-19 09:30:24
955
原创 【ROS Noetic】第二节:实现消息发布与订阅功能
环境已经搭好(搭建环境参考第一节),接下来我们就可以。分五步走,一步一步来,不要跳过细节。
2025-10-18 08:23:46
535
原创 【C++ Primer】第十一章:关联容器
cout << "=== 关联容器特性 ===" << endl;// 有序容器 (基于红黑树)// 无序容器 (基于哈希表)cout << "有序容器特点:" << endl;cout << "- 按键排序" << endl;cout << "- 支持范围查询" << endl;cout << "- 插入/删除/查找: O(log n)" << endl;cout << "\n无序容器特点:" << endl;cout << "- 不排序,基于哈希" << endl;
2025-10-17 08:53:23
411
原创 【机器人】激光雷达(LiDAR)核心原理:定位、测距与抗干扰
是一种通过发射激光束并测量返回时间来获取周围环境三维空间信息的传感技术。测距(Range Sensing):测量目标的距离。定位(Localization):确定雷达自身在空间中的位置与姿态。抗干扰(Anti-interference):在复杂环境下维持精度与可靠性。核心要素简述技术关键测距计算激光往返时间TOF / FMCW定位确定雷达自身位置与姿态抗干扰保持信号准确与稳定光学滤波 + 信号调制 + 算法校正。
2025-10-16 15:03:35
1242
原创 【C++ Primer】第十章:泛型算法
cout << "=== 泛型算法概述 ===" << endl;// 1. 只读算法// 查找算法if (it!cout << "找到5在位置: " << (it - vec.begin()) << endl;// 计数算法cout << "1出现的次数: " << count << endl;// 2. 写容器算法cout << "拷贝后的vector: ";// 3. 重排容器算法cout << "排序后: ";// 去除重复元素。
2025-10-16 08:46:44
421
原创 【C++ Primer】第九章:顺序容器
cout << "=== 顺序容器概述 ===" << endl;// 1. vector - 动态数组,快速随机访问,尾部插入删除高效// 2. list - 双向链表,任何位置插入删除高效,不支持随机访问// 3. deque - 双端队列,头尾插入删除高效,支持随机访问// 4. array - 固定大小数组,大小编译时确定// 5. forward_list - 单向链表(C++11),内存开销更小。
2025-10-16 08:21:14
308
原创 【C++ Primer】第八章:IO库
/ 标准输入输出流cout << "=== 基本IO操作 ===" << endl;// 输出到控制台" << endl;cout << "整数: " << 42 << endl;cout << "浮点数: " << 3.14159 << endl;cout << "布尔值: " << true << endl;// 从控制台输入int age;cout << "请输入你的姓名: ";cout << "请输入你的年龄: ";cin >> age;
2025-10-15 10:57:07
141
原创 【C++ Primer】第七章:类
/ 定义一个简单的Book类private:public:// 构造函数// 成员函数cout << "作者: " << author << endl;cout << "价格: ¥" << price << endl;cout << "页数: " << pages << "页" << endl;// 访问器函数(getters)// 修改器函数(setters)int main()// 创建Book对象// 使用成员函数。
2025-10-15 10:50:13
325
原创 【ROS Noetic】第一节:WSL 2 + Ubuntu 20.04 环境搭建
这是目前在windows上学习最稳定、最贴近官方的方式。让我们一步一步来搭建这个环境。
2025-10-14 09:48:19
666
原创 【C++ Primer】第六章:函数
/ 1. 函数声明(函数原型)// 2. 函数定义i <= n;++i) {cout << "消息: " << message << endl;// 3. 参数列表可以为空" << endl;int main()// 函数调用sayHello();printMessage("欢迎学习C++函数!");return 0;参数传递方式传值:创建副本,不影响原值传引用:操作原对象,避免拷贝传const引用:只读访问,高效安全返回类型选择值返回:返回副本。
2025-10-14 08:24:26
638
原创 【C++ Primer】第五章:语句
条件语句选择多个条件判断:使用基于单个表达式的多分支:使用switch循环语句选择知道循环次数:使用for不知道循环次数:使用while至少执行一次:使用do-while遍历容器:使用范围for跳转语句使用退出循环:使用break跳过当前迭代:使用continue错误处理:使用异常避免使用goto作用域规则在控制结构中定义的变量只在该结构内可见合理使用作用域可以避免命名冲突这一章的内容是编程逻辑的核心,熟练掌握各种控制结构对于编写复杂程序至关重要。多写代码实践,理解每种语句的适用场景!
2025-10-14 08:12:16
309
原创 【C++ Primer】第四章:表达式
运算符优先级:记住常见运算符的优先级,不确定时使用括号短路求值:逻辑运算符&&和||的短路特性递增递减:前置和后置的区别,避免在复杂表达式中混用类型转换:理解隐式转换规则,显式转换时优先使用条件运算符:简洁的条件表达式,但不要过度嵌套位运算符:用于底层编程和标志位操作这一章的内容是C++编程的基础,熟练掌握这些运算符和表达式对于编写高效、正确的代码至关重要。多写代码实践,理解每个运算符的行为!
2025-10-13 17:15:13
295
原创 【C++ Primer】第三章:字符串、向量与数组
include <string> // 必须包含string头文件int main()// 各种初始化方式string s1;// 默认初始化,空字符串// 拷贝初始化// 直接初始化// s4的内容是"ccccc"// s5是s2的副本return 0;#include <vector> // 必须包含vector头文件int main()// 各种初始化方式// 空vector,保存int// 空vector,保存string。
2025-10-13 17:06:47
229
原创 【C++ Primer】第二章:变量和基本类型
/ 声明(在头文件中常见)// 声明global_var,定义在其他文件// 定义(分配存储空间)// 定义global_varint main()// 定义并初始化变量// 列表初始化(C++11)// 列表初始化(C++11)// 直接初始化// 默认初始化// 空字符串// 未初始化!值不确定// 注意:局部内置类型变量不会自动初始化!// 危险!值不确定return 0;内置类型选择算术运算:用int或double明确知道不可能为负:用unsigned。
2025-10-11 14:28:28
182
原创 【C++】 解决CLion控制台中文输出乱码的问题
CLion 文件编码UTF-8C++ 源代码UTF-8(使用u8前缀更好)代码中控制运行终端/控制台编码。
2025-10-11 10:35:01
536
原创 【C++】const 与非 const 重载方法的代码复用
提取公共验证逻辑到私有方法提取公共业务逻辑到私有方法保持两个版本方法简洁,只包含必要的差异优先选择方法2和方法3,它们最安全且易维护。
2025-10-11 09:00:00
282
原创 【C++】const关键字不推荐的无效或冗余用法
const如果试图在某些宏定义中插入const,它可能不会按预期工作,导致代码难以理解或产生意外行为。const# define MY_TYPE const int // 使用时:MY_TYPE *ptr;// 实际上是 const int *ptr;int# define MY_TYPE const int // 使用时:MY_TYPE *ptr;// 实际上是 const int *ptr;宏只是文本替换,最好避免在宏中使用复杂的类型修饰符,以免混淆const修饰的是指针本身还是指向的内容。
2025-10-10 08:29:51
287
原创 【C++】const关键字的详细用法
/ 必须在定义时初始化// 错误!未初始化private:public:radius = r;// const 对象// ✓ 只能调用 const 成员函数// 错误!不能调用非 const 成员函数const提高代码安全性:防止意外修改表达设计意图:明确哪些数据或操作不应该改变支持优化:编译器可以进行更好的优化接口设计:提供 const 和非 const 版本的重载核心原则:尽可能多地使用const,只有在确实需要修改时才不使用。
2025-10-10 08:22:04
208
原创 【C++】const 与 constexpr 的区别
特性constconstexpr初始化时机运行时或编译时必须是编译时求值时机运行时编译时函数应用成员函数不修改状态函数可在编译时求值数组大小不一定能用作数组大小可以用作数组大小模板参数不能用作模板参数可以用作模板参数调试运行时可以调试编译时计算,无运行时开销。
2025-10-09 15:36:31
330
原创 【C++】预处理指令#define不再被推荐的原因
/ 替代 #define CONSTANT valueC++ 摒弃#define类型安全const和constexpr有类型信息作用域控制:不会污染全局命名空间调试友好:有符号信息,可以设置断点行为明确:避免宏展开的意外副作用现代特性:模板、内联函数、constexpr 等提供更好的替代方案在现代 C++ 开发中,应该尽量避免使用#define,除非在头文件保护、条件编译等必要场景。
2025-10-09 15:17:20
376
原创 【C++】 **栈对象 vs 堆对象** 的核心区别
使用栈对象 (✅ 对象较小且生命周期明确✅ 需要自动资源管理(RAII)✅ 性能关键代码✅ 函数局部临时对象使用堆对象 (✅ 对象很大或大小不确定✅ 需要多态(继承体系)✅ 生命周期需要跨作用域✅ 需要共享所有权✅ 运行时决定对象类型或数量优先使用栈对象,需要动态分配时使用智能指针,尽量避免原始new/delete。这样既能享受自动内存管理的便利,又能保持代码的安全性和性能!
2025-09-30 15:07:37
455
原创 【C++】vcpkg与CMake的关系
特定架构和配置 vcpkg install fmt:x64-windows-staticvcpkg 和 CMake 的关系:分工明确:vcpkg管"有什么库",CMake管"怎么用库"紧密集成:通过工具链文件无缝协作现代C++标配:两者结合解决了C++长期以来的依赖管理痛点提升开发体验:从"依赖地狱"到一键解决所有依赖一句话总结:vcpkg是C++的"包管理器",CMake是C++的"构建系统",它们共同构成了现代C++项目的基石。
2025-09-29 09:09:46
327
原创 【C++】预编译库模式与头文件模式的区别
fmt::fmt:更好的编译性能,适合生产环境和大型项目:更简单的依赖管理,适合小型项目和快速原型推荐:对于大多数生产项目,使用fmt::fmt(预编译库模式),除非你有明确的理由需要使用头文件模式。
2025-09-29 08:21:12
315
原创 Python人脸识别库dlib安装
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考如果支持使用pip install dlib会报各种错误,这种通过源码安装的方式主要难点在于需要安装依赖环境,特别是VS好几个G,下载都需要较长时间。
2025-02-18 11:26:42
865
原创 JNA(十八)FAQ
网上资料显示:把D:\CLion 2023.2.2\bin\mingw\bin目录下的libstdc+±6.dll复制到C:/Windows/System32下,我这边虽然依赖不报错了,但是jna还是会报上述错误。(参考:https://www.cnblogs.com/nayitian/p/15747551.html。文件),会有很多乱码,不要头疼,接下来只需要在第二段中找到PE两个字母,在其后的不远出会出现d?建议:千万不要把需要测试的dll放到system32下,否则会发生很多意想不到的问题。
2023-11-03 22:46:39
193
JQuery及JQuery UI 例子
2013-06-01
apn client(android push notification 4.2.2)
2013-07-07
Notepad++ 6.5.5
2014-03-25
jasperreports.jar
2013-06-03
quartz 1.8 & 2.2
2014-06-11
Spark 2.6.3
2013-08-29
Win64 OpenSSL v3.5.3
2025-09-22
wsl安装包2.6.1.0版本备用安装包(wsl.2.6.1.0.x64.msi)
2025-09-19
Java平台嵌入式浏览器JxBrowser开发依赖8.12.0-jar(离线版)
2025-09-19
libCDynamicDemo.dll
2023-10-31
vaadin-all-7.5.9.zip
2015-11-28
apache-ant-1.9.6-bin.zip(有英文chm文档)
2015-10-21
bootstrap docs
2017-08-02
node-v4.4.1-x86.msi
2016-03-27
ztree 3.5.16
2014-09-22
MFC中,怎么监听另一个应用中表格的数据
2017-05-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅