如何检查数组(未排序)是否包含某个值?这是 Java 中非常有用且经常使用的操作。这也是 Stack Overflow 上投票最多的问题。如投票最多的答案所示,这可以通过几种不同的方式完成,但时间复杂度可能大不相同。下面我将展示每种...
Java 添加的java.util.Optional非常的受欢迎,并为总是不能返回非null值的方法提供了更流畅的代码。很不幸的是,Optional已被滥用,一种滥用,甚至已被过度使用。当与直接使用相比null没有明显优势时,我偶尔会遇...
JavaScript 世界提供了有用且有趣的 Web 框架,这是毫无疑问的。对于 Java 开发人员,有一个有趣的替代方案——开源Vaadin框架。有了它,您可以仅使用 Java 编程语言轻松地为 Web实现图形用户界面(GUI)。无需编写一行 HTML...
这听起来像是您永远不需要的东西,但有时,当您分发最终用户软件时,您可能需要安装 Java 程序作为 Windows 服务。一个很少人拥有的重要先决条件——拥有一个捆绑的 JRE,所以没有人必须下载和安装一个JRE(会使安装过程不必要...
许多库包装了一些外部通信。无论是类 REST 的 API、消息队列、数据库、邮件服务器还是其他东西。因此,您必须有一些超时时间——用于连接、读取、写入或空闲。遗憾的是,许多库的默认超时设置为“0”或“-1”,这意味着无...
Spring Boot Admin 是一个很不错的仪表板,用于监控您的 Spring Boot 应用程序。然而,设置它并不是那么简单。
有时您需要将大量数据导出为 JSON 到一个文件。也许是“将所有数据导出到 JSON”,或者 GDPR“可移植性权利”,您实际上需要这样做。与任何大型数据集一样,您不能将其全部放入内存并将其写入文件。这需要一段时间,它从数据...
支持双因素身份验证 (2FA) 几乎总是一个好主意,尤其是对于后台系统。2FA 有许多不同的形式,其中一些包括 SMS、TOTP 甚至硬件令牌。
可信时间戳是让可信第三方(“时间戳机构”,TSA)以电子形式证明给定事件的时间的过程。欧盟法规 eIDAS 赋予这些时间戳法律效力——即,如果事件带有时间戳,则没有人可以对时间或事件内容提出异议。适用于多种场景,包括时间戳...
缓存是几乎所有应用程序性能的关键。有时需要分布式缓存,但并非总是如此。在许多情况下,本地缓存可以正常工作,并且不需要分布式缓存的开销和复杂性。...
Spring Framework 为常见缓存场景提供了全面的抽象,而无需耦合到任何受支持的缓存实现。但是,特定存储的到期时间声明不是此抽象的一部分。如果我们要设置缓存的生存时间,则必须调整所选缓存提供程序的配置。从这篇文章...
下面是最近小编开发的一个应用程序,用于从 URL 或 Base64 编码的有效负载中读取条形码图像并提供结果。为此,我使用了 Dynamsoft 的 jar 并创建了一个 Java 包,从 Dynamsoft 导入条码阅读器的类并为 ImageReader 创建一...
Java 安全性是所有使用 Java 应用程序的企业的重要主题。Java Champion Simon Ritter 深入探讨了 JDK 和不让您的应用程序保持最新的潜在缺点,以及为什么了解关键补丁更新 (CPU) 和补丁集更新 (PSU) 之间的区别至关重...
Java 虚拟机 (JVM) 生成 3 个关键组件,这些组件对于优化性能和排除生产问题很有用。这些组件是:垃圾收集 (GC) 日志线程转储堆转储在本文中,让我们尝试了解这 3 个关键组件,它们在哪里使用,它的外观如何,如何捕获它们,如何分...
在这篇文章中,我们将讨论如何快速找到您的 Java 应用程序进程 ID。对于某些监控工具(如yCrash),您需要将应用程序进程 ID 作为输入传递。如果您想查找包含多个不同选项的更详细的帖子来查找您的应用程序的进程 ID,您可...
我们的软件倾向于使用大量的线程池——主要是通过java.util.concurrent.ExecutorService实现(通过Executors.new...创建)。我们为各种异步用例创建这些线程池,它们随处可见。所有这些执行器都有一个线程工厂...
当您的受众分散在当前和新兴的在线媒体平台上时,优化您的品牌形象可能是一项艰巨的任务。实现目标和建立品牌知名度的一种方法是共享视频内容。这可以成为分享视觉效果、交流信息和接触不同受众的一种引人入胜的方法。...