- 博客(300)
- 资源 (6)
- 收藏
- 关注
原创 redis相关问题,你能回答几个?
Redis 是一个高性能的内存键值数据库,支持多种数据结构(如字符串、哈希、列表、集合、有序集合等),常用于缓存、分布式锁、消息队列、排行榜、会话存储等。:使用连接池(如 JedisPool)、批量操作(如 Pipeline)。:测试候选人对 Redis 缓存常见问题的理解和解决能力。:考察候选人对 Redis 的基本概念和使用场景的理解。:测试候选人对 Redis 高可用和分布式架构的掌握。:考察候选人对 Redis 架构和性能原理的理解。:测试候选人对 Redis 数据持久化的掌握。
2025-04-02 10:25:45
806
原创 Elasticsearch 证书问题解决
javax.net.ssl.SSLHandshakeException: PKIX path building failed 是 Java 在尝试建立 SSL/TLS 连接时发生的常见问题。具体错误信息表明,客户端无法验证服务器的证书,因为它找不到从服务器证书到受信任根证书的有效证书路径(即信任链构建失败)。在你的案例中,这个错误发生在使用 Elasticsearch 的 RestClient(版本 8.15.5)连接 Elasticsearch 服务器时。
2025-04-02 10:18:12
910
原创 作为面试官,我会设计 10 个 MyBatis 相关的面试问题,覆盖基础知识、核心功能、性能优化和常见问题,旨在全面评估候选人对 MyBatis ORM 框架的理解和实践能力
测试候选人对 MyBatis 扩展能力的掌握。预期回答工作原理:通过拦截器(Interceptor)拦截四大对象(Executor、ParameterHandler、ResultSetHandler、StatementHandler)。编写插件。
2025-03-04 09:46:54
659
原创 Linux安装Docker完整教程
docker安装使用教程。Kubernetes 是一个功能强大的容器编排工具,适合微服务、跨云部署、高可用等场景。初学者可以从本地环境(如 Minikube 或 Kind)入手,通过创建 Deployment、Service 等资源逐步熟悉其核心概念。在生产环境中,建议结合 Helm 等工具提升运维效率,同时通过云服务托管减少管理复杂性。
2025-02-17 11:01:16
2339
原创 org.springframework.boot.autoconfigure.AutoConfiguration.imports为什么使用?如何使用?
如果你了解过spring boot自动装配的原理,那么你可以很容易知道,在项目根目录以外的Bean,也就是导入的spring-boot-starter-***的maven依赖 是根据 /META-INF/spring.factories下的文件去进行加载的。是一种手段,用于为 Spring Boot 的自动配置类提供额外的配置信息,或者使得某些类被自动引入,从而简化 Spring Boot 应用的配置过程。它使得开发者可以通过导入其他配置类来扩展自动配置的功能,避免代码冗余,提升代码的可维护性。
2025-02-13 10:27:56
2130
1
原创 2025制定一个高级java开发路线:分布式系统、多线程编程、高并发经验
通过这个规划,你将逐步掌握分布式系统设计及高并发编程的核心技术,并具备应用这些技能解决实际问题的能力。两部分,帮助逐步掌握分布式系统设计及高并发编程的核心技能。以下是针对目标要求的系统性学习规划,分为。
2025-01-13 17:51:01
1249
原创 Kafka中是怎么体现消息顺序性的?
单个分区的顺序性:Kafka 保证每个分区内的消息按发送顺序消费。跨分区的顺序性:Kafka 无法保证跨分区的消息顺序。控制分区:通过设置相同的消息key,可以确保相关消息发送到同一分区,从而保证顺序性。消费者与分区的关系:消费者可以并行处理多个分区的消息,但每个分区内的消息会被顺序消费。为了保证顺序性,通常你需要设计好分区策略,选择合适的消费者组,使用key来确保相关消息被发送到同一个分区。
2025-01-13 16:18:52
624
原创 面试官:Spring 框架有哪些技术?
Spring 框架已经不仅仅是一个简单的容器,它涉及到多个方面的技术栈,从数据库到 Web 开发、从安全到消息队列,再到微服务、批处理等。每个模块都可以独立使用,但它们也能很好的协同工作,帮助开发者构建复杂、可扩展和高效的企业级应用。
2025-01-02 22:05:22
601
原创 解释下什么是面向对象?面向对象和面向过程的区别?
使用new关键字:最直接的方式,创建对象并调用构造方法。使用反射 (和:动态创建对象。通过clone()方法:复制现有对象(需要实现Cloneable接口)。工厂方法模式:通过工厂方法创建对象,封装了创建对象的过程。序列化与反序列化:通过序列化和反序列化对象来创建新对象。对象反序列化:通过将对象的字节流传输并恢复对象状态,创建对象。不同的创建方式适用于不同的场景,选择合适的方法可以提高代码的可维护性和灵活性。JVM(Java虚拟机): JVM是Java虚拟机,它是Java运行时环境中的核心部分。
2024-12-23 18:05:46
1119
1
原创 Linux Ubuntu 安装配置RabbitMQ,springboot使用RabbitMQ
持久化消息:确保消息存储在磁盘上,防止服务宕机后丢失。发布确认机制:确保生产者能确认消息是否成功发送到队列。消费者手动应答:确保消息被消费者成功处理后才从队列中移除。死信队列:处理失败消息,避免消息丢失。限流机制:防止消费者过载,保证消息被及时处理。集群与高可用:确保 RabbitMQ 服务的稳定性。这些机制可以结合使用,根据业务需求选择最合适的方式来保证消息的可靠性。
2024-12-06 15:33:57
1151
原创 GitHub 2FA双重身份验证认证易懂教程
GitHub 2FA双重身份验证认证易懂教程,很多人真的是不会写教程!!!看了几个文章写的断章取义,看不懂。那我就来写个简单易懂的文档吧。
2024-12-05 17:23:30
730
原创 遗传算法详解
总的来说,遗传算法是一种强大的优化工具,它通过模拟自然进化过程,为解决复杂的优化问题提供了一种有效的方法。随着计算能力的提升和算法本身的不断改进,遗传算法的应用范围将进一步扩大,其在科学研究和工程实践中的作用也将更加显著。:遗传算法的核心思想是通过选择、交叉和变异等操作,模拟自然界中生物的进化过程,从而在问题的解空间中寻找最优解[^4^]。:遗传算法广泛应用于各种优化问题,如函数优化、组合优化等,特别是在传统方法难以解决的复杂问题上显示出其优势[^1^]。适应度函数的设计与问题的目标函数密切相关。
2024-11-25 14:55:53
632
原创 Java 高级开发需要会哪些技术?
5. 项目管理和团队协作敏捷开发:理解敏捷开发流程(如 Scrum、Kanban)并能够在团队中实施。代码审查和指导:能够进行代码审查,指导团队成员的技术成长。6. 文档和沟通能力技术文档:能够撰写清晰的技术文档,记录架构设计、API 设计和系统流程。沟通能力:能够与不同团队(开发、测试、运维、产品等)有效沟通,协调各方需求。7. 持续学习和适应能力技术更新:保持对新技术和行业趋势的关注,持续学习和适应新的工具和方法。解决问题的能力:能够快速分析和解决复杂的技术问题。
2024-10-12 10:56:16
896
1
原创 面试或工作中的经典问题共享
工具作用域限流颗粒度使用场景Nginx网络层、应用入口基于 IP、请求数、连接数等较粗粒度的限流防止 DDoS 攻击,限制 IP 流量GatewayAPI 网关层基于 API 路由、用户、IP 等精细化限流微服务 API 限流,保护特定服务Sentinel应用内部,业务逻辑和微服务保护细粒度限流,支持方法级、参数级限流精确控制单个接口、方法、热点参数流量。
2024-09-19 15:34:59
1202
原创 springboot配置多数据源
springboot配置多数据源学习新技术,争做新青年,欢迎围观---获取数据源:null,数据源为null时默认使用主数据源的。
2024-09-12 16:23:07
914
1
原创 若依框架使用MyBatis-Plus中的baseMapper的方法报错Invalid bound statement (not found):
若依框架使用MyBatis-Plus中的baseMapper的方法报错Invalid bound statement (not found):
2024-09-09 17:52:16
1009
2
原创 在MyBatis中,如何将数据库中的字符串类型映射为枚举类型?
网上看了很多教程。说了很多,但是都没说到重点!很简单,xml文件中,··· 使用resultType,而不是使用resultMap就可以了。
2024-05-11 11:55:14
605
原创 redis配置出错RedisConfig required a bean of type ‘org.springframework.data.redis.connection.RedisConnect
在网上看到好多解决方案都是说,把依赖换成。就很烦,出现问题网上查很久解决不了。可是我本来使用的就是这个啊。
2024-04-26 11:16:32
1110
原创 Java虚拟机(JVM)的调优是为了提高Java应用程序的性能、稳定性和资源利用率
这些是一些常见的JVM调优技巧,实际的调优过程可能需要根据具体的应用程序和部署环境进行进一步的调整。在进行JVM调优时,建议先了解应用程序的性能特征和需求,然后根据实际情况进行调整。Java虚拟机(JVM)的调优是为了提高Java应用程序的性能、稳定性和资源利用率。根据应用程序的特性选择合适的垃圾收集器。升级到较新的JVM版本,以获取性能和稳定性的提升。根据硬件配置和应用程序需求,调整线程池的大小、垃圾收集线程数等。合理的堆大小可以减少垃圾收集的频率。设置堆的大小以适应应用程序的需求。
2024-02-26 17:41:26
457
1
原创 objectMapper、ObjectNode、JsonNode调用接口时进行参数组装
运行结果:{"toUser":["s1825","s1824"],"content":"测试信息,请忽略!"}是 Jackson 库中的一个核心类,用于将 Java 对象序列化为 JSON 格式或将 JSON 数据反序列化为 Java 对象。Jackson 是一个流行的 Java JSON 处理库,广泛用于处理 JSON 数据。以下是的一些基本用法:支持许多配置选项,例如设置日期格式、忽略空值、自定义序列化器和反序列化器等。提供了强大的功能,适用于各种 JSON 处理场景。ObjectNode。
2024-02-22 11:04:54
841
原创 自定义异常
Exception Handling in Java is one of the effective means to handle runtime errors so that the regular flow of the application can be preserved. Java Exception Handling is a mechanism to handle runtime errors such as ClassNotFoundException, IOException, SQL
2024-01-26 15:43:39
674
原创 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。请你用整数形式返回 nums 中的特定元素之 和 ,这些特定元素满足:其对应下标的二进制表示中恰存在 k 个置位。整数的二进制表
十进制转为2进制:1 使用 Integer.toBinaryString() 方法:这是 Integer 类的一个方法,可以直接将十进制数转换为二进制数2 使用 Integer.toString() 方法:我们可以使用 Integer 类的 toString() 方法将十进制数转换为二进制数。此方法有两个参数,第一个参数是十进制数,第二个参数是我们要转换的基数。对于二进制,基数为2。
2024-01-25 13:48:00
717
原创 富文本中的参数如何设置大小?
就无法随意设置参数的格式了.当字数过多时就会出现显示不全,有没有大佬知道如何解决?富文本里如果直接显示的数据可以随意调节大小,颜色等格式.但是如果数据是动态的参数。
2023-08-18 10:24:08
312
原创 给你一个字符串s,输出s能够组成的所有不同的字符串
编程实现:给你一个字符串s,输出s能够组成的所有不同的字符串. * 如:s="abc", * 输出:abc,acb,bac,bca,cba,cab
2023-06-02 00:33:46
470
原创 There are test failures. Please refer to /Users/andy_mac/CodeSpace/springboot/springboot202304/demo/
解决方法1:下载mysql-connector-java.jar。方法2:从maven仓库引入依赖。
2023-04-08 20:27:20
640
原创 创建数据库错误注意事项
其实错误就是单引号的问题,数据库中不能使用单引号,看着像是单引号,但是不是,而是esc按键下面的那个按键打出来的(英文模式下)SQL2是错误的,使用了单引号后字段变为了绿色,区别:单引号是竖直向下的,`是写倾斜方向的。对比一下SQL1,SQL2有哪些区别?放在在线笔记的sql中就能看出区别了。运行证明1是正确的,2是错误的!咋一看几乎一摸一样。但是,2错误在哪里呢?
2023-02-11 21:23:54
245
原创 执行操作后的变量值,我的题解首次优于官方
我的想法也很简单,就是逐个读取数据,然后判断该元素是否包含“--”或者“++”其中之一就可以了。--X:X 减 1 ,X = 0 - 1 = -1。X++:X 加 1 ,X = -1 + 1 = 0。X++:X 加 1 ,X = 0 + 1 = 1。,这是由操作组成的一个列表,返回执行所有操作后,++X:X 加 1 ,X = 0 + 1 = 1。++X:X 加 1 ,X = 1 + 1 = 2。X++:X 加 1 ,X = 2 + 1 = 3。感觉内存占比挺大的。比我的题解更耗内存!
2022-12-23 21:28:48
600
原创 win11合盖不休眠怎么设置?
win11合盖不休眠设置方法现在win电脑都是标配win11了,程序员们有时会遇到下班后回去继续加班,但是又不想带着公司的电脑,这时就可以使用远程控制自己的电脑,使用软件todesk,把公司的电脑合上盖子就可以了,而且还处于正常的开机状态。第一步:搜索【控制面板】 点击【硬件和声音】选择 电源选项【更改电影按钮的功能】 关闭盖子时设置为 【不采取任何操作】
2022-12-07 22:13:51
2805
原创 移动所有球到每个盒子所需的最小操作数有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes ,其中 boxes[i] 的值为 ‘0‘ 表示第 i 个盒子是 空 的,而 boxes
3) 第 3 个盒子:将一个小球从第 1 个盒子移动到第 3 个盒子,需要 2 步操作。将一个小球从第 2 个盒子移动到第 3 个盒子,需要 1 步操作。1) 第 1 个盒子:将一个小球从第 2 个盒子移动到第 1 个盒子,需要 1 步操作。2) 第 2 个盒子:将一个小球从第 1 个盒子移动到第 2 个盒子,需要 1 步操作。注意,操作执行后,某些盒子中可能会存在不止一个小球。不停止的刷题,逐渐的做中等难度的题目也得心应手了。小球从某个盒子移动到一个与之相邻的盒子中。是将所有小球移动到第。
2022-12-02 23:51:24
220
原创 情感丰富的文字
例如,以 "hello" 为例,我们可以对字母组 "o" 扩张得到 "hellooo",但是无法以同样的方法得到 "helloo" 因为字母组 "oo" 长度小于 3。此外,我们可以进行另一种扩张 "ll" -> "lllll" 以获得 "helllllooo"。我们将相邻字母都相同的一串字符定义为相同字母组,例如:"h", "eee", "ll", "ooo"。我们能通过扩张 "hello" 的 "e" 和 "o" 来得到 "heeellooo"。输入一组查询单词,输出其中可扩张的单词数量。
2022-11-25 21:18:40
169
原创 Java 求数组、list共有的元素
我们通常会遇到需要求两个数组中共同的元素,普通的方法就是利用两个for循环就可以得到结果,但是一般不建议这样写。下面我们来探讨一下,更多的方法来解决这个问题。总体来看,感觉都没有那种直接可以调用的方法来使用,比如Python中就会提供一些直接求两个list的这种共有的元素,以及交集并集。Java中还是需要避免不了for循环。如果你有更好的方法,欢迎推荐。求两个数组的共有元素。
2022-11-13 12:47:59
759
1
原创 请你设计一个可以解释字符串 command 的 Goal 解析器
请你设计一个可以解释字符串command的。command由"G"、"()"和/或"(al)"按某种顺序组成。Goal 解析器会将"G"解释为字符串"G"、"()"解释为字符串"o","(al)"解释为字符串"al"。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串command,返回对command的解释结果。"Goal"Goal 解析器解释命令的步骤如下所示:G -> G() -> o(al) -> al最后连接得到的结果是 "Goal""Gooooal"
2022-11-06 17:26:25
560
原创 交替合并字符串
开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。合并后: a p b q r s。合并后: a p b q c d。合并后: a p b q c r。
2022-10-23 22:40:22
214
原创 ribbon实现负载均衡和自定义算法
Intellij IDEA的查找资料非常方便,默认的快捷键是双击Shift键搜索Java内部类 快捷键:shift+shift 搜索IRule 类重写随机实现类//////某服务运行的总次数//当前从哪一个服务获取数据}} else {}}//生成随机数// 自定义,每个服务执行5次, 共有3个服务。total++;}}} else {}}}}}}}}}使用自己定义的策略。
2022-10-13 15:44:37
525
原创 仅执行一次字符串交换能否使两个字符串相等
给你长度相等的两个字符串s1和s2。一次操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对执行就可以使两个字符串相等,返回true;否则,返回false。true例如,交换 s2 中的第一个和最后一个字符可以得到 "bank"false一次字符串交换无法使两个字符串相等true两个字符串已经相等,所以不需要进行字符串交换。
2022-10-11 15:05:11
214
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人