Java

  • Published on
    Memory overflows in Java not only cause application crashes but can also lead to potential performance issues. This article provides an in-depth analysis of different types of memory overflows in Java, such as heap overflow, stack overflow, and MetaSpace overflow. It also offers effective troubleshooting tools and solutions to help you improve your application's stability.
  • Published on
    In the modern world of software development, editors and Integrated Development Environments (IDEs) are indispensable tools for developers. However, the competition and choice between these tools often cause headaches for developers. Some are loyal to the long-standing Visual Studio, others prefer the lightweight Visual Studio Code, and some opt for the more specialized JetBrains suite. However, these tools remain fragmented and difficult to unify. This could all change with the advent of a next-generation AI editor called Cursor.
  • Published on
    在现代软件开发的世界里,编辑器和 IDE(集成开发环境)是开发者不可或缺的工具。然而,这些工具之间的竞争与选择往往让开发者头疼不已。有些人忠于老牌的 Visual Studio,另一些人则更喜欢轻量级的 Visual Studio Code,还有些人选择了更为专注的 JetBrains 系列。然而,这些工具彼此割裂,难以统一。这一切可能会因为一款名为 Cursor 的下一代 AI 编辑器而彻底改变。
  • Published on
    Disruptor 是一种高性能的消息传递框架,最初由 LMAX 交易所开发,旨在解决高并发环境下的性能瓶颈问题。它的设计理念是通过减少锁的使用和内存屏障的数量,从而实现低延迟和高吞吐量的消息传递。本文将对 Disruptor 的核心代码进行解析,帮助大家理解其工作原理。
  • Published on
    RBAC 是一种安全模型,它将系统访问权限限制为授权用户。在 Odoo 中,这意味着不同的用户根据其角色拥有不同的访问权限级别。每个角色都由一组权限定义,确保用户只能访问其特定任务所需的数据和功能。
  • Published on
    最近收到了运维的提醒,说我们一天 ES 日志的占用空间超过了 200G,我心里一惊,一刀切把日志设置成 ERROR 级别肯定不合理,会影响业务,只能考虑怎么通过环境变量或者配置动态设置日志级别。本文将介绍如何实现这一目标,并配置默认日志级别。
  • Published on
    在Spring Boot项目中,可以使用Logback作为日志框架,配置实现不打印包含关键字的日志。关键字过滤可以帮助开发人员快速定位问题,不输出包含特定关键字的日志信息。
  • Published on
    ```Java 反例: Controller 里面直接传入的是 DO 对象 public ResultDTO<String> savePersonalFinance(@ApiParam @RequestBody AccountEcomFinanceAuditDO entity, @RequestHeader(value = "Accept-Language") String language) { String bizId = ecomFinanceAuditService.savePersonalFinance(entity, language); return ResultDTO.ok(bizId); } ```
  • Published on
    在现代的软件开发中,优化数据访问性能是提高应用性能和用户体验的关键。通过合理地运用各种数据访问模式,我们可以显著提升应用的效率和可扩展性。本文将介绍六种常见的数据访问模式,包括Cache Aside、Materialized View、CQRS、Event Sourcing、Index Table和Sharding,帮助读者更好地理解和应用这些模式。
  • Published on
    在微服务架构中,Kubernetes(简称为 k8s)已经成为了不可或缺的基础设施管理工具。而Spring Boot和Dubbo作为常见的Java开发框架和RPC框架,在微服务中也广泛应用。在这篇博客中,我们将探讨如何在Kubernetes环境下,实现Spring Boot + Dubbo应用的优雅停机,确保服务不会出现中断或数据丢失的情况。
  • Published on
    无论我们意识到与否,我们在网络服务和应用程序编程接口(API)的世界中无处不在,但许多 API 的使用却令人头痛。你是否曾经使用某个外部服务的 API 连接时心想:“他们到底在想什么?”我们有过这样的经历,通过 API 连接服务可能会令人困惑。不管是因为设计不佳、文档缺失、频繁变更还是存在 Bug,使用 API 往往都是一种挑战。
  • Published on
    在使用Spring AMQP和RabbitMQ进行消息驱动的微服务开发时,一个常见的场景是在同一个应用中配置多个RabbitMQ的容器(`Container`)以连接不同的队列,以处理不同类型的消息。这时,开发者可能会考虑出于资源利用和管理的便利,让这些容器共用一个`ContainerFactory`。虽然这听起来是一个节省资源和简化配置的好主意,但在实际操作中,如果处理不当,这种做法可能会带来一些问题和挑战,以下是几个常见的坑和相应的解决方案。
  • Published on
    在数据库设计和优化过程中,自增组件(通常指自增主键)的使用是一个常见的实践,尤其是在使用MySQL这类关系型数据库时。自增组件的使用有其明确的好处,尤其是在数据插入和查询效率方面。下面,我们来详细探讨为什么MySQL建议使用自增组件。
  • Published on
    Java 类加载机制是Java虚拟机(JVM)的核心组成部分之一,它负责动态加载、链接和初始化类或接口。这个机制不仅涉及到性能,还直接关联到Java程序的安全性和运行时的动态性。在深入理解Java类加载的威力之前,我们需要先掌握类加载的时机、过程以及类加载器的工作原理。
  • Published on
    在数字化的世界中,电子邮件已成为我们日常生活的重要组成部分。对于程序员来说,实时收取特定邮箱的邮件可能是一个常见且关键的需求。在这里,我将介绍如何使用 Java 和 IMAP(Internet Mail Access Protocol)协议,打造一个能够实时收取邮件的客户端程序。
  • Published on
    Cookies是服务器发送到用户浏览器并保存在本地的小型文本文件。它们通常用于跟踪用户的登录状态、记录用户偏好设置以及存储其他与用户相关的信息。当用户访问同一网站时,浏览器会自动将Cookies发送回服务器,以便服务器可以根据之前存储的信息来提供个性化服务。
  • Published on
    Java 应用 CPU 飙高是我们在日常开发中经常会遇到的问题,本文总结了一种通用的问题定位流程,以及不同问题原因对应的解决方法,让我们在遇到相关问题的时候有非常清晰的思路,助力我们更高效的定位并解决相关线上问题。
  • Published on
    内存溢出是指程序申请内存时,没有足够的内存可以使用;内存溢出通常是由内存泄露引起的,常见的场景是由于有问题的代码申请完内存,却没有及时有效释放,长此以往,程序就申请不到内存,从而导致内存溢出。
  • Published on
    ZGC是一种可扩展和低延迟的JVM垃圾回收器,能够实现大规模Java程序的快速内存分配和回收。在处理高负载情况下,ZGC表现出色,而且它能够与现有的Java应用程序平滑地集成。本文将详细介绍ZGC的原理、配置和使用示例。