Java常用工具类详解

目录

一、Java 中的数学利器:java.lang.Math 类详解

1.常用属性

2.常用方法

⑴.static int abs(int a)

⑵.static double ceil(double a)

⑶.static double floor(double a)

⑷.static int max(int a, int b) 和 static int min(int a, int b)

⑸.static double random()

⑹.static long round(double a)

⑺.static double sqrt(double a)

运行结果:

⑻.static double pow(double a, double b)

二、Java 中 java.util.Random 类:随机数生成的利器

1.常用构造方法

Random()

2.常用方法

⑴.int nextInt()

⑵.int nextInt(int bound)

⑶.double nextDouble()

3.练一练:生成 5 个不重复的随机数

三、深入探索 Java 中的 java.lang.System 类

1.常用属性

⑴.static final PrintStream err

⑵.static final InputStream in

⑶.static final PrintStream out

2.常用方法

⑴.static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

⑵.static void exit(int status)

⑶.static void gc()

⑷.static long currentTimeMillis()

⑸.static long nanoTime()

⑷.static Map getenv()

⑸.static Properties getProperties()

⑹.static String getProperty(String key)

四、深入了解 Java 中的 UUID:通用唯一标识符

1.什么是UUID?

UUID核心特性

Java 中 UUID 的应用场景

2.Java中的UUID实现


一、Java 中的数学利器:java.lang.Math 类详解

在 Java 编程中,处理数学运算时,java.lang.Math 类是一个非常实用的工具。它提供了一系列静态方法和常量,方便我们进行各种常见的数学计算,无需创建对象即可直接使用,大大提高了代码的简洁性和效率。

1.常用属性

  • static final double PI:圆周率常量(3.141592653589793)

PI 是 Math 类中一个静态常量,表示圆周率 ,其值约为 3.141592653589793。在进行与圆相关的计算时,这个常量非常有用。

public class MathPIExample {public static void main(String[] args) {double radius = 5.0;// 计算圆的面积double area = Math.PI * Math.pow(radius, 2);System.out.println("半径为 " + radius + " 的圆的面积是: " + area);}
}

2.常用方法

⑴.static int abs(int a)

abs 方法用于返回一个数的绝对值。它可以处理 int 类型的数据,也有对应的重载方法可以处理 longfloat 和 double 类型的数据。

public class MathAbsExample {public static void main(String[] args) {int num = -10;int absNum = Math.abs(num);System.out.println(num + " 的绝对值是: " + absNum);}
}

运行结果:

⑵.static double ceil(double a)

ceil 方法用于对一个 double 类型的数进行向上取整,返回大于或等于该数的最小整数。

public class MathCeilExample {public static void main(String[] args) {double num = 3.2;double ceilNum = Math.ceil(num);System.out.println(num + " 向上取整的结果是: " + ceilNum);}
}

运行结果:

⑶.static double floor(double a)

floor 方法用于对一个 double 类型的数进行向下取整,返回小于或等于该数的最大整数。

public class MathFloorExample {public static void main(String[] args) {double num = 3.8;double floorNum = Math.floor(num);System.out.println(num + " 向下取整的结果是: " + floorNum);}
}

运行结果:

⑷.static int max(int a, int b) 和 static int min(int a, int b)

max 方法用于返回两个数中的最大值,min 方法用于返回两个数中的最小值。同样,也有对应的重载方法可以处理 longfloat 和 double 类型的数据。

public class MathMaxMinExample {public static void main(String[] args) {int num1 = 10;int num2 = 20;int maxNum = Math.max(num1, num2);int minNum = Math.min(num1, num2);System.out.println(num1 + " 和 " + num2 + " 中的最大值是: " + maxNum);System.out.println(num1 + " 和 " + num2 + " 中的最小值是: " + minNum);}
}

运行结果:

⑸.static double random()

random 方法用于生成一个大于等于 0.0 且小于 1.0 的随机 double 类型的数。通过一些简单的运算,我们可以生成指定范围的随机数。

public class MathRandomExample {public static void main(String[] args) {// 生成 [0-100) 的随机整数int num = (int) (Math.random() * 100);System.out.println("生成的 [0-100) 的随机整数是: " + num);}
}

运行结果:

⑹.static long round(double a)

round 方法用于对一个 double 类型的数进行四舍五入,返回最接近该数的 long 类型的整数。

public class MathRoundExample {public static void main(String[] args) {double num = 3.6;long roundNum = Math.round(num);System.out.println(num + " 四舍五入的结果是: " + roundNum);}
}

运行结果:

⑺.static double sqrt(double a)

sqrt 方法用于计算一个 double 类型的数的平方根。

public class MathSqrtExample {public static void main(String[] args) {double num = 16.0;double sqrtNum = Math.sqrt(num);System.out.println(num + " 的平方根是: " + sqrtNum);}
}

运行结果:

⑻.static double pow(double a, double b)

pow 方法用于计算一个数的指定次幂,其中 a 是底数,b 是指数。

public class MathPowExample {public static void main(String[] args) {double base = 2.0;double exponent = 3.0;double result = Math.pow(base, exponent);System.out.println(base + " 的 " + exponent + " 次幂是: " + result);}
}

运行结果:

二、Java 中 java.util.Random 类:随机数生成的利器

在 Java 编程里,我们常常需要生成随机数来满足各种需求,比如模拟游戏中的随机事件、生成测试数据等。java.util.Random 类就是专门用来生成随机数的工具类,它提供了丰富的方法和构造函数,让我们可以轻松地生成不同类型和范围的随机数。

1.常用构造方法

Random()

这是 Random 类最常用的构造方法。当我们使用 Random() 来创建 Random 对象时,它会使用当前系统时间作为种子来初始化随机数生成器。由于系统时间是不断变化的,所以每次创建的随机数序列通常是不同的。

import java.util.Random;public class RandomConstructorExample {public static void main(String[] args) {Random random = new Random();// 后续可以使用这个 random 对象生成随机数}
}

2.常用方法

⑴.int nextInt()

nextInt() 方法会返回一个 int 类型取值范围内的随机整数,其范围是 -2147483648 到 2147483647

import java.util.Random;public class NextIntExample {public static void main(String[] args) {Random random = new Random();int randomInt = random.nextInt();System.out.println("生成的随机整数是: " + randomInt);}
}

⑵.int nextInt(int bound)

nextInt(int bound) 方法会返回一个在 [0, bound) 区间内的随机整数。也就是说,生成的随机数大于等于 0 且小于指定的 bound 值。

import java.util.Random;public class NextIntBoundExample {public static void main(String[] args) {Random random = new Random();int bound = 10;int randomInt = random.nextInt(bound);System.out.println("生成的 [0, " + bound + ") 区间内的随机整数是: " + randomInt);}
}

⑶.double nextDouble()

nextDouble() 方法会返回一个在 [0.0, 1.0) 区间内的随机 double 类型的数。

import java.util.Random;public class NextDoubleExample {public static void main(String[] args) {Random random = new Random();double randomDouble = random.nextDouble();System.out.println("生成的 [0.0, 1.0) 区间内的随机小数是: " + randomDouble);}
}

3.练一练:生成 5 个不重复的随机数

下面我们来完成一个小练习,使用 Random 类生成 5 个不重复的随机数。为了确保生成的随机数不重复,我们可以使用 ArrayList 来存储已经生成的随机数,每次生成新的随机数时,先检查该数是否已经在列表中,如果不在则添加到列表中。

import java.util.ArrayList;
import java.util.List;
import java.util.Random;public class GenerateUniqueRandomNumbers {public static void main(String[] args) {Random random = new Random();List<Integer> uniqueNumbers = new ArrayList<>();int count = 0;int bound = 100; // 假设生成 [0, 100) 区间内的随机数while (count < 5) {int randomNumber = random.nextInt(bound);if (!uniqueNumbers.contains(randomNumber)) {uniqueNumbers.add(randomNumber);count++;}}System.out.println("生成的 5 个不重复的随机数是: " + uniqueNumbers);}
}

三、深入探索 Java 中的 java.lang.System 类

在 Java 编程的世界里,java.lang.System 类是一个极为重要的工具类,它提供了许多与系统交互的静态方法和属性。由于 System 类的构造方法是私有的,我们无法实例化它,只能通过类名直接调用其静态成员。下面,我们将详细介绍 System 类的常用属性和方法。

1.常用属性

⑴.static final PrintStream err

err 是标准错误输出流,通常用于输出错误信息。与标准输出流不同的是,使用 System.err.println() 输出的信息在控制台中一般会以红色字体显示,这样能让开发者更直观地识别错误信息。

public class SystemErrExample {public static void main(String[] args) {System.err.println("这是一条错误信息!");System.out.println("这是一条错误信息!");}
}

运行结果:

⑵.static final InputStream in

in 是标准输入流,它允许程序从控制台读取用户输入的数据。在实际开发中,我们常常会结合 Scanner 类来使用它。

import java.util.Scanner;public class SystemInExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入你的名字:");String name = scanner.nextLine();System.out.println("你输入的名字是:" + name);//拆开写InputStream inputStream = System.in;Scanner s2 = new Scanner(inputStream);System.out.println(s2.next());scanner.close();}
}

⑶.static final PrintStream out

out 是标准输出流,这是我们在 Java 编程中最常用的输出方式。通过 System.out.println() 或 System.out.print() 方法,我们可以将信息输出到控制台。

import java.io.PrintStream;public class oop2 {public static void main(String[] args) {System.out.println("hello world!");PrintStream printStream = System.out;printStream.println(100);printStream.println(false);printStream.println("123");printStream.println(1.23);System.out.println("这是一条标准输出信息。");}
}

2.常用方法

⑴.static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

arraycopy 方法用于数组拷贝,它可以将一个数组中的指定部分复制到另一个数组中。其中,src 是源数组,srcPos 是源数组的起始位置,dest 是目标数组,destPos 是目标数组的起始位置,length 是要复制的元素个数。

public class SystemArraycopyExample {public static void main(String[] args) {int[] srcArray = {1, 2, 3, 4, 5};int[] destArray = new int[5];System.arraycopy(srcArray, 0, destArray, 0, 5);for (int num : destArray) {System.out.print(num + " ");}}
}

运行结果:

⑵.static void exit(int status)

exit 方法用于退出 Java 虚拟机。参数 status 为 0 表示正常退出,非 0 表示异常退出。

public class SystemExitExample {public static void main(String[] args) {System.out.println("程序即将退出...");System.exit(0);System.out.println("这行代码不会被执行。");}
}

运行结果:

⑶.static void gc()

gc 方法用于建议 Java 虚拟机启动垃圾回收器。需要注意的是,这只是一个建议,虚拟机不一定会立即执行垃圾回收操作。

public class SystemGCExample {public static void main(String[] args) {// 创建一些对象for (int i = 0; i < 1000; i++) {new Object();}// 建议启动垃圾回收器System.gc();}
}

⑷.static long currentTimeMillis()

currentTimeMillis 方法用于获取自 1970 - 01 - 01 00:00:00 000 到系统当前时间的总毫秒数。

这个方法在计算程序执行时间、定时任务等场景中非常有用

public class SystemCurrentTimeMillisExample {public static void main(String[] args) {long startTime = System.currentTimeMillis();// 模拟一些耗时操作for (int i = 0; i < 1000000; i++) {// do something}long endTime = System.currentTimeMillis();System.out.println("程序执行耗时:" + (endTime - startTime) + " 毫秒");}
}

.static long nanoTime()

nanoTime 方法用于获取自 1970 年 1 月 1 日 0 时 0 分 0 秒以来,当前时间的纳秒数。它提供了比 currentTimeMillis 更高的时间精度,常用于性能测试等对时间精度要求较高的场景。

public class SystemNanoTimeExample {public static void main(String[] args) {long startTime = System.nanoTime();// 模拟一些耗时操作for (int i = 0; i < 1000000; i++) {// do something}long endTime = System.nanoTime();System.out.println("程序执行耗时:" + (endTime - startTime) + " 纳秒");}
}

⑷.static Map<String, String> getenv()

getenv 方法用于获取当前系统的环境变量,返回一个包含环境变量名和对应值的 Map 对象。常见的环境变量有 PathJAVA_HOMECLASSPATH 等。

import java.util.Map;public class SystemGetenvExample {public static void main(String[] args) {Map<String, String> envVars = System.getenv();for (Map.Entry<String, String> entry : envVars.entrySet()) {System.out.println(entry.getKey() + " = " + entry.getValue());}}
}

⑸.static Properties getProperties()

getProperties 方法用于获取当前系统的属性,返回一个 Properties 对象。系统属性包含了许多关于 Java 虚拟机和操作系统的信息。

import java.util.Properties;public class SystemGetPropertiesExample {public static void main(String[] args) {Properties properties = System.getProperties();properties.list(System.out);}
}

⑹.static String getProperty(String key)

getProperty 方法用于通过指定的 key 获取系统属性的值。例如,我们可以通过 "os.name" 获取操作系统的名称。

public class SystemGetPropertyExample {public static void main(String[] args) {String osName = System.getProperty("os.name");System.out.println("当前操作系统的名称是:" + osName);}
}

四、深入了解 Java 中的 UUID:通用唯一标识符

1.什么是UUID?

UUID(Universally Unique Identifier) 是一种用于生成全局唯一标识符的开放标准,其核心目标是在分布式系统中生成无需中央协调的唯一ID。它通过128位二进制数实现唯一性,相当于在理论上可以产生约3.4×10^38个不同的标识符(大约是宇宙中原子数量的10亿倍)。

UUID核心特性

特性说明
全局唯一性重复概率低至可以忽略不计(每秒生成10亿个UUID,100年后重复概率约50%)
本地生成能力无需依赖数据库或中央服务器
跨平台兼容性支持所有主流编程语言和系统
标准化格式支持多种字符串表示形式

UUID 是一种软件构建的标准,其核心目的是生成具有唯一性的 ID。它具有以下显著特点:

分布式系统友好

在分布式系统中,多个节点可能同时生成标识符。UUID 能够在这种复杂的环境下,为每个节点生成唯一的标识符,避免了主键冲突等问题带来的麻烦。这使得分布式系统的开发和维护更加顺畅。

高度唯一性

UUID 使用 128 位数字来表示,其重复的概率极低。除了传统的 32 位 16 进制表示形式外,还有基于 62 进制的表示方法,这种表示更加简洁紧凑,方便在各种场景下使用。

本地生成

UUID 的生成不需要依赖任何中央控制器或数据库服务器。开发者可以在本地快速、方便地生成唯一标识符,无需与外部系统进行交互,大大提高了开发效率。

跨语言支持

UUID 生成后可以被许多编程语言支持,并且能够方便地转化为字符串表示形式。这使得它适用于多种应用场景,无论是 Web 开发、移动开发还是大数据处理,UUID 都能发挥重要作用。

Java 中 UUID 的应用场景

在 Java 开发中,UUID 的使用非常普遍,常见的应用场景包括:

数据表主键

在数据库设计中,使用 UUID 作为数据表的主键可以避免因自增主键在分布式环境下的冲突问题。每个记录都有一个唯一的 UUID,确保数据的一致性和完整性。

场景标识

在复杂的业务系统中,不同的业务场景可能需要唯一的标识。UUID 可以作为场景标识,方便系统对不同的业务流程进行管理和跟踪。

链路追踪

在分布式系统的调用链中,使用 UUID 可以唯一标识一次请求的处理过程。通过在各个服务之间传递 UUID,我们可以方便地追踪请求的执行路径,定位问题所在。

缓存 Key

在缓存系统中,使用 UUID 作为缓存 Key 可以避免 Key 冲突的问题。每个缓存项都有一个唯一的 UUID,确保缓存数据的准确性和一致性。

2.Java中的UUID实现

Java通过java.util.UUID类提供原生支持:

import java.util.UUID;public class UUIDGenerationExample {public static void main(String[] args) {UUID uuid = UUID.randomUUID();System.out.println("生成的 UUID: " + uuid);}
}

将 UUID 转换为字符串

String toString() 方法用于将 UUID 对象转换为字符串表示形式。在实际开发中,我们经常需要将 UUID 以字符串的形式存储或传输,这个方法非常实用。

import java.util.UUID;public class UUIDToStringExample {public static void main(String[] args) {UUID uuid = UUID.randomUUID();String uuidString = uuid.toString();System.out.println("UUID 的字符串表示: " + uuidString);}
}

格式解析

标准36字符格式分解:

xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19659.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32 低功耗模式

目录 背景 低功耗模式 睡眠模式 进入睡眠模式 退出睡眠模式 停止模式 进入停止模式 退出停止模式 待机模式 进入待机模式 退出待机模式 程序 睡眠模式 休眠模式配置 进入休眠模式 退出睡眠模式 停止模式 停止模式配置 进入停止模式 退出停止模式 待机模式…

uniapp 使用v-html在微信小程序中渲染成rich-text如何显示文本溢出省略

一、问题描述 小伙伴有个需求&#xff0c;想在uniapp开发的微信小程序的一个列表中对内容进行显示溢出显示省略号的控制&#xff1a;当文本超出一行之后&#xff0c;显示…。 经过尝试&#xff0c;无法在v-html所在的节点进行ellipise的控制。 二、解决方案 1.增加函数&…

VMware 17 安装 VMTools(win 7旗舰 X64)

由于在VM 17中安装的 win 7虚拟机没有安装VM Tools 的原因&#xff0c;界面有大黑边&#xff0c;也无法直接拖拽复制粘贴文件&#xff08;但是如果只是要复制文件&#xff0c;最简单的方法还是使用U盘&#xff09;&#xff0c;所以下面开始安装VM Tools 。 若直接选择VM软件中的…

【MySQL】我在广州学Mysql 系列——Mysql 日志管理详解

ℹ️大家好&#xff0c;我是练小杰&#xff0c;今天又是新的一周了&#xff0c;又该摆好心态迎接美好的明天了&#xff01;&#xff01;&#xff01;&#x1f606; 本文主要对Mysql数据库中的日志种类以及基本命令进行讨论&#xff01;&#xff01; 回顾&#xff1a;&#x1f4…

python学opencv|读取图像(六十五)使用cv2.boundingRect()函数实现图像轮廓矩形标注

【1】引言 前序学习进程中&#xff0c;已经使用cv2.findContours()函数cv2.drawContours()函数实现图像轮廓识别和标注&#xff0c;这种标注沿着图像的轮廓进行&#xff0c;比较细致。相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;六十四&#xff09;使用…

DeepSeek-V3 技术报告

DeepSeek-V3 Technical Report https://arxiv.org/abs/2412.19437 1. 核心贡献 DeepSeek-V3 是一个拥有 6710 亿参数的大规模混合专家&#xff08;MoE&#xff09;语言模型&#xff0c;每个 token 激活 370 亿参数。 该模型通过创新的架构设计和训练策略&#xff0c;实现了高效…

PCIe7.0信号完整性优化的一些方向

首先考虑过孔stub的影响&#xff0c;分别仿真10mil stub&#xff0c;6mil stub&#xff0c;3mil stub以及无stub四种情况&#xff0c;观察insertion loss/ return loss/TDR Impedance profile、crosstalk四个参数对比情况。 仿真对比结果如下&#xff1a; 其次&#xff0c;考虑…

学习threejs,使用PointLight点光源

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.PointLight 二、&…

30填学习自制操作系统第二天

今天要干什么&#xff1f; 初步了解汇编语言使用汇编重新写个昨天的镜像文件继续开发 一: 什么是电信号&#xff1f; 电脑的处理中心是CPU&#xff0c;即“central process unit”的缩写&#xff0c;翻译成中文就是“中央处理单元”&#xff0c;顾名思义&#xff0c;他就是…

Python的顺序结构和循环结构

文章目录 一、条件语句&#xff08;1&#xff09;条件语句的定义&#xff08;2&#xff09;条件语句的语法&#xff08;a&#xff09;单分支 if&#xff08;b&#xff09;双分支 if-else&#xff08;c&#xff09;多分支 if-elif-elif-...-else &#xff08;3&#xff09;注意事…

金蝶云星空点击按钮实现指定文件下载

文章目录 金蝶云星空点击按钮实现指定文件下载业务需求开发实现 金蝶云星空点击按钮实现指定文件下载 业务需求 点击按钮&#xff0c;下载excel 开发实现 创建表单插件&#xff0c;在按钮点击事件&#xff0c;调用附件下载窗口进行指定路径的指定文件下载 模板存放路径 …

EasyExcel的简单使用

EasyExcel使用 官方文档&#xff1a;关于EasyExcel 1.1EasyExcel相关依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.11</version></dependency> 1.2 写Excel 1.2.1 最…

游戏引擎学习第107天

仓库:https://gitee.com/mrxiao_com/2d_game_2 回顾我们之前停留的位置 在这段内容中&#xff0c;讨论了如何处理游戏中的三维效果&#xff0c;特别是如何处理额外的“Z层”。由于游戏中的艺术资源是位图而不是3D模型&#xff0c;因此实现三维效果变得非常具有挑战性。虽然可…

「vue3-element-admin」基于 TypeScript 的 ECharts 按需引入方案实战 - Vue3 项目打包体积优化 57%

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …

用Python实现图像风格迁移的技术分析

文章目录 一、概要 二、效果预览 三、整体架构流程 1. 用户界面(GUI): 2. 图像加载与显示: 3. 风格迁移核心算法: 4. 结果显示与保存: 5. 多线程处理: 四、技术名词解释 1. OpenCV: 2. TensorFlow: 3. VGG19: 4. GUI(图形用户界面): 5. 多线程: 五…

gsoap实现webservice服务

gsoap实现webservice服务 在实现Web服务时&#xff0c;使用gSOAP是一个很好的选择&#xff0c;因为它提供了强大的工具和库来创建SOAP和RESTful服务。gSOAP是一个C和C语言开发的库&#xff0c;它支持SOAP协议的各种版本&#xff0c;包括SOAP 1.1和SOAP 1.2。下面是如何使用gSO…

穷举 vs 暴搜 vs 深搜 vs 回溯 vs 剪枝

穷举 vs 暴搜 vs 深搜 vs 回溯 vs 剪枝 1. 全排列2. 子集 1. 全排列 题目链接&#xff1a;46. 全排列 算法原理&#xff1a; 画出决策树 设计函数 全局变量&#xff1a;二维数组ret存储结果&#xff1b;一维数组path存储路径&#xff1b;boolean类型一维数组visited表示当…

NAT(网络地址转换)技术详解:网络安全渗透测试中的关键应用与防御策略

目录 NAT的作用 NAT类型 NAT工作流程示例 NAT 转换技术的原理 源地址转换&#xff08;SNAT&#xff0c;Source NAT&#xff09;&#xff1a; 目标地址转换&#xff08;DNAT&#xff0c;Destination NAT&#xff09;&#xff1a; 端口地址转换&#xff08;PAT&#xff0c…

OpenCV图像基本操作

学习目标&#xff1a; 学习一些OpenCV中对于图像的基本操作 学习内容&#xff1a; 第一步导入库和所需的图像。 import cv2 import numpy as np imgcv2.imread("lena.png") # cv2.imshow("img",img) # cv2.waitKey(0) 访问和修改图片像素 访问图片像素…

具身智能在智能巡检机器人中的应用——以开关柜带电操作机器人为例

随着机器人技术和人工智能的迅速发展&#xff0c;具身智能在各行业的应用日益广泛&#xff0c;尤其是在电力行业中的智能巡检领域。传统的电力巡检和维护工作通常需要人工操作&#xff0c;存在着高温、高压、强电磁场等危险环境&#xff0c;且效率较低。开关柜带电操作机器人作…