- 博客(1356)
- 收藏
- 关注
原创 wsl2中创建kafka集群
通过上述步骤,可在WSL2的Linux子系统中快速搭建一个高可用的Kafka伪分布式集群。如需可视化监控,可参考Kafdrop工具。输出应显示分区分布在多个Broker上(例如。
2025-05-22 16:58:25
400
原创 数据库的三大范式(1NF、2NF、3NF)
数据库的三大范式(1NF、2NF、3NF)是关系型数据库设计的核心规范,旨在通过消除数据冗余和依赖关系异常,提升数据的一致性和完整性。三大范式通过层级递进的规则,逐步消除数据冗余和依赖异常。实际设计中需权衡范式规范与性能需求,例如在高并发场景下可能允许适当冗余以提升查询效率。:避免数据冗余(如重复存储部门信息)和删除异常(如删除部门信息导致员工记录丢失)。:消除数据冗余和更新异常,例如避免修改某商品名称时需更新多条记录。:避免数据存储混乱,为后续范式提供基础。
2025-04-22 17:04:22
528
原创 [算法]二分查找
二分查找的多种区间定义写法主要体现在初始边界设定、循环条件、区间更新方式的不同,这些差异决定了代码实现的核心逻辑。以下是常见写法的分类与详细解析:示例代码:2. 左闭右开区间 [left, right)核心逻辑:右边界不可访问,目标值仅存在于左闭右开区间内。代码特点:初始化:, ;循环条件:(时区间无效);边界更新: → ; → ;返回值:同上。示例代码:二、变种写法与特殊场景3. 开区间 (left, right)核心逻辑:左右边界均不可访问,适用于需要更灵活
2025-04-20 09:57:38
670
原创 [ZooKeeper]auth和digest的区别和应用
在ZooKeeper中,auth和digest是两种不同的认证机制,分别用于不同场景下的身份验证和权限控制。
2025-04-11 22:27:34
540
原创 .pb.go(Protocol Buffers(简称 Protobuf)生成的 Go 语言代码文件)
数据序列化与通信.pb.go文件包含.proto文件中定义的消息(message)的 Go 语言结构体,支持将结构化数据序列化为二进制或文本格式,实现跨平台、跨语言的高效数据传输。例如,定义会生成对应的User结构体及序列化方法。服务接口支持若.proto文件中定义了 gRPC 服务(service),生成.pb.go时还会生成客户端和服务端接口代码(如),用于实现远程过程调用(RPC)。.pb.go是 Protobuf 在 Go 语言中的核心实现文件,
2025-04-07 11:10:36
404
原创 element plus组件库里面el-menu菜单的背景颜色如何设置成渐变颜色
element plus组件库里面el-menu菜单的背景颜色如何设置成渐变颜色
2025-03-07 00:00:27
361
原创 Java的匿名内部类
Java的匿名内部类是一种没有名字的内部类,它允许你在定义类的同时直接创建该类的实例。总之,匿名内部类提供了一种快速创建实现类的方式,特别是在需要简单实现接口或抽象类时非常有用。
2025-02-20 01:37:20
338
原创 [Vue]Vue.js 的属性绑定
语法:用于绑定 JavaScript 表达式,使得组件能够获取真实的值(如布尔值)。静态 vs 动态:静态传递的是字符串,而动态传递的是实际的 JavaScript 值。响应性:动态绑定使得 Vue 组件能够根据数据变化自动更新。
2025-01-15 16:20:32
261
原创 [Vue]JavaScript中的默认导出和命名导出
默认导出:导入时不需要使用{},直接指定你想要的名字即可。。命名导出:导入时需要使用{}来指定要导入的具体名称。。这是 JavaScript 模块系统的基本规则,它允许开发者灵活地管理和导入所需的功能。我来详细解释一下默认导出)和命名导出)在 JavaScript 中的概念和区别。
2024-12-28 09:54:53
1100
原创 [Python]ord函数
在 Python 中,ord()是一个内置函数,用于将字符转换为对应的 Unicode 码点(即字符在 Unicode 编码表中的整数表示)。它是的转换工具。
2024-12-16 20:48:04
1199
原创 [Python]enumerate和zip
是 Python 内置的一个函数,用于在遍历一个可迭代对象(如列表、元组或字符串)时,同时获取元素的索引和值。对于需要在循环中访问元素和其位置的情况,提供了一种简洁明了的解决方案。返回一个,它生成一个由索引和值组成的元组。: 在有时需要通过索引引用其他数据结构的场合,enumerate使得访问索引和数值更加方便。: 避免了手动管理迭代索引,从而增强了代码的可读性。: 可以通过设置start参数,灵活调整索引的起始位置。enumerate在某些复杂数据处理场景下,结合列表解析或字典解析,enumerate。
2024-12-16 20:17:17
502
原创 自适应平均池化(nn.AdaptiveAvgPool1d)
是 PyTorch 中的一种池化层,用于在一维数据(如时间序列或特征序列)中进行自适应平均池化(Adaptive Average Pooling)。
2024-12-15 15:43:16
1306
原创 HashMap的遍历,举例:HashMap<String,Integer> map
在 Java 中,遍历HashMapentrySet()是最常用的遍历方式,可以同时访问键和值。keySet()适用于当你只关心键时。values()适用于只关心值的情况。Java 8 的forEach()方法是更现代、简洁的遍历方式。使用迭代器适合需要在遍历过程中修改Map的情况。这些方法可以根据具体的使用场景来选择。
2024-12-15 12:50:31
296
原创 请求转发Forward和重定向Redirect
请求转发()和重定向()是 Web 开发中常见的两种请求处理方式,它们在行为和效果上有很大的不同。
2024-12-14 10:26:01
935
原创 Go中使用Set
创建了一个空的map,它的键是字符串类型,值是空结构体类型,用来表示集合。:向这个map中添加了一个键"hello",并将值设置为一个空结构体,表示键"hello"存在。通过这种方式,map的键"hello"被添加到集合中,但不存储任何额外的信息,仅仅表示该键的存在性。这种方式常用于实现集合(set)的功能。
2024-12-12 19:37:13
318
原创 [Python]创建列表
这些是 Python 中几种常见的创建列表的方法。最常见的方式是使用方括号直接创建,但是根据不同的应用场景,可以选择适合的方法来构建你的列表。
2024-12-12 09:23:19
465
原创 [PyTorch]传入神经网络的张量(tensor)
batch_size(批次大小):这是数据集中每个训练步骤处理的样本数。在训练神经网络时,通常会将数据分成多个小批次(batch),每次传入模型进行计算。批次大小是一个超参数,它影响训练效率和模型收敛的速度。channels(输入通道数):这是每个输入样本的通道数。channels=3channels=1在卷积神经网络中,channels对应的是输入的特征图的深度,卷积操作会在每个通道上进行。height(图像的高度):输入数据的垂直尺寸(以像素为单位),即图像的行数。width。
2024-12-11 09:58:56
251
原创 PyTorch 中用来 设置 CPU 上可用线程数 torch.set_num_threads(num)
允许用户控制 PyTorch 在执行计算时使用的 CPU 线程数。这个设置主要影响CPU 密集型计算,对GPU 计算没有影响。合理设置线程数可以帮助优化性能,特别是在资源共享或调优时非常有用。
2024-12-09 14:53:09
863
原创 查看Linux 系统中有多少个 CPU 核心
nproclscpu这些命令会告诉你系统的逻辑核心数。如果你的 CPU 支持超线程(Hyper-Threading),那么逻辑核心数通常会大于物理核心数。在设置时,你可以根据可用的 CPU 核心数量来决定。一般来说,如果你的机器有 8 个逻辑核心,你可以将num设置为 8,但具体的设置可以根据你的应用场景进行调整。
2024-12-09 14:51:32
3327
原创 @SpringBootTest注解的配置和是否使用@RunWith(SpringRunner.class)
第一段代码使用了 JUnit 4 的注解,并显式指定了启动类。第二段代码没有,这通常意味着它是用 JUnit 5 进行测试,且没有显式指定启动类,会使用默认的启动类。在JUnit 5中,你可以省略,而只使用,Spring 会自动启用相应的支持。如果你使用JUnit 4,则需要保留。
2024-12-05 20:40:47
520
原创 npm install 一直卡住,或者yarn install一直卡住,HTTPS证书验证失败
npm install 一直卡住,或者yarn install一直卡住,HTTPS证书验证失败。设置跳过HTTPS证书验证。
2024-11-30 09:41:16
174
原创 [Vue]$event变量
event是 Vue.js 提供的一个特殊变量,指向事件对象,它代表了触发当前事件的原生 DOM 事件。在事件处理方法中,可以通过$event获取与该事件相关的所有详细信息,如鼠标坐标、键盘按键值、输入框的值等。如果只关心事件的某个特定值(如输入框的内容),可以直接传递该值,而不需要传递整个事件对象,这样能让代码更简洁清晰。希望这个解释能够帮助你更好地理解$event的作用!
2024-11-21 21:28:14
720
原创 [Vue]:visible.sync
sync修饰符使得在控制对话框的显示和隐藏时更加智能,不仅控制显示,当用户关闭对话框时,isVisible会自动同步为false,而无需我们手动去更新这个值。这简化了代码并提升了可维护性。--* @Description: 登录组件--><template><el-dialog title="登录" width="300px" center :visible.sync="isLogin">
2024-11-20 15:08:56
1742
1
原创 Vue中的computed属性
计算属性computed)允许你根据现有的数据计算出新的值,并且只有当依赖的数据发生变化时才会重新计算。它是响应式的,并且自动缓存计算结果,避免了不必要的计算,提升性能。普通方法与计算属性的区别是:方法每次调用都会执行,而计算属性只有在其依赖的数据变化时才会重新计算。希望这个示例能帮助你更好地理解 Vue 中计算属性的工作原理!好的!计算属性不仅可以有get方法,还可以有set方法,这样你可以在计算属性上实现双向绑定和定制化的设置逻辑。接下来,我将通过一个例子来帮助你理解如何使用get和set。
2024-11-20 12:40:23
1080
原创 conda 在尝试访问 Anaconda 或 conda-forge 仓库时发生了 连接超时错误
重试操作,有时是临时的网络问题。使用国内镜像源,提高下载速度和稳定性。检查网络连接,确保没有网络故障。清理 conda 缓存,避免本地缓存影响操作。检查代理设置,如果你处于使用代理的网络中。如果你已经尝试了上述方法,问题仍然存在,可能需要进一步检查网络环境或联系网络管理员解决问题。
2024-11-19 11:48:34
1518
原创 [Go]汇总一下 for 和 for range 中最容易迷惑的几段代码
这段代码 for 循环不会一直循环,原因是,arr 会在 range 一个复制一份儿,这个复制体的 len 在最初的 range 中的开头已经确定是 3,后面继续追加的 arr,并不会改变这个最初读取的 len == 3 这个结果。这段代码是存在 bug 的,&v,首先,根据作用域可知道,这个 v 是 loop 级作用域,那么这个 result 中存在的&v 就是同一个值,所以这个代码是错误的。使用这种传统的 for 循环,因为 n 在循环体和循环内部都是同一个,所以循环不会结束。
2024-10-20 00:19:22
187
原创 [Go]类型嵌入来完成继承
我们可以看到,直接嵌入的时候,其实是省略了写法。s 是指针类型和值类型在调用实质上还是区别的,但是在实际使用中,并不会有什么区别,这主要还是因为要看方法是定义在值类型还是指针类型上。不过即便 s 是值的时候,people 上本身是定义在指针上的方法,那么它在底层调用的时候也势必是 *People。但是如果 s 这里是指针类型的话,那么它调用的就是 *People 的方法 +*Address 的方法。当发生嵌入类型和本类型,字段重合的时候,优先调用本类型的字段,嵌入类型的只需要加上前缀就可以了。
2024-10-19 21:34:30
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人