
JAVA
文章平均质量分 59
东方巴黎~Sunsiny
经验丰富的Java开发工程师,参与过多个大型项目的开发、设计和实施,对新兴技术有强烈的学习兴趣,热衷于推动技术创新和团队成长,有兴趣可私聊我加入技术互动群一起成长!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java项目挂机自动重启操作指南
前段时间有个伙伴问我,java项目挂机怎么自动重启。今天就写一个 .sh脚本来实现应用挂机的自动重启功能。把 restartapp.sh 和jar包放在同一个文件夹下面就行。你故意停止 mita 项目,等会儿会发现,项目会重新启动!我的jar路径是: usr/local/server/我的文件名称是: restartapp.sh。原创 2025-04-01 16:18:28 · 287 阅读 · 0 评论 -
java注解-@Conditional
要使用,你需要定义一个类实现Condition接口,并重写matches方法。:提供当前环境的信息,包括当前的 BeanFactory 和 Environment。:提供注解的元数据信息,包括注解所在的类、方法等。matches方法需要返回一个布尔值,表示条件是否满足。原创 2024-11-27 13:03:15 · 804 阅读 · 0 评论 -
java的常用注解:@TableId
TableId 是 MyBatis-Plus 提供的一个注解,用于标识实体类中的主键字段。它可以帮助 MyBatis-Plus在执行数据库操作时正确地识别和处理主键字段。原创 2024-11-26 19:08:13 · 2127 阅读 · 0 评论 -
java-优化算法
遗传算法(Genetic Algorithms, GA)是一种模拟生物进化过程的启发式搜索算法,它通过选择、交叉(杂交)和变异等操作在候选解的种群中搜索问题的最优解或近似最优解。原创 2024-11-25 09:59:29 · 1033 阅读 · 0 评论 -
java-字符串处理算法
KMP算法是一种用于字符串搜索的高效算法,它可以在O(n+m)的时间复杂度内找到模式串在文本串中的第一次出现的位置,其中n是文本串的长度,m是模式串的长度。原创 2024-11-25 09:54:59 · 378 阅读 · 0 评论 -
java-加密算法
AES是一种广泛使用的对称加密算法,采用分组密码体制,每个分组数据的长度为128位(16个字节),密钥长度可以是128位、192位或256位。AES支持多种加密模式,常用的有ECB、CBC等模式。原创 2024-11-25 09:52:27 · 369 阅读 · 0 评论 -
java-分而治之算法
分而治之(Divide and Conquer)算法是一种解决问题的策略,它将一个复杂的问题分解成若干个相同或相似的子问题,递归地解决这些子问题,然后将它们的解合并以解决原始问题。这种算法通常用于排序、搜索、数学计算等领域。原创 2024-11-25 09:49:50 · 906 阅读 · 0 评论 -
java-贪心算法
霍夫曼编码是一种使用变长编码表对数据进行编码的算法,由David A. Huffman在1952年发明。它是一种贪心算法,用于数据压缩。霍夫曼编码通过构建一个二叉树(霍夫曼树),树中的每个叶子节点代表一个字符,树的权重表示字符出现的频率。构建树的过程中,总是将两个权重最小的节点合并。原创 2024-11-20 18:41:55 · 1236 阅读 · 0 评论 -
java-动态规划算法
这些案例展示了动态规划在解决不同问题中的应用,包括计算斐波那契数列、解决背包问题、计算编辑距离、寻找最长公共子序列和最长递增子序列。斐波那契数列是一个数列,其中每个数字是前两个数字的和,通常形式为0, 1, 1, 2, 3, 5, 8, 13, …0/1背包问题是动态规划中的经典问题,给定一组物品,每个物品有其重量和价值,在限定的总重量内,选择物品以使得总价值最大。最长公共子序列问题是找出两个序列的最长子序列,该子序列必须是两个序列的子序列。最长递增子序列问题是找出一个数组中的最长递增子序列。原创 2024-11-20 18:36:18 · 262 阅读 · 0 评论 -
java-图算法
迪杰斯特拉算法是一种用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。它适用于有向图和无向图,且边的权重必须为非负数。普里姆算法是一种贪心算法,用于在加权连通图中找到最小生成树。它从一个任意顶点开始,逐渐增加树中的顶点,直到包含所有顶点。克鲁斯卡尔算法也是一种贪心算法,用于在加权连通图中找到最小生成树。它按边的权重递增顺序考虑边,如果加入这条。弗洛伊德算法用于在加权图中找到所有顶点对之间的最短路径。它可以处理正权边和负权边,但不能处理负权环。原创 2024-11-20 18:31:02 · 370 阅读 · 0 评论 -
java-搜索算法
线性搜索(Linear Search)二分搜索(Binary Search)深度优先搜索(Depth-First Search, DFS)广度优先搜索(Breadth-First Search, BFS)原创 2024-11-20 18:24:03 · 510 阅读 · 0 评论 -
java-排序算法汇总
如果你处理的是大数据量且对稳定性有要求,或者数据已经是接近有序的状态,那么归并排序可能是更好的选择,因为它的性能稳定,不受输入数据的影响。如果你处理的是一般数据量且对空间有限制,或者数据分布均匀,那么快速排序可能更合适,因为它的空间效率高,且在平均情况下效率也很高。在实际应用中,很多系统(如Java的和C++的)会使用一种混合策略,例如先使用快速排序,当递归深度达到一定程度时切换到堆排序或插入排序,以避免快速排序的最坏情况性能。此外,还可以通过采样和选择合适的基准值来优化快速排序的性能。原创 2024-11-20 18:17:23 · 1103 阅读 · 0 评论 -
java里面有哪些著名的算法?
这些算法在Java中都有广泛的应用,从基本的数据结构操作到复杂的机器学习模型,都是构建高效、可靠软件解决方案的基础。Java的标准库(如。Java作为一种广泛使用的编程语言,实现了众多著名的算法和数据结构。)也提供了许多内置的算法实现,使得开发者可以轻松地在项目中使用这些算法。原创 2024-11-20 18:08:29 · 355 阅读 · 0 评论 -
Spring Boot 3.3高级日志配置详解:从 Logback 到 Log4j 2 的全面掌握
从 Logback 切换到 Log4j 2 涉及到依赖管理、配置文件的更改、属性设置的调整以及可能的性能优化。Spring Boot 3.3 提供了灵活的配置选项,使得这种切换相对简单。确保在切换过程中测试你的应用程序,以验证日志记录行为符合预期。原创 2024-11-20 18:06:33 · 1013 阅读 · 0 评论 -
给定数字 [3, 30, 34, 5, 9] 拼接成的最大数字,使用java实现
要解决这个问题,我们需要将给定的数字列表转换为字符串列表,然后根据自定义的比较规则对这些字符串进行排序,最后将排序后的字符串连接起来形成最大的数字。让我们应用这些步骤到给定的例子 [3, 30, 34, 5, 9]:将每个数字转换为字符串:[“3”, “30”, “34”, “5”, “9”]排序后的字符串:[“9”, “5”, “34”, “30”, “3”]拼接字符串:“9534330”因此,给定数字 [3, 30, 34, 5, 9] 拼接成的最大数字是 9534330。原创 2024-11-20 18:00:09 · 726 阅读 · 0 评论 -
java计算文本相似度算法总结
计算两个字符串之间的最小单字符编辑(插入、删除、替换)次数。这是一种衡量字符串差异性的方法,常用于拼写检查和模糊匹配。:一种基于 Jaro 相似度的改进算法,特别适用于拼写检查和模糊匹配。:计算两个字符串之间的最长公共子序列长度,常用于文本差异比较。:通过计算两个字符串的 n-gram 向量的余弦夹角来评估它们的相似度。:基于子串的字符串相似度计算方法,计算它们共有的Q-gram(长度为Q的连续子串)的数量,然后将这个数量除以两个字符串中Q-gram数量较少的那个,得到相似度的比例。原创 2024-11-14 19:06:32 · 2022 阅读 · 0 评论 -
java的算法-余弦相似度
背景:做过财务系统的小伙伴们都知道,财务系统会有一个自动计费的算法,这个算法依赖于计费模板,之前的同事呢些计费公式乱弄,虽然计费名称不一样但是计费公式却是一样的,今天就写一个算法来计算公式代码之间的相似度。原创 2024-11-14 18:56:57 · 584 阅读 · 0 评论 -
java的加密历史发展
保密性:公钥可以公开分享,而私钥必须保密。功能:公钥主要用于加密和验证签名,私钥用于解密和生成签名。生成关系:公钥是从私钥派生的,但私钥不能从公钥推导出来。安全性:私钥的安全性至关重要,一旦私钥泄露,与之相关的加密和签名机制就会受到威胁。在实际应用中,保护私钥的安全是非常重要的,因为私钥的泄露会导致整个非对称加密体系的安全性受到破坏。公钥则可以广泛分发,用于加密信息或验证签名,而不必担心安全问题。功能:私钥用于加密和数字签名,而PIN码用于身份验证。安全性:私钥的安全性要求更高,PIN码相对较弱。原创 2024-11-07 14:32:58 · 1013 阅读 · 0 评论 -
java项目分层开发中,真的有必要定义 VO 吗?
在Java项目分层开发中,定义VO(View Object,视图对象)是否有必要,这取决于几个因素:对于业务逻辑复杂、涉及多端展示的项目,使用VO有助于将展示层与业务逻辑层分离,使得代码结构更加清晰,降低耦合度,提高代码的可维护性和可扩展性。在团队开发中,明确的分层和对象定义有助于团队成员之间的沟通和协作,减少理解成本,提高开发效率。如果项目中不同的客户端或页面对数据展示有不同的需求,VO可以针对这些需求进行定制,而不需要修改服务层的DTO(Data Transfer Object,数据传输对原创 2024-10-29 10:55:34 · 1429 阅读 · 0 评论 -
教你详细使用Spring框架中编程式事务
这个方法通过编程式事务管理确保了数据库操作的原子性。如果在执行业务逻辑时出现异常,事务会回滚,确保数据库状态保持一致。这是处理需要多个数据库操作组合在一起作为一个单一工作单元的常见模式。原创 2024-10-30 15:04:30 · 370 阅读 · 0 评论 -
详解了解权限控制符@PreAuthorize
是一个Spring Security的注解,用于在Spring框架中的方法级别上进行权限控制。这个注解通常用于保护某个方法,确保只有具备特定权限的用户才能访问该方法。这里的 是Spring Security提供的权限注解之一,它允许你定义一个SpEL(Spring Expression Language)表达式,用来在方法执行之前检查用户的权限。解释一下代码片段中的各个部分:在Spring Security中,为不同用户角色设置不同的权限通常涉及以下几个步骤:定义角色和权限:配置用户DetailsServ原创 2024-11-01 09:45:23 · 3917 阅读 · 0 评论 -
Exception in thread “threadPoolTaskExecutor-1“ java.lang.NullPointerException
Exception in thread "threadPoolTaskExecutor-1" java.lang.NullPointerException原创 2024-09-29 13:45:28 · 343 阅读 · 0 评论 -
教你使用ScheduledTaskRegistrar来实现定时任务
SchedulingConfigurer原创 2024-09-29 14:03:48 · 407 阅读 · 0 评论 -
多线程教学2+集合手动分页
这个是集合的手动分页。原创 2023-05-05 16:31:33 · 92 阅读 · 0 评论 -
利用chatGPT写一篇WebClient博客
Java是一种流行的编程语言,在Web开发中也有着广泛的应用。而WebClient则是Java中常用的网络请求库之一,具有简单易用、功能强大等优势。在本篇博客中,我们将探讨Java的WebClient,并分析其使用场景、基本功能以及对于Web开发的帮助。原创 2023-05-06 17:43:47 · 211 阅读 · 0 评论 -
java 获取近一年的月份
/ 对已排序的列表进行逆序排序。* @return 结果。* 获取近一年的月份。原创 2023-07-11 10:39:40 · 739 阅读 · 0 评论 -
java集合类型转换
【代码】java集合类型转换。原创 2023-07-11 10:49:07 · 207 阅读 · 0 评论 -
java的BigDecimal操作
BigDecimal原创 2023-07-11 11:13:32 · 287 阅读 · 0 评论 -
java的@Param引错包导致的问题
当你引错包,就报错。原创 2023-08-02 16:36:03 · 378 阅读 · 0 评论 -
java如何查看线程死锁?
线程死锁怎么排查原创 2024-09-30 13:34:19 · 385 阅读 · 0 评论 -
java项目的pom文件依赖添加
原创 2024-10-10 11:48:40 · 181 阅读 · 0 评论 -
JSONArray根据指定字段去重
JSONArray去重原创 2024-10-15 17:30:37 · 516 阅读 · 0 评论 -
java实现日志按天打印
ERROR级别:配置了ERROR级别的业务日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。ERROR级别:配置了ERROR级别的日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。INFO级别:配置了INFO级别的业务日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。INFO级别:配置了INFO级别的日志文件输出,包括日志文件名格式、最大历史天数和JSON格式的编码器。配置了业务日志的独立输出,包括INFO和ERROR级别的日志文件输出。原创 2024-10-21 11:37:53 · 742 阅读 · 0 评论 -
Xml 相关注解使用
xml转化使用案例原创 2024-10-21 11:47:50 · 1283 阅读 · 0 评论 -
java写一个MD5加密工具
MD5加密工具类原创 2024-10-21 13:18:39 · 310 阅读 · 0 评论 -
java防止表单重复提交的注解@RepeatSubmit
使用 @RepeatSubmit 注解来防止表单重复提交原创 2024-10-21 19:38:22 · 2188 阅读 · 0 评论 -
java实现10万级接口测试demo2
接口高并发压测demo原创 2024-10-23 09:36:42 · 99 阅读 · 0 评论 -
java字段判空方法Assert.hasText()详细讲解
Assert.hasText 方法解析Assert.hasText 是 Spring 框架中提供的一个断言方法,用于检查字符串是否为空或仅包含空白字符。如果字符串不符合条件,则会抛出 IllegalArgumentException 异常,并附带指定的错误消息。方法签名。原创 2024-10-23 10:12:03 · 503 阅读 · 0 评论 -
在Java中如果保证线程A、B、C按顺序执行,可以使用多种同步机制来实现
让线程 A 完成后再启动线程 B,然后让线程 B 完成后再启动线程 C。CyclicBarrier 允许多个线程互相等待,直到达到某个公共屏障点。使用传统的 wait 和 notify 方法来控制线程的执行顺序。使用 FutureTask 可以明确控制线程的执行顺序。Exchanger 允许两个线程在某个点交换数据。可以通过设置适当的计数器来控制线程执行顺序。可以通过信号量来控制线程的执行顺序。原创 2024-10-23 10:53:51 · 266 阅读 · 0 评论 -
java反射的简单详解
这些案例展示了 Java 反射的多种使用场景,从动态加载类到访问私有字段,以及创建动态代理。在插件系统中,反射可以用来加载和管理不同的插件类,允许系统在运行时扩展功能。以下是几个使用 Java 反射的具体案例,展示了反射在不同场景下的应用。可以通过反射访问和修改类中的私有字段和方法,方便在测试或框架中使用。反射虽然灵活,但也有性能开销,使用时应谨慎,尤其是在性能敏感的场合。在实现代理模式时,可以动态创建代理类,并在运行时决定方法的实现。反射依赖类的具体实现,类的结构变化可能导致反射代码失效。原创 2024-10-23 11:30:36 · 306 阅读 · 0 评论