Leyden项目:通过AOT编译彻底改变Java性能

Java系列 3天前 浏览: 13 评论: 0

几十年来,Java以其“一次编写,随处运行”的理念主导着企业软件开发。然而,云原生架构、微服务和无服务器计算的兴起暴露了Java设计中的一个关键弱点:启动时间缓慢。在OpenJDK上运行的具有JIT编译的传统Java应用程序通常需要2-5秒来初始化,这使得它们不适合: 无服务器功能(AWS Lambda、Azure功能) Kubernetes中的短期微服务 需要即时响应的CLI工具 边缘计算部署

使用JUnit5测试System.exit()

Java系列 4个月前 (07-28) 浏览: 124 评论: 0

防止实际系统退出 编写一个在测试期间实际退出JVM的单元测试绝对不是理想的。每当JVM执行有趣的操作(如退出或读取文件)时,它都会首先检查是否有权限这样做。这是通过咨询系统正在使用的SecurityManager来完成的。SecurityManager上的方法之一是checkExit()。如果该方法抛出SecurityException,则表示此时不允许系统退出。方便的是,checkExit()只

Java虚拟线程固定现象

Java系列 5个月前 (06-23) 浏览: 112 评论: 0

什么是虚拟线程Pinning/固定? 在我们理解什么是线程固定之前,我们需要一些关于虚拟线程在Java中如何工作的上下文。直到最近,Java中只有一种线程——平台线程。对于Java中的每个平台线程,都有一个由操作系统管理的相应线程。这些制作成本相对较高,而且数量有限。由于这些限制,应用程序池或重用平台线程是很常见的。 输入虚拟线程。这些线程不是一对一地绑定到平台线程的。相反,它们是从我们称之为“载

Spock2.x新特性解读及升级指南

Spock系列 8个月前 (04-07) 浏览: 238 评论: 0

Spock2.x 新增特性 原生支持Java静态方法的mock,以及final类mock 旧版Spock只支持Groovy语言的静态方法mock(GroovyMock),如果要mock Java语言的静态方法需要引入一些第三方的mock框架如:powermock、jmockit,新版Spock内置支持了mockito等扩展(https://spockframework.org/spock/docs

分布式环境下慎用Java的hashCode

Java系列 8个月前 (04-01) 浏览: 158 评论: 0

你可能知道,哈希函数有很多不同的用途: 网络和存储系统使用它们(以校验和的形式)来检测数据的意外损坏。 密码系统使用它们来检测数据的恶意损坏并实现签名。 密码验证系统使用它们来增加从数据库中提取明文密码的难度。 编程语言将它们用于哈希映射,以确定密钥放置在哪个哈希桶中。 分布式系统使用它们来确定集群中的哪个worker应该处理大型作业的一部分。 所有这些目的都有不同的要求,不同的哈希函数用于各种目

Redis分布式锁Redlock注意事项

好文推荐 9个月前 (03-03) 浏览: 136 评论: 0

原文地址:https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html Redis分布式锁Redlock的算法(https://redis.io/docs/latest/develop/use/patterns/distributed-locks/)声称在Redis之上实现了容错分布式锁(或者更确切地说,租赁)

如何基于JDK17在单元测试中使用二进制文件

Java系列 10个月前 (02-03) 浏览: 192 评论: 0

当你需要二进制数据来编写单元测试时,你会怎么做? 假设你正在开发一个纯Java Git实现。您将需要组成Git存储库的位:blob、树或提交对象。或者,您可能想了解Java类文件中的内容。在这种情况下,您将需要Java类中的数据。 一种解决方案是使用常规文件。如果您使用的是Maven,请将它们放在src/test/resources目录中。然后,您可以使用例如Class.getResourceAs

在运行时重新加载Java类定义

Java系列 11个月前 (01-02) 浏览: 218 评论: 0

在用Java开发web应用程序的UI时,以下工作流程可能很常见: 对某个源文件进行更改; 重新编译项目; 重启服务器; 测试 每次进行更改时重新启动服务器并不理想。即使你的应用程序启动很快。 如果我们能够在运行时重新加载类定义,则可能并不总是需要重新启动。 在这篇文章中,将展示如何在运行时重新加载单个类的定义。 类重载器 我们需要一个可以在运行时加载和重新加载单个类定义的类。我们将把类命名为Cla

Java中的杂散分号

Java系列 12个月前 (12-02) 浏览: 214 评论: 0

考虑以下Java类: public class ClassMembers { ; int field;;; void method() {} ;; ; ;; ;;; class Inner {} ; } 它包含许多零散的分号。 这是合法的Java代码吗?换句话说,它能编译吗? 让我们学习。 类成员和杂散分号 当您得知前面的示例编译时没有错误时,您可能会也可能不会感到惊讶。 杂散分号是允许的类成员。

登录

忘记密码 ?

切换登录

注册