- 博客(53)
- 资源 (4)
- 收藏
- 关注
原创 【设计模式】观察者模式
观察者模式是一种行为设计模式,建立一对多的依赖关系,让多个观察者对象自动响应主题对象的状态变化。该模式包含主题(Subject)和观察者(Observer)两个核心角色,通过注册/注销机制实现解耦。其优点是低耦合、可扩展性强,适用于事件驱动系统;缺点是可能产生性能问题和顺序不确定。示例展示了Java实现过程:定义Observer接口和Subject接口,创建具体观察者和主题类,通过注册机制实现状态变化通知。该模式广泛应用于事件处理、UI组件交互等场景。
2025-05-30 17:09:03
181
原创 【设计模式】责任链模式
责任链模式是一种行为设计模式,通过构建处理者链实现请求的传递和处理。主要包含抽象处理者、具体处理者和客户端三个角色。该模式降低系统耦合度,增强扩展性,避免复杂条件语句,适用于多级审批、日志处理等场景。缺点是可能影响性能,调试较困难。代码示例展示了如何构建处理链(HandlerA->HandlerB->HandlerC)并传递不同类型的请求,每个处理者仅处理特定类型的请求。该模式提高了代码灵活性和可维护性。
2025-05-30 15:34:25
205
原创 【设计模式】策略模式
策略模式是一种行为设计模式,通过定义算法族并封装每个算法,使其可以互相替换。该模式包含三个核心角色:Strategy接口定义算法规范,ConcreteStrategy实现具体算法,Context维护策略引用。示例通过加减乘三种算术运算策略展示了模式的实现方式,客户端可灵活切换不同算法。策略模式的优点包括提高扩展性、消除条件语句,缺点是可能增加类数量。适用于需要动态切换算法或避免复杂条件判断的场景,有效提升代码的可维护性和灵活性。
2025-05-30 15:26:49
330
原创 【java】aes,salt
该代码展示了一个基于AES的加密解密实现,包含盐值生成和加解密功能。SaltGenerator类生成随机盐值,AesEncryption类使用CBC模式和PKCS5填充方案进行AES加解密。主程序演示了生成16字节盐值,使用固定密钥加密"Hello, World!"字符串,并通过Base64编码输出加密结果,最后解密还原原始数据。整个流程展示了安全的加密操作实现,但实际应用中建议使用更安全的密钥生成方式而非硬编码密钥。
2025-05-29 22:59:48
363
原创 【Java】匿名内部类和实例初始化块
这种初始化方式是利用了Java的匿名内部类和实例初始化块的特性,可以在创建对象的同时完成一些初始化操作。这种方式是合法的,是因为Java语言规范允许在匿名内部类中使用实例初始化块来完成对象的初始化。在Java中,匿名内部类是一种没有名字的内部类,它通常用于创建一个类的实例,而不需要显式地定义一个类。通过匿名内部类和实例初始化块的结合,可以在创建对象的同时完成一些初始化操作,而不需要显式地定义一个构造函数或者调用。在匿名内部类中,实例初始化块的作用是在对象被创建时执行一些初始化操作。这个匿名内部类继承自。
2025-04-25 00:40:34
181
原创 【软件】在 macOS 上安装和配置 Apache HTTP 服务器
通过以上步骤,你可以在 macOS 上成功安装和配置 Apache HTTP 服务器。,说明 Apache 未安装。默认情况下,Apache HTTP 服务器监听 80 端口。你可以通过浏览器访问。如果你需要配置 SSL/TLS 来启用 HTTPS,你需要编辑 SSL 配置文件。然后,你需要创建 SSL 证书和密钥,并在配置文件中指定它们的路径。• 确保在修改配置文件后重启 Apache 服务器以应用更改。• 如果你更改了端口号,确保在防火墙设置中打开相应的端口。例如,要更改网站的根目录,你可以编辑。
2025-04-06 12:05:36
446
原创 JVM中常见的垃圾回收器(Garbage Collectors)
选择垃圾回收器时,需要考虑应用的响应时间要求、吞吐量、内存占用等因素。• 进行垃圾回收时会暂停所有应用线程(Stop-The-World,STW)。• Java 15中引入的实验性GC,目标是在非常短的停顿时间内回收大量垃圾。• Java 14中引入的实验性GC,目标是在非常短的停顿时间内回收大量垃圾。• 目标是减少停顿时间,使用标记-整理(Mark-Compact)算法。• 多线程收集器,使用多个线程进行垃圾回收,减少停顿时间。• 以并发方式进行垃圾回收,减少停顿时间。
2025-04-06 00:40:27
349
原创 【java】在 Java 中,获取一个类的`Class`对象有多种方式
对象代表了 Java 中的一个类或接口的运行时类信息,可以用于反射操作。• 通过创建对象间接获取:使用反射创建对象后,通过对象的。:通过类的完全限定名加载类,不会触发类的初始化。这种方法在加载类时会触发类的初始化。方法也可以通过类的完全限定名来加载类并获取。(Java 9+):通过类的完全限定名获取。根据你的具体需求,可以选择合适的方法来获取。方法可以通过类的完全限定名来获取。在 Java 中,获取一个类的。:通过类的完全限定名获取。对象,会触发类的初始化。方法,可以获取该对象的。方法(Java 9+)
2025-04-05 23:25:56
291
原创 【java】Class.newInstance()
方法会调用类的无参构造函数来创建对象。如果类没有无参构造函数,或者无参构造函数不可访问,会抛出异常。是一个用于创建类的新实例的方法。它调用类的无参构造函数来创建对象。• 不支持私有构造函数:如果类的无参构造函数是私有的,:调用类的无参构造函数来创建对象,但已被废弃。方法已经被标记为废弃,推荐使用其他替代方法。方法可以更灵活地创建对象,支持私有构造函数。的组合,你可以更灵活地创建类的实例,同时避免。:更灵活的替代方法,可以处理私有构造函数。:推荐的替代方法,支持私有构造函数。被标记为废弃,推荐使用替代方法。
2025-04-05 23:15:48
290
原创 在 macOS 上安装和配置 Aria2 的详细步骤
通过以上步骤,你可以在 macOS 上安装和配置 Aria2,实现高效的文件下载和管理。Aria2 的强大功能和灵活配置使其成为理想的下载工具。创建一个 LaunchAgent 配置文件,使 Aria2 在开机时自动启动。Homebrew 是 macOS 上的包管理器,可以方便地安装和管理软件包。如果你不想使用 Homebrew,可以下载预编译的 Aria2 二进制文件。• 在 AriaNg 中配置 Aria2 的 RPC 地址(默认为`• 下载完成后,挂载 DMG 文件并安装 Aria2。
2025-04-05 13:33:13
1131
原创 【无标题】object,wait,notifyAll
它使得线程可以暂停执行并释放锁,直到其他线程通过。方法使得当前线程暂停执行,并释放当前对象的锁,直到其他线程调用该对象的。• 生产者-消费者模式:生产者线程生成数据,消费者线程消费数据。• 超时机制:如果指定了超时时间,线程会在超时后自动唤醒。:使当前线程等待,直到其他线程调用该对象的。:使当前线程等待,直到其他线程调用该对象的。:使当前线程等待,直到其他线程调用该对象的。方法时,当前线程会释放当前对象的锁。,可以实现高效的线程间协作和同步。方法,用于线程间的协作和同步。• 线程中断:如果线程被中断,
2025-04-05 13:02:05
238
原创 JSON相关的Java库使用指南
以上介绍了几个常用的JSON相关Java库,每个库都有其特点和适用场景。Gson简单易用,适合初学者;Jackson功能强大,支持多种数据绑定方式;JSON.simple则提供了基本的JSON处理功能。在实际开发中,你可以根据项目的需求选择合适的库。
2025-03-23 19:31:15
896
原创 jLine3使用指南
jLine3是一个功能强大的Java库,它可以帮助开发者轻松地创建出交互式命令行应用程序。通过使用jLine3,你可以实现命令行编辑、历史记录、自动补全、语法高亮等功能,提升用户体验。希望本指南能帮助你快速上手jLine3。有时候,你可能需要自定义命令解析逻辑,以处理更复杂的命令。case "ls" : System . out . println("执行ls命令,参数: " + Arrays . toString(arguments));
2025-03-23 16:13:46
1116
原创 .gitignore使用指南
gitignore是一个文本文件,用于告诉Git哪些文件或目录在版本控制中应该被忽略。当你执行git add命令时,Git会参考.gitignore文件的内容,不会将其中指定的文件添加到暂存区。
2025-03-23 14:54:19
2932
原创 Hugo教程
Hugo允许你自定义布局模板,以满足特定的页面显示需求。你可以在layouts目录下创建或修改相应的模板文件。然后编辑文件,根据需要调整文章的显示样式。部分模板可以帮助你在多个页面中复用代码。在目录下创建自定义的部分模板,例如</</</</</</然后在其他模板中通过引用该部分模板。除了使用-d参数指定生成静态文件的目录,还可以在在url = "/"weight = 1weight = 2可以在archetypes目录下创建自定义文章模板,例如posts.md------在assets/js。
2025-03-18 00:47:52
1020
原创 Java开源软件列表
以上是补充后的一些常见的Java开源软件,它们在不同的场景中都有广泛的应用。以上是补充后的一些常见的Java开源软件,它们在不同的场景中都有广泛的应用。以上是补充后的一些常见的Java开源软件,它们在不同的场景中都有广泛的应用。以上是补充后的一些常见的Java开源软件,它们在不同的场景中都有广泛的应用。
2025-03-16 02:49:30
897
原创 Brew命令使用指南
Homebrew(简称Brew)是一款流行的Mac OS包管理工具,类似于Linux系统中的apt-get或yum。它可以帮助用户轻松地安装、更新和卸载各种软件包,包括开发工具、命令行工具、图形化应用等。通过Homebrew,你可以方便快捷地管理Mac上的软件包。掌握其基本的安装和使用方法,可以大大提高你的工作效率。
2025-03-16 02:27:49
3422
原创 OpenSSL 的主要功能及其示例命令
OpenSSL 是一个功能强大的工具,涵盖了从密钥生成、证书管理到数据加密解密的各个方面。OpenSSL 是一个功能强大的开源工具包,用于处理各种与加密相关的任务,包括生成密钥、创建证书、加密解密数据、验证证书等。• 说明:使用私钥生成一个自签名的 X.509 证书,有效期为 365 天,保存到。• 说明:使用 CA 证书和私钥签署一个证书签名请求(CSR),生成签名后的证书。• 说明:生成一个 CA 私钥和自签名的 CA 证书,有效期为 3650 天。• 说明:生成一个证书签名请求(CSR),保存到。
2025-03-12 23:58:22
767
原创 使用 OpenSSL 生成的 RSA 私钥文件(如`prikey.pem`)可以用于加密和解密数据
• 数据大小限制:RSA 加密对数据大小有限制,通常不超过密钥长度。对于大文件,建议使用对称加密(如 AES)结合 RSA 加密。以下是一个完整的示例,展示如何使用 OpenSSL 命令行工具和私钥文件对数据进行加密和解密。• 密钥长度:建议使用更高的密钥长度(如 2048 或 4096 位)以提高安全性。通过上述步骤,你可以使用 OpenSSL 和 RSA 密钥对数据进行加密和解密。使用 OpenSSL 生成的 RSA 私钥文件(如。使用私钥对加密后的数据进行解密。,你可以使用公钥对其进行加密。
2025-03-12 23:34:50
462
原创 【java】Java Cryptography Extension (JCE)
【代码】【java】Java Cryptography Extension (JCE)
2024-08-18 19:01:36
611
原创 [maven]JCE cannot authenticate the provider BC
【代码】[maven]JCE cannot authenticate the provider BC。
2024-08-11 10:01:45
342
原创 解决 “该设备正在使用中“ 无法弹出 USB 大容量存储设备的问题
出现"该设备正在使用中"无法弹出 USB 大容量存储设备的问题,通常有以下几种解决方案:
2024-08-03 19:55:40
2789
原创 Kubernetes(K8s)部署nfs服务
1.编写yaml文件nfs-app-deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: labels: run: nfs-app name: nfs-app namespace: cbfspec: replicas: 1 selector: matchLabels: run: nfs-app strategy: rollingUpdate: maxSurge
2021-10-03 23:19:04
404
原创 windows搭建Kubernetes(K8s)
1.安装kubectl 1.下载kubectl.exe https://minikube.sigs.k8s.io/docs/start/ https://dl.k8s.io/release/v1.22.0/bin/windows/amd64/kubectl.exe # c:\Users\admin\Desktop\temp\k8s\kubectl.exe 2.添加环境变量 Path: c:\Users\admin\Desktop\temp\k8s2.安装minik
2021-10-03 18:20:32
571
原创 vs2015 + opencv 配置
1.vs2015配置1.解压opencv-3.4.1-vc14_vc15.exe到c:\2.vs2015选x643.包含目录 c:\opencv\build\include c:\opencv\build\include\opencv c:\opencv\build\include\opencv24.库文件 c:\opencv\build\x64\vc14\lib5.输入...
2020-03-17 16:12:23
201
zlib库的使用,可以压缩和解压文件夹.zip
2020-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人