- 博客(203)
- 资源 (94)
- 收藏
- 关注
翻译 Java 中的回文程序
在 FOR 循环中,数字 (num) 的模数被考虑在内,并且它被保存在一个变量中,该变量为循环的每次迭代调用。在 while 循环中,数字 (num) 的模数被考虑在内,并将其保存在每次循环迭代调用的变量中。回文编号,也称为数字回文或数字回文,是一个即使其编号中的数字颠倒也保持不变的数字。正如您可能已经猜到的那样,如果我们反转 1312,它就不是回文,因为反向数字与原始数字不同。在这里,我们将讨论什么是回文,什么是回文数,以及 Java 中的示例回文程序。是的,给定的数字 45354 是一个回文。
2024-08-12 20:52:09 49
原创 Java 仍然受欢迎的原因
是的,另一个“我的语言更好”的帖子。在某些情况下,这是必要的,Java 是 800 磅重的编程平台大猩猩,其解决方案经常被过度设计。这是一件好事,也是 Java 长寿的主要原因。我明白作者的观点,我也不是 IoC 的忠实粉丝,但在这种特定情况下,他是不正确的。JVM的好处是普遍适用的,我在这里提到的大多数特性将使我们的整个联合生态系统受益。这在 Java 中是完全可能的,因为上面的代码是有效的 Java 代码。这篇文章确实提出了一个有趣的例子,对于不经意的观察者来说,这似乎是“正确的事情”,但存在问题。
2024-08-12 20:50:58 527
原创 Java 和低延迟
存在一些用于开发 Java 应用程序的技术,这些技术与使用更传统的用于此目的的语言构建的应用程序的性能要求相匹配,甚至超过这些应用程序的性能要求。它最初的硬件平台是微型计算机,同时被许多不同的用户共享。Java 程序中的线程,就像来自其他应用程序甚至操作系统任务的线程一样,它们对 CPU 的访问由操作系统的一个组件(称为调度器)管理。我的第一反应通常是要求澄清“性能”的实际含义,因为“性能”是两个最常见的度量标准 - 吞吐量和延迟,有时会相互冲突,并且针对其中一个进行优化的方法可能会对另一个产生不利影响。
2024-08-12 20:49:29 341
翻译 Java 模块的优点与示例
在下一节中,我们将创建一个包含两个模块的 Java 模块化应用程序,这将为探索 Java 模块提供帮助,同时也为探索 Java 模块提供了一个良好的开端。现在这个特定的包 car.common.model 是在模块 2 中定义的,由于我们定义了两个模块,因此系统在编译时就知道我们有一个依赖项以及如何解决它。使用 Java 模块,我们不仅可以封装需要对外部世界可用的包(export car.common),而且还可以确保不应该暴露的类或包对外界隐藏。让我们看一下我们的示例服务类,该类在模块 1 中定义。
2024-08-11 20:42:27 46
原创 使用 RxJava 的异步 HTTP 请求
第一个是要压缩的源,第二个是使用两个结果、处理它们并返回其他内容的函数。在本例中,返回类型为 ,它是两个整数的简单元组。这是一项简单的服务,用于生成不同的 HTTP 代码来测试 Web 客户端。在这种情况下,可以提供额外的参数,以在规定的时间内阻止 HTTP 请求。它是一个异步的、易于使用的客户端,也支持 RxJava。它可能是一个非常慢的遗留服务,或者是我们必须使用的一些阻塞 API。在这篇文章中,我们将调用两个 API。如果我们以老式的、非反应性的方式做到这一点,我们将阻塞一个调用线程五秒钟。
2024-08-11 20:41:26 436
原创 如何使用 Hazelcast Viridian Serverless 创建故障转移客户端
在 Hazelcast 中,当客户端无法连接到主集群时,故障转移客户端会自动将其流量重定向到辅助集群。在本教程中,您将更新 Java 客户端中的代码,以便在辅助故障转移集群无法连接到其原始主集群时自动连接到该集群。您将学习如何收集为主集群和辅助集群创建故障转移客户端所需的所有资源,基于示例 Java 客户端创建故障转移客户端,测试故障转移以及为操作添加异常处理。此代码替换原始函数。创建两个 Viridian Serverless 集群,用作主集群和辅助集群,然后下载示例 Java 客户端并将其连接到它们。
2024-08-11 20:37:41 252
翻译 如何使用 Linux 容器
在 Hazelcast 中,当客户端无法连接到主集群时,故障转移客户端会自动将其流量重定向到辅助集群。在本教程中,您将更新 Java 客户端中的代码,以便在辅助故障转移集群无法连接到其原始主集群时自动连接到该集群。您将学习如何收集为主集群和辅助集群创建故障转移客户端所需的所有资源,基于示例 Java 客户端创建故障转移客户端,测试故障转移以及为操作添加异常处理。此代码替换原始函数。创建两个 Viridian Serverless 集群,用作主集群和辅助集群,然后下载示例 Java 客户端并将其连接到它们。
2024-08-10 10:42:06 89
原创 如何使用 Hazelcast Viridian Serverless 创建故障转移客户端
在 Hazelcast 中,当客户端无法连接到主集群时,故障转移客户端会自动将其流量重定向到辅助集群。在本教程中,您将更新 Java 客户端中的代码,以便在辅助故障转移集群无法连接到其原始主集群时自动连接到该集群。您将学习如何收集为主集群和辅助集群创建故障转移客户端所需的所有资源,基于示例 Java 客户端创建故障转移客户端,测试故障转移以及为操作添加异常处理。此代码替换原始函数。创建两个 Viridian Serverless 集群,用作主集群和辅助集群,然后下载示例 Java 客户端并将其连接到它们。
2024-08-10 10:41:21 307
原创 Quarkus中的自定义验证器
REST API 需要验证它收到的数据,而 Quarkus 为验证 REST API 请求对象提供了丰富的内置支持。验证在微服务架构中发挥着越来越重要的作用,因为每个服务都定义并要求验证它所处理的数据。在几种情况下,默认验证是不够的,我们必须为我们的数据实施某种形式的自定义验证。在软件开发中,单元测试是一个至关重要的组件,它提供了许多好处,例如提高代码质量和在开发周期的早期检测缺陷。让我们考虑下面的一个简单的例子,其中我们有一个 House 数据对象和一个 REST API 来创建一个新的 House。
2024-08-10 10:40:34 307
翻译 在运行时停止和恢复 Kafka 生产者/消费者的方法
正如我在之前的博客中提到的,Spring 集成是 Spring Introducer 最强大的模块,它与企业集成模式支持的消息驱动方法一起工作。在这篇博客中,我们讨论了如何使用 REST API 和 Actuator 在运行时停止和恢复 Kafka 客户端或生产者。停止和恢复 Kafka 客户端或生产者的能力对于维护 Kafka 集群的运行状况和确保实时数据管道的平稳运行至关重要。在这篇博客中,我们将探讨如何使用 Java 客户端 API 在运行时停止和恢复 Kafka 客户端或生产者。
2024-08-09 20:10:51 73
原创 高效的任务管理:为您的管理员面板构建基于 Java 的任务执行器服务
Interface Map 提供操作 ,并且 – 它们是原子的,这意味着您提供的任何 lambda 都将是线程安全的,因为它将按顺序执行。在本文中,我们将深入探讨在具有多个 API 服务器和管理面板的服务中调用长时间运行的任务的问题。考虑到管理面板是一个单实例服务,所有任务都在其上执行,我们可以将任务状态存储在内存中,从而可以直接跟踪任务调用和开始/完成事件。我们将讨论该服务的关键组件,研究这种方法的一些优点,并提供见解,以帮助开发人员在为自己的项目实施任务执行器服务时做出明智的决策。
2024-08-09 20:08:27 758
原创 如何使用 JPAStreamer 在 Java 和 SQL 之间进行 LINQ
与 LINQ to SQL 不同,JPAStreamer 不是一个独立的 ORM,而是使用现有的 JPA 提供程序(如 Hibernate)来管理由标准 JPA 实体组成的数据库元模型。最后,球员和他们的分数被打印在控制台中。如果你是一名 Java 开发人员,一直渴望以一种更精简、更直观的方式来查询数据库,类似于 C# 中优雅的 LINQ 构造,那么你应该看看开源库 JPAStreamer。在本文中,我将探讨这个 Java 工具的强大功能,它为您的 Hibernate 查询带来类似 LINQ 的体验。
2024-08-09 20:06:07 618
翻译 如何在 Java 中将文本和形状放置在图像上
在通过我们的图像处理库创建的临时缓冲区中,我们可以发出请求,引用新像素矩阵上的特定点(它与原始图像的确切像素高度和宽度尺寸匹配),就像我们在任何规则 X/Y 轴上绘制点一样。之后,我们需要确定文本应该出现在图像上的位置——这个位置可以用相对于原始图像的确切像素尺寸的 x/y 像素坐标来表示——以及包含文本的不可见“框”的高度和宽度。在构建我们的请求时,在图像顶部创建一个矩形涉及的定制略少。一旦我们按照自己的喜好配置了我们的请求,我们就可以期望在我们指定的位置的图像上看到一个完全定制的矩形形状。
2024-08-07 20:34:35 30
原创 关于 Kafka 分区器的关键细节
但是在没有任何变化的情况下,两组都将以不同的哈希算法的形式使用不同的分区策略:librdkafka 生产者使用 CRC32,Java 生产者使用 Murmur2,因此具有相同键的记录将落在不同的分区中!保证具有相同键的记录落在正确的分区上的机制是一个简单但有效的过程:取键模的哈希值乘以分区数。使用非 Java Kafka 客户端时,启用与 Java 生产者客户端相同的分区策略是一个很好的主意,可以确保所有生产者对不同的键使用一致的分区。现在,您的 C# 和 Java 创建者客户端使用兼容的分区方法!
2024-08-07 20:32:13 265
原创 JVM 中的类加载器:概述
系统(应用程序)类装入器: 这是加载特定于应用程序的类的类加载器,通常从运行 Java 应用程序时指定的类路径中加载。系统(应用程序)类装入器:这是加载特定于应用程序的类的类加载器,通常从运行 Java 应用程序时指定的类路径中加载。扩展类加载器: 这个类加载器负责从扩展目录(比如 JRE 安装中的 jre/lib/ext 目录)加载类,并且是 Bootstrap 类加载器的子类。否则,系统类装入器将加载该类。如果以前未加载过该类,则类加载器会将其加载到内存中,并创建表示已加载类的类对象的新实例。
2024-08-07 20:29:39 325
翻译 如何在 Java 中将 Excel 和 CSV 文档转换为 HTML
这些解决方案都将返回包含转换后的文档内容的简单 HTML 文本字符串,从而可以直接创建和共享可访问的 HTML 文件,并在生成的 HTML 代码中进一步自定义数据可视化效果。只有当我们扩展文档转换标准以包括普遍兼容的格式时,PDF 转换的局限性才会变得明显,这些格式也适合继续文档的设计。转换为矢量 PDF 文件的文档只能返回到其原始格式(或使用 OCR 转换时只能返回到文本格式),而 PDF 中根本缺乏任何有意义的编辑/格式化功能,使得该格式成为正在进行的设计迭代的死胡同。
2024-08-06 22:31:00 30
原创 使用 Spring Security 保护应用程序
保护 Java 应用程序的一种流行解决方案是 Spring Security,这是一个全面且可定制的框架,可提供身份验证、授权和针对各种安全威胁的保护。在本文中,我们介绍了 Spring Security,并演示了其在一个简单的网上银行应用程序中的使用。通过利用 Spring Security 提供的功能,开发人员可以有效地保护他们的应用程序免受未经授权的访问和常见的安全威胁。在本文中,我们将探讨 Spring Security 的基础知识,并通过一个真实示例来演示如何在您的应用程序中实现它。
2024-08-06 22:28:56 299
原创 简化开发:探索用于构建自动化的软件工具
Maven 专注于项目生命周期管理和依赖项驱动的构建,简化了构建过程,并有助于保持项目之间的一致性。软件开发过程的优化和高质量软件的及时交付取决于有效的构建自动化。凭借其先进的功能、广泛的插件生态系统和强大的社区支持,这些工具彻底改变了软件开发,使团队能够更有效地协作并更高效地交付高质量的软件。Jenkins 广泛的社区支持和积极的开发使其成为许多寻求可靠且可定制的构建自动化解决方案的开发团队的首选。虽然 Ant 缺乏其他构建自动化工具中的一些高级功能,但它的简单性和易用性使其成为中小型项目的热门选择。
2024-08-06 22:27:12 420
翻译 使用 Java 记录简化 Spring Data 中的数据实体
通过采用记录,开发人员可以提高代码的可读性,减少样板文件,并为更高效、可维护和可扩展的 Spring Data 应用程序铺平道路。我们将探讨使用 Java 记录创建健壮的数据实体的好处,并提供真实世界的示例来展示它们在 Spring Data 中的潜力。总的来说,对于需要以清晰、高效和可靠的方式定义数据实体的开发人员来说,Java Records 是一个有价值的工具。因此,对于在应用程序记录中优先考虑性能和可靠性的开发人员来说,Java 记录是最佳选择,它是不可变的,具有性能优势。
2024-08-05 23:50:17 22
原创 探索虚拟线程的轻量级并发:与开发人员无关的观点
在本文中,我们将从与开发人员无关的角度探讨虚拟线程的概念,讨论它们的好处和可能的用例。在传统的线程模型中,每个传入的请求都会被分配给一个单独的线程,如果请求数量显着增加,这可能会导致资源耗尽和性能问题。使用虚拟线程,Web 服务器可以使用轻量级虚拟线程处理每个传入的请求,从而大大减少与线程管理相关的开销,并允许服务器处理大量的并发请求。简化的编程模型: 虚拟线程消除了对锁、信号量和线程池等复杂同步构造的需求,使开发人员能够编写更易于理解和维护的简单、连续的代码。真实场景:Web 服务器请求处理。
2024-08-05 23:47:46 305
原创 如何使用最佳方法在没有Outlook的情况下查看/打开PST文件
在本文中,您可以学习如何使用 DIY 方法通过简单的步骤在没有 Outlook 的情况下打开 PST 文件。有一些简单的方法可以打开 PST 文件和详细查看 PST 文件的电子邮件,本文中给出了这些方法。如果要在不使用 Microsoft Outlook 的情况下查看 PST 文件,可以使用第三方 PST 查看器工具。注意:如果您的PST文件已损坏或无法访问,那么您可以尝试使用第三方Outlook PST恢复工具,该工具可以在没有Outlook的情况下查看或打开您的PST文件。
2024-08-05 23:47:02 924
翻译 Java 中字符串操作的函数式方法
在 Java 的最新更新中,String 类经历了一系列重要的方法添加。某些方法现在生成 Stream 类的实例,而其中一些是高阶函数。合并这些方法的目的是提供一种简化的方法,以面向流的方式处理字符串。以流为导向的方式处理字符串具有简化代码和增强表现力的优势。这样可以更轻松地应用过滤、映射、减少等操作。另一个优点是 Stream API 支持并行处理,允许通过这些返回流的方法利用并行流。这使得利用多核处理器高效处理大型字符串成为可能。
2024-08-04 13:24:38 26
原创 从 J2EE 到 Jakarta EE
事实上,企业级 Java 应用程序需要实现 Servlets、JAX-RS(用于 RESTful Web 服务的 Java API)、JAX-WS(用于 XML Web 服务的 Java API)、JMS(Java 消息服务)、MDB(消息驱动 Bean)、CDI(上下文和依赖关系注入)、JTA(Java 事务 API)、JPA(Java 持久性 API)等规范。因此,与竞争对手不同,在竞争对手中,API是根据其实施者做出的单方面决策而发展的,而Jakarta EE是公司、用户群体和社区共识的表达。
2024-08-04 13:22:42 414
原创 Java 中的安全密码哈希:最佳实践和代码示例
然而,哈希算法的格局已经发生了重大变化,一些方法变得过时,并且出现了更新、更安全的技术。本文深入探讨了为什么像 SHA-512 这样的传统方法已经不够用了,加盐和减慢哈希过程的重要性,并为现代密码哈希技术提供了实用的 Java 代码示例。要使用任何哈希算法验证密码,典型的方法是使用创建原始密码哈希时使用的相同算法和参数(如盐、迭代计数等)对输入密码进行哈希处理。然后,将新生成的哈希与存储的哈希进行比较。SHA-512 是 SHA-2 系列的一部分,是一种加密哈希函数,曾经是保护密码的标准。
2024-08-04 13:21:04 698
翻译 Java 中的交错数组是什么,并带有示例?
在上面的代码中,我们声明了一个二维锯齿状数组 jaggedArray,并使用不同年级的学生姓名对其进行初始化。在上面的代码中,我们有一个锯齿状数组 jaggedArray,它在每一行中存储不同的数字。交错数组,也称为数组数组,是一种数据结构,其中数组用于存储其他数组。交错数组的关键特征是主数组的每个元素都可以具有不同的大小,从而允许在二维结构中可变的列长度。总体而言,锯齿状数组提供了一种灵活的方式来表示和处理数据结构,其中每个维度的大小可能会有所不同,这使它们成为某些编程场景中的强大工具。
2024-08-03 13:45:01 49
原创 在 Java 中使用执行器的挑战和陷阱
但是,像任何强大的工具一样,执行器也有自己的一系列挑战和陷阱,开发人员必须意识到这些挑战和陷阱,以避免潜在的问题和问题。执行器是 Java 并发框架的一部分,它提供了一种将任务提交与任务执行分离的方法,从而实现更高效的线程池化和任务协调。如果清理任务的执行时间超过指定的时间间隔,则可能导致错过截止时间和累积待处理任务,最终影响应用程序的性能。ExecutorService:Executor 接口的扩展,提供额外的方法来管理 Executor 服务的生命周期,包括任务提交、关闭和终止。
2024-08-03 13:42:25 786
原创 增加 Java 日志记录方面的多功能性
虽然记录器带有各自的转换模式,例如 log4j,它提供了一种基于 XML 的方法来配置几乎所有内容,而不仅仅是 Appender 的转换模式和布局,但值得注意的是,无论配置如何,一些项目都设计为遵循预定义的消息模式。这种方法有以下缺陷:它们是手动的,因此容易出错,当然,它们是样板,Aspects 有助于缓解这些缺陷。清除较旧的日志遵循组织策略,而日志记录是以性能为代价的,尽管我们可能不会明显感觉到在低环境中的毫秒级延迟,这些环境的负载比在生产环境中要少得多。因此,具有切换日志级别的能力是必不可少的。
2024-08-03 13:38:26 581
翻译 掌握并发性:Java 的 ExecutorService 深入指南
深入研究其内部机制和核心组件,可以揭示任务管理、排队和执行的操作动态,为开发人员提供关键见解,这些见解可以显着影响应用程序优化,从而实现卓越的性能和可扩展性。Java 并发框架的核心是 ,这是一个复杂的工具,旨在简化异步任务的管理和执行。从执行简单任务到利用可定制的线程工厂和复杂的拒绝处理程序等高级功能,充分利用其功能,可以创建能够管理大量并发操作的高响应性和强大的应用程序。它调节线程的生命周期,监督任务处理,并监控关键指标,如核心池和最大池的大小、任务队列长度和线程保持活动时间。
2024-08-02 11:19:15 53
原创 单元测试:Java Streams 和 lambda
Streams 和 lambda 是在 JDK 8 之后在 Java 中引入的,从那时起,Java 开发人员在他们的项目中经常使用这些功能。如果我们使用 lambda,代码可以被隔离,问题可以很容易地被识别,因为它的本质是使程序功能强大、更加模块化和可重用——这使得它对单元测试管道友好。例如,我有一个流管道,它涉及一个稍微复杂的 lambda 和一个给定字符串类名的映射类。如果管道更复杂,则可以从支持方法中调用管道的各个部分,并且可以对支持方法进行单元测试。上面的流可以包装在常规函数中,如下所示。
2024-08-02 11:17:56 421
原创 如何实现 Java 微服务架构
立即联系来自顶级 Java 公司的专业 Java 开发服务,迈出迈向强大、可扩展的微服务架构的第一步。微服务架构是一种开发软件系统的方法,它专注于构建具有明确定义的接口和操作的单一功能模块。在 Java 中实现微服务架构是一项战略决策,可以为您的应用程序带来显著的好处,例如提高可扩展性、灵活性和可维护性。使用 RabbitMQ 或 Kafka 等消息队列在微服务之间实现可靠、可扩展和异步的通信。Kubernetes 的: 一个强大的系统,用于自动部署、扩展和管理容器化应用程序。按服务模式使用一个数据库。
2024-08-02 11:16:01 239
翻译 优化机器人应用程序的性能
从上图中,您可以注意到,在上午 11:35,在流量高峰期间,垃圾回收事件将整个应用程序暂停了 329 秒(即 5 分 29 秒)。CMS(并发标记和扫描)算法: CMS GC 算法运行良好,非常适合多种应用,但是,其主要缺点是偶尔会出现长时间的 GC 停顿。CMS GC 算法并不总是会导致长时间的 GC 暂停,其大部分 GC 暂停都在可接受的范围内,但是偶尔会由于堆碎片而导致长时间的 GC 暂停,这可能会持续几秒钟(有时甚至几分钟),就像在这种情况下一样。因此,我们只能选择使用并行 GC 或 G1 GC。
2024-08-01 16:54:08 17
原创 COBOL 到 JOBOL?现代化的糟糕选择
然而,随着技术的进步,对现代化的推动力越来越大,Java 因其面向对象的性质、强大的生态系统以及在当代软件开发中的广泛采用而成为流行的目标语言。一个重要的障碍是 JOBOL 的潜在创建,它指的是以类似于 COBOL 的过程风格编写的 Java 代码,而没有利用 Java 的面向对象功能。在从 COBOL 到 Java 的转换过程中,如果翻译是逐行完成的,而没有结合面向对象的原则,则生成的代码可以归类为 JOBOL。此外,该程序包括五行无法访问的代码,满足了对死代码的请求。此外,死代码也会被转换。
2024-08-01 16:51:38 441
原创 提高 Java 代码安全性
为了帮助解决这个问题,OWSAP提供了一个出色的工具,可以扫描您的所有依赖项,并将它们与集中维护的漏洞数据库进行匹配。发现任何此类问题后,它会报告问题及其 Maven 坐标的详细信息,例如组、工件和版本详细信息。为了解决这个问题,一些中央组织维护着一个数据库,其中包含在特定版本的库中发现的安全问题。开发人员审查易受攻击的代码,应用适当的输入验证和参数化查询以防止 SQL 注入攻击,并重新测试应用程序以确保漏洞得到缓解。幸运的是,有两种流行的工具可以扫描代码并报告任何安全和过时的依赖项问题。
2024-08-01 16:49:31 395
原创 在 Spring Boot 中处理记录
在前面的示例中,我们已经使用 SpringBoot 提供的典型机制注入了服务——通过构造函数进行依赖注入(也可以通过):BookstoreServiceBookstoreController@Autowired。但是,也可以使用记录。通常,Spring Boot 控制器使用简单的 POJO 类进行操作,这些类通过网络将我们的数据带回客户端。让我们有几种情况,在这些场景中,Java 记录可以通过压缩同源代码来帮助我们提高可读性和表现力。在这里,(和 ) 可以是作为 POJO 编写的数据的简单载体。
2024-07-31 23:22:47 164
原创 如何在 Java 中简单思考
SOLID 原则是 Single Responsibility、Open/Closed、Liskov Substitution、Interface Segregation 和 Dependency Inversion 的首字母缩写,是面向对象的软件开发中的一组准则,旨在使软件更具可扩展性、更易于理解和维护。这包括遵循一致的命名约定以使代码更易于理解,编写小而集中的方法以提高可读性和可维护性,并避免深度嵌套以防止过于复杂和难以遵循的代码结构。过早的优化可能会导致创建过于复杂的代码,而这些代码难以理解和维护。
2024-07-31 23:17:38 522
原创 如何在 Java 中生成火焰图
上述 GitHub 存储库中的记录是使用 AsyncProfile 生成的,AsyncProfile 使用自己的 CPU () 和分配 () 事件,这些事件将在下面的示例中使用。这是一个基于 Web 的解决方案,具有正在运行的 Java 后端,动态提供数据,并在 Jeffrey CLI 工具上包含一些其他有趣的功能。对于您的终端来说,这是一个非常新且易于使用的工具,它接受JFR(JDK Flight Recorder)记录,并从存储在二进制文件中的事件中生成火焰图。在本文中,让我们只关注火焰图。
2024-07-31 23:10:21 862
翻译 Java 线程占用多少内存?
如果您的应用程序是 IO 绑定的,则很可能需要创建一个线程池,其中包含大量线程,这些线程可以绑定到某些 IO 操作(处于阻塞/等待状态、从数据库读取、发送 HTTP 请求)。JVM 不会主动将提交内存的大小调整为线程数 * 1MB,这是一个错误的假设,基于错误的 NMT 报告,在 Java 8 中,提交内存会自动设置为保留内存。但是,如果您的应用程序宁愿将时间花在某些计算任务上,例如,您可以使用线程数较少的 HTTP 服务器(例如 Netty)并节省大量内存。Java 11 上的线程内存消耗。
2024-05-20 21:58:00 209 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人