- 博客(77)
- 收藏
- 关注

原创 2025最新JAVA面试八股文,万字长文!
反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意个对象,都能够调用它的任意一个方法。在java中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。I这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。应用场景有:要操作权限不够的类属性和方法时、实现自定义注解时、动态加载第三方jar包时、按需加载类,节省编译和初始化时间;获取class对象的方法有:class.forName(类路径),类.class(),对象的getClass()
2025-01-14 19:21:00
2987

原创 一文搞懂YOLO系列目标检测!万字长文(附YOLOv8实操教程)
本文介绍目标检测基础概念,算法发展历史,YOLOV8环境配置,数据集标注,模型评估指标,改进策略。
2024-06-26 21:19:32
34954
8

原创 一文搞懂机器学习!2025.1月最新!(附代码实现)
机器学习是人工智能的一个分支,它使计算机系统能够从数据中学习并做出决策或预测,而无需明确编程。它涉及使用算法和统计模型来分析和解释数据,从而发现模式和关系。这些模式随后可以用于预测新数据的结果或分类数据。机器学习的关键技术包括监督学习、无监督学习、半监督学习和强化学习。监督学习通过标记的训练数据来训练模型,使其能够预测或分类新的输入数据。无监督学习则在没有标签的数据上工作,试图发现数据中的结构。半监督学习是两者的结合,使用少量标记数据和大量未标记数据。
2024-06-12 21:47:21
1974
原创 ROS 2机器人开发--CMakeLists.txt 文件详解
这个文件通常包括设置项目名称、版本号、语言标准、编译器选项、查找依赖包、添加可执行文件或库、链接依赖库、安装路径等。CMake 是一个跨平台的构建工具,不同的版本可能有不同的功能。这行代码确保用户使用的 CMake 版本不低于 3.5,以保证项目能够正确构建。这行代码添加一个可执行文件,talker 是可执行文件的名称,src/talker.cpp 是源文件的路径。这行代码定义了项目的名称。项目的名称在构建过程中会用到,例如生成的库或可执行文件的名称通常会包含项目名称。这行代码查找项目所需的依赖包。
2025-03-01 17:18:30
458
原创 ROS 2机器人开发--如何注册编译第一个节点
在ROS 2中,创建和编译你的第一个节点是进入ROS 2世界的重要一步。这个过程不仅让你熟悉ROS 2的工作流程,还能帮助你理解如何组织代码、管理依赖和构建项目。以下是详细的教程,帮助你完成这个过程。
2025-03-01 17:14:39
1047
原创 ROS 2机器人开发--坐标变换工具TF与可视化
在ROS 2中,坐标变换工具(TF)是一个用于管理和转换不同坐标系之间的坐标的工具。它允许你在多个坐标系之间进行变换和同步,从而确保传感器数据和运动指令在正确的坐标系中被解释和执行。在实际的机器人开发中,需要接触到感知物体的任务,会使用到红外模块,超声波模块,3D相机等等,但是这些模块测到的结果往往只是自身与物体的距离,而非整个系统中心点与被感知物体的距离,如图所示:感知模块获得数据后,我们需要计算通过计算,换算成整个系统相对于被感知物体的距离,从而消除测量值与真实值之间的误差,
2025-02-28 18:35:58
458
原创 ROS 2机器人开发--可视化工具rqt与RViz
rqt是ROS提供的一个图形化用户界面工具集,它允许以插件的形式来实现各种图形工具和接口。RViz是ROS生态系统中的一个重要组成部分,它能够显示来自不同来源的机器人数据,如传感器数据、机器人状态和路径规划结果。RViz的最近更新的功能包括变换库插件的动态加载和切换,插件开发支持,以及用户界面优化。Qt是一个跨平台的应用程序和用户界面框架,它允许以插件的形式来实现各种图形工具和接口。使用时,可以通过命令“rqt”来运行RQt工具和插件。,它提供了一个直观的图形界面,用于显示和交互ROS 2系统中的数据。
2025-02-28 18:34:01
499
原创 ROS 2机器人开发--话题通信实战--制作一个可视化系统状态监听工具
创建接口:进入src,打开终端,或者直接cd topic_practice_ws/src进入这个命令的作用是:创建一个名为的新 ROS 2 功能包。使用作为构建系统。添加和作为依赖项。在status_interfaces下面建msg,再在下面建SystemStatus.msg完整目录:src/status_interfaces/msg/SystemStatus.msgbuiltin_interfaces/Time stamp #记录时间戳string host_name #系统名称。
2025-02-25 21:39:00
1014
原创 ROS2机器人开发--服务通信与参数通信
服务是基于请求和响应的双向通信机制。参数用于管理节点的设置,并且参数通信是基于服务通信实现的。service call命令用于调用指定的服务,其第一个参数是服务的名字,第二个参数是服务 的接口类型,第三个参数是Request 数据。一般情况下,一个个修改参数很麻烦,如果想要一次性修改多个文件,不妨先将先将参数导出为一个yaml文件,修改完成后,运行时指定这个文件即可。结果中,每一行代表一个服务,前面是服务名字,[ ]里面是服务的接口类型。观察到颜色已经改变,成功!服务是一对一的通信,而话题是多对多的通信。
2025-02-23 22:29:54
907
原创 ROS 2机器人开发--话题通信:订阅与发布
在ROS 2中,发布和订阅是实现节点间通信的核心机制。节点可以通过发布消息到特定话题来共享信息,而其他节点则可以通过订阅这些话题来接收消息。这种通信模式是异步的,特别适合用于分布式系统。发布者订阅者话题名称和话题类型。发布者可以类比为信息的生产者,订阅者则是信息的消费者。话题名称类似于信息的标识符,而话题类型则定义了消息的结构和内容格式。下面以海龟模拟器为例, 进一步讲解话题通信。按下ctrl+alt+T打开终端,输入代码如图,打开海龟模拟器。
2025-02-22 17:33:45
1228
原创 一文搞懂RGB-D相机 (3D相机)
RGB-D相机(也称3D相机)是一种能够同时获取场景的彩色图像(RGB)和深度信息(D)的传感器。它通过结合传统的彩色相机和深度传感器,提供比单一RGB相机更丰富的三维场景信息。这些信息广泛应用于机器人导航、三维重建、增强现实、人机交互等领域。(Structured Light):通过投射已知图案到场景中,分析变形后的图案与原始图案的差异来计算深度信息。飞行时间相机。
2025-02-22 17:15:26
1286
原创 ROS 2机器人开发--第一个节点
创建该功能包时使用了--license Apache-2.0参数,这个文件内容就是Apache-2.0 的协议内容,在2.2.2节中有关于这个协议的简单介绍。该文件是功能包的清单文件,每个ROS 2的功能包都会包含这个文件,和2.2.2节中 Python 功能包中的package.xml 功能相同。当然,除了上面这些文件和文件夹,在实际开发中还可以添加其他目录和文件,比如用于放置地图的map目录、用于放置参数的config 目录等。在C语言中,指针用于存储其他变量的地址,而智能指针的功能也类似。
2025-02-20 20:35:01
1024
原创 【JAVA基础】Java 流(Stream)、文件(File)和IO
Java 中的流(Stream)、文件(File)和 IO(输入输出)是处理数据读取和写入的基础设施,它们允许程序与外部数据(如文件、网络、系统输入等)进行交互。java.io 包是 Java 标准库中的一个核心包,提供了用于系统输入和输出的类,它包含了处理数据流(字节流和字符流)、文件读写、序列化以及数据格式化的工具。BufferedReader 对象创建后,我们便可以使用 read() 方法从控制台读取一个字符,或者用 readLine() 方法读取一个字符串。一个流可以理解为一个数据的序列。
2025-01-14 21:34:37
742
原创 2025最新JAVA面试八股文【基础篇】
反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意个对象,都能够调用它的任意一个方法。在java中,只要给定类的名字,就可以通过反射机制来获得类的所 有信息。I 这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。应用场景有:要操作权限不够的类属性和方法时、实现自定义注解时、动态加载第三方jar包时、按需加载类,节省编译和初始化时间;获取class对象的方法有:class.forName(类路径),类.class(),对象的getClass()
2025-01-13 21:28:30
933
原创 Java 异常处理
这些异常在编译时不强制要求处理,通常是由程序中的错误引起的,例如 NullPointerException、ArrayIndexOutOfBoundsException 等,这类异常可以选择处理,但并非强制要求。例如,下面的代码中,当 readFile 方法内部发生 IOException 异常时,会将该异常传递给调用该方法的代码。当方法内部抛出指定类型的异常时,该异常会被传递给调用该方法的代码,并在该代码中处理异常。异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。
2025-01-13 13:37:04
673
原创 一文搞懂JAVA编程基础!万字长文,保姆式教程! (进阶教程)
一、Java String 类二、StringBuilder类三、ArrayList类四、继承五、多态六、构造方法七、接口八、Math 类九、System类十、Object类十一、日期时间Date类使用 SimpleDateFormat 格式化日期 前置基础:一文搞懂JAVA编程基础!万字长文,保姆式教程! 2025年1月(小白速成教程)-优快云博客 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 官
2025-01-13 13:35:58
1096
原创 一文搞懂JAVA编程基础!万字长文,保姆式教程! 2025年1月(小白速成教程)
Java EE全称Java Platform Enterprise Edition,是Java的企业版, 主要用于开发服务器应用程序,如网站、服务器接口等,其核心为EJB (企业Java组件)。Java是一门高级的面向对象的程序设计语言。与目前常用的C++相比,Java语言简洁得多,而且提高了可靠性, 除去了最大的程序错误根源,此外它还有较高的安全性,可以说,它是有史以来最为卓越的编程语言。在计算机语言中,注释是计算机语言的一个重要组成部分,用于在源代码中解释代码的作用,可以增强程序的可读性,可维护性。
2025-01-05 18:12:01
829
原创 【JAVA基础】01、JAVA环境配置----JDK与 IDEA集成开发环境的安装(2025最新版本)
JDK是Java Development Kit的缩写,中文意思是Java开发工具包。它是Oracle公司(Java的原始开发者)提供的一套软件开发工具,用于支持Java语言的软件开发。JDK是Java开发者编写、编译、运行Java程序所必需的环境。访问或其他Java发行版网站(如AdoptOpenJDK、Amazon Corretto等),下载适合你操作系统的JDK版本。找到下载,如图所示:选择对应的版本,点击下载。下载完成之后我们得到一个安装包,运行它。
2025-01-03 13:27:19
954
原创 【C++项目实战】贪吃蛇小游戏
贪吃蛇,这款经典的电子游戏,自1976年诞生以来,一直受到全球玩家的喜爱。它的规则简单,玩法直观,但同时也充满了挑战性。在这篇文章中,我们将一起探索如何开发一个贪吃蛇游戏,无论是作为编程新手的练手项目,还是作为游戏开发爱好者的娱乐之作,都是一个不错的选择。
2025-01-02 11:20:58
460
原创 【C++基础】14、C++ 接口(抽象类)
接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。设计(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对象,它只能作为使用。如果试图实例化一个抽象类的对象,会导致编译错误。因此,如果一个 ABC 的子类需要被实例化,则必须实现每个纯虚函数,这也意味着 C++ 支持使用 ABC 声明接口。
2024-12-28 14:38:44
450
原创 【C++基础】13、数据封装
数据封装(Data Encapsulation)是面向对象编程(OOP)的一个基本概念,它通过将数据和操作数据的函数封装在一个类中来实现。这种封装确保了数据的私有性和完整性,防止了外部代码对其直接访问和修改。封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即。是一种把数据和操作数据的函数捆绑在一起的机制,是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。C++ 通过创建。
2024-12-28 14:29:04
476
原创 【C++基础】12、重载运算符和重载函数
C++ 允许在同一作用域中的某个和指定多个定义,分别称为和。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当调用一个或时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为。
2024-12-26 18:55:29
254
原创 【C++基础】11、继承与派生
面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为,新建的类称为。
2024-12-26 16:53:13
591
原创 【C++基础】10、类与对象
定义一个类需要使用关键字 class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。以下实例我们使用关键字classclass Boxpublic:// 盒子的长度// 盒子的宽度// 盒子的高度关键字public确定了类成员的访问属性。在类对象作用域内,公共成员在类的外部是可访问的。您也可以指定类的成员为private或protected。
2024-12-26 16:08:51
568
原创 【C++基础】09、结构体
在 C++ 中,struct 语句用于定义结构体(structure)。结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起。与类(class)类似,结构体允许你定义成员变量和成员函数。为了定义结构,必须使用struct语句。type_name是结构体类型的名称,是标准的变量定义,比如int i;或者float f;或者其他有效的变量定义。在结构定义的末尾,最后一个分号之前,可以指定一个或多个结构变量,这是可选的。下面是声明一个结构体类型Books,变量为book} book。
2024-12-24 20:16:19
1167
原创 【C++基础】07、指针
通过指针,可以简化一些 C++ 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号()运算符访问的地址,它表示了在内存中的一个地址。输出结果为:通过上面的实例,我们了解了什么是内存地址以及如何访问它。接下来让我们看看什么是指针。
2024-12-24 16:59:10
240
原创 【C++基础】06、函数
在 C++ 中,函数由一个函数头和一个函数主体组成。一个函数可以返回一个值。是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字void。这是函数的实际名称。函数名和参数列表一起构成了函数签名。参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。函数主体包含一组定义函数执行任务的语句。
2024-12-23 17:55:54
296
原创 【C++基础】05、数组
C++ 支持数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。所有的数组都是由连续的内存位置组成。
2024-12-20 17:57:24
224
原创 【C++基础】03、表达式 (判断语句与循环语句)
循环至少执行一次循环体,然后在每次执行循环体之后检查条件是否满足。如果条件为真,则继续执行循环体;如果条件为假,则退出循环。在C++中,循环语句允许我们重复执行一段代码,直到满足特定的条件。如果条件为真,则执行循环体;如果条件为假,则退出循环。语句是最基本的条件语句,它允许程序根据条件的真假来执行不同的代码块。循环通常用于当你事先知道需要循环执行多少次的情况。语句用于基于不同的情况执行不同的代码块,通常用于替代多个。的执行,防止代码继续执行到下一个。表达式的值匹配,则执行。后面跟着一个值,如果。
2024-12-19 15:38:46
682
原创 【C++基础】02、运算符与输入输出
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。
2024-12-18 16:33:26
224
原创 【C++基础】01、常量与变量
是指一旦被定义后,其值不能被改变的量。在程序执行过程中,常量的值始终保持不变。常量通常用于存储一些固定的数值或者字符串。整型常量是存储整数值的常量。它们可以是正数、负数或零。例如10,5,2342。实型常量是存储实数值(浮点数)的常量。实型常量可以是小数或科学计数法表示的数。字符型常量是单个字符,用单引号‘ ’括起来。字符型常量在C++中通常表示为char类型。字符串常量是由字符组成的序列,用双引号" "括起来。字符串常量在C++中通常表示为const char数组。
2024-12-17 16:25:25
164
原创 LLM大模型实战项目--基于ChatGLM2的小书虫文档阅读助手
小书虫📚 文档阅读助手是一个基于百度千帆大模型平台的Web应用程序,核心是清华大学训练的ChatGLM2大模型。旨在为用户提供一个高效、直观且易于使用的文档处理平台。该工具的核心功能是自动化阅读和分析用户上传的PDF文档,通过先进的文本处理技术,快速提取文档中的关键信息和数据。小书虫📚 能够显著提高用户处理文档的效率,尤其是在面对大量阅读材料时。用户不再需要花费大量时间手动翻阅文档,而是可以依赖文档阅读助手来快速获取所需信息。
2024-08-01 23:19:18
1196
原创 LLM大模型从入门到精通(7)--企业大模型开发流程
我们将开发以大语言模型为功能核心、通过大语言模型的强大理解能力和生成能力、结合特殊的数据或业务逻辑来提供独特功能的应用称为大模型开发。开发大模型相关应用,其技术核心点虽然在大语言模型上,但一般通过调用 API 或开源模型来实现核心的理解与生成,通过 Prompt Enginnering 来实现大语言模型的控制,因此,虽然大模型是深度学习领域的集大成之作,大模型开发却更多是一个工程问题。
2024-07-30 22:46:42
1269
原创 LLM大模型从入门到精通(6)--Stable Diffusion超详细讲解
Stable Diffusion是一种深度学习文本到图像生成模型,它可以根据文本描述生成详细图像,并且可以应用于内补绘制、外补绘制以及在提示词指导下的图像转换等任务。它是由慕尼黑大学的CompVis研究团体、StabilityAI、Runway以及LAION合作开发的潜在扩散模型,并于2022年发布。Stable Diffusion的源代码和模型权重已经公开发布,可以在大多数配备适度GPU的电脑上运行。Stable Diffusion 拓展性强。
2024-07-20 16:49:28
1537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人