- 博客(26)
- 收藏
- 关注
原创 Java虚拟线程和普通线程的区别
虚拟线程适合高并发、I/O 密集型任务,创建和管理更简单,资源消耗更低。平台线程适合 CPU 密集型任务,创建和管理更复杂,资源消耗更高。通过合理选择和使用虚拟线程和平台线程,可以显著提高应用程序的性能和可维护性。
2025-02-14 14:52:37
1201
原创 Java系统中OOM异常解决流程
OOM(Out of Memory)异常是指应用程序在运行时请求的内存超过了系统或虚拟机能够提供的最大内存限制。这通常是由于内存泄漏、内存使用不当或系统资源不足引起的。
2025-02-13 09:31:53
539
原创 Java系统快速接入使用DeepSeek
在Spring Boot系统中成功接入DeepSeek服务,并将其提供给客户使用。如果有更复杂的需求(如私有化部署或定制模型),可以联系DeepSeek团队获取支持。
2025-02-07 11:53:06
10930
1
原创 前端获取用户ip信息
在前端页面获取用户的IP地址并不是一件直接的事情,因为出于隐私和安全考虑,浏览器通常不会直接提供用户的IP地址给前端JavaScript代码。不过,可以通过一些间接的方法来获取用户的IP地址。
2025-01-18 08:15:00
1616
原创 Jvm垃圾回收机制与常见算法
垃圾回收(Garbage Collection,简称 GC)是编程语言运行时环境自动管理内存的一种机制。它的主要目的是自动释放不再使用的对象所占用的内存空间,从而避免内存泄漏和手动管理内存带来的复杂性和错误。在 Java 等高级编程语言中,程序员不需要显式地释放对象的内存,而是由 JVM(Java 虚拟机)中的垃圾回收器自动完成这一任务。GC 的存在使得开发者可以专注于业务逻辑,而不必担心内存管理的细节。
2025-01-17 11:36:13
598
原创 Java虚拟机堆区域的特点
JVM堆被划分为新生代和老年代,新生代又分为Eden区和Survivor区。老年代用于存储长期存活的对象。元空间用于存储类的元数据。垃圾回收器负责管理堆内存中的对象,确保内存的有效利用和性能优化。通过适当的配置参数,可以调整堆的大小和其他相关设置,以满足不同的应用需求。
2025-01-16 15:59:14
988
原创 InnoDB 和 MyISAM的区别
特性InnoDBMyISAM事务支持支持不支持锁机制行级锁表级锁外键约束支持不支持崩溃恢复支持不支持并发性能高并发读写性能较好写操作频繁时性能较差全文索引从 MySQL 5.6 开始支持一直支持内存使用较大较小适用场景高并发读写、复杂应用、数据一致性要求高以读为主、简单应用、日志记录、归档等要查询一个数据库中各个表的存储引擎,可以使用以下几种方法。这里以 MySQL 为例,介绍如何通过 SQL 查询来获取存储引擎信息。选择合适的存储引擎取决于具体的应用需求和性能要求。
2025-01-15 09:07:04
1227
原创 GET 和 POST 请求的区别
GET适合用于获取数据,尤其是当请求不需要改变服务器状态时。POST适合用于提交数据,尤其是当需要传递敏感信息或大量数据时。选择合适的请求方法对于构建高效、安全的 Web 应用非常重要。
2025-01-13 10:35:36
419
原创 Java应用实现中英文互转功能
在Java中实现英文和中文之间的互相转换,通常涉及到文本翻译功能。可以使用一些翻译API来实现这一功能,比如Google Translate API、Microsoft Translator API等。
2025-01-08 16:15:56
2256
原创 消息队列堵塞的几种常用解决方法
消息队列堵塞通常是由于生产者发送消息的速度超过了消费者处理消息的速度,或者消费者在处理某些消息时出现了问题导致无法继续消费。通过上述方法,通常可以有效缓解或解决消息队列堵塞的问题。具体实施时,需要根据实际业务场景选择合适的方法。
2025-01-03 11:41:38
405
原创 Java8新特性Consumer接口的灵活应用
Consumer是 Java 8 提供的一个非常有用的函数式接口,适用于需要对输入参数执行某些操作而不需要返回结果的场景。通过使用Consumer,可以使代码更加简洁和易于维护。
2025-01-02 14:09:14
1254
原创 Java接入阿里云日志服务
如果你选择使用日志服务客户端(Log4j、Logback、SLF4J等),需要在项目中添加相应的依赖。配置你的日志框架(如Logback)以使用阿里云日志服务客户端。通过以上步骤,你可以将系统的日志全部输出到阿里云的日志服务,方便进行日志管理和分析。
2024-12-31 12:00:14
860
原创 集群部署的介绍和简单实现试例
集群部署是指将多个计算节点(通常是服务器)组合在一起,形成一个协同工作的系统,以提供更高的性能、可用性和可靠性。集群部署广泛应用于各种场景,如Web服务、数据库、大数据处理等。
2024-12-27 14:15:29
1189
原创 Spring Boot项目@Cacheable注解的使用
`@Cacheable` 是 Spring 框架中用于缓存的注解之一,它可以帮助你轻松地将方法的结果缓存起来,从而提高应用的性能。下面详细介绍如何使用 `@Cacheable` 注解以及相关的配置和注意事项。
2024-12-25 15:05:38
3988
原创 Java对敏感信息脱敏
系统敏感信息脱敏是一个重要的安全措施,可以保护用户的隐私和数据安全。适用于多种应用场景,包括但不限于用户个人信息、财务信息、身份证号等。
2024-12-23 14:15:46
1342
原创 如何实现集群部署
集群部署是指将多个计算节点(通常是服务器)组合在一起,形成一个协同工作的系统,以提供更高的性能、可用性和可靠性。集群部署广泛应用于各种场景,如Web服务、数据库、大数据处理等。
2024-12-17 11:51:18
1169
原创 Nginx、Docker实现灰度发布
通过以上步骤,可以实现使用 Nginx 负载均衡结合 Docker 容器化部署灰度发布后端服务,从而实现用户无感更新升级的功能。Nginx 将根据一定的规则将流量分配到不同的后端服务版本。常见的规则包括权重分配、IP 段分配、Cookie 分配等。使用 Docker Compose 和 CI/CD 工具(如 Jenkins、GitLab CI)自动化部署流程。更新 Nginx 配置以使用 Docker Compose 定义的网络。启动两个版本的服务容器,并暴露不同的端口。文件来定义服务和网络。
2024-12-16 15:16:51
695
原创 JDK 21新特性
JDK 21 引入了许多重要的新特性和改进,特别是虚拟线程和字符串模板,这些特性显著提升了Java在并发编程和字符串处理方面的性能和易用性。建议访问 Oracle JDK 官方网站 或 OpenJDK 官方网站查询更多新特性详细信息。
2024-12-10 09:00:00
1518
原创 JVM中偏向锁的介绍
偏向锁是JVM中一种重要的锁优化机制,能够在单线程环境下显著提高同步代码的性能。然而,在多线程环境下,偏向锁的效果可能会受到影响,因此需要根据具体的使用场景来决定是否启用偏向锁。
2024-12-09 17:02:31
304
原创 Java项目中启用偏向锁
但是,如果你需要确保偏向锁已启用,或者在某些特殊情况下需要手动启用,可以按照上述方法进行配置。在Java项目中启用偏向锁(Biased Locking),你需要在启动JVM时添加特定的JVM参数。:如果你使用的是集成开发环境(如IntelliJ IDEA或Eclipse),可以在运行配置中添加VM选项。:如果你的应用程序运行在Docker容器中,可以在Dockerfile中设置JVM参数,或者在运行容器时通过。:如果你是通过脚本启动Java应用程序,可以在启动命令中添加。文件来添加JVM参数。
2024-12-09 16:59:18
449
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人