Java Valhalla Project

Java Valhalla Project

2年前 (2022-08-17) 浏览: 679 评论: 0

在本文中,我们将介绍Valhalla项目——它的历史原因、当前的开发状态,以及它发布后为日常Java开发人员带来了什么。 Valhalla项目的动机和原因 Oracle的Java语言架构师Brian Goetz在一次演讲中说,Valhalla项目的主要动机之一是希望使Java语言和运行时适应现代硬件。当Java语言诞生时(大约25年前撰写本文时),获取内存和算术运算的成本大致相同。 如今,这种情况

JDK19中的新特性

JDK19中的新特性

2年前 (2022-08-08) 浏览: 487 评论: 0

Java19将于9月发布,是一个非LTS版本,它将以结构化并发、虚拟线程、切换表达式模式匹配、向量API(vector)和Linux/RISC-V端口为特色。 定于今年9月发布的Java Development Kit 19现在已经完成了功能,并进入了第二个降级阶段。该版本有七个功能,包括结构化并发、记录模式、外部函数和内存API预览,以及对开源Linux/RISC-V指令集体系结构(ISA)的支

实现Runnable还是扩展Thread类?

实现Runnable还是扩展Thread类?

2年前 (2022-07-19) 浏览: 294 评论: 0

“我应该实现Runnable还是扩展Thread类?”这是一个很常见的问题。 在本文中,我们将看到哪种方法在实践中更有意义以及为什么。 使用Thread 我们首先定义一个扩展线程Thread的SimpleThread类: public class SimpleThread extends Thread { private String message; // standard logger, co

JEP 425:虚拟线程(预览)

JEP 425:虚拟线程(预览)

2年前 (2022-07-18) 浏览: 453 评论: 0

JEP 425:虚拟线程 Virtual threads(https://openjdk.org/jeps/425)以JDK 19作为预览API。虚拟线程是Project Loom的一部分,该项目自2017年以来一直在制作中。该项目旨在通过让开发人员使用熟悉的API编写和维护并发应用程序,并更高效地使用硬件资源,提高Java中的并发性能。 虚拟线程 动机 Java中的并发由线程处理。每个线程独立于

OpenJDK提案将提供Java类文件的api

OpenJDK提案将提供Java类文件的api

2年前 (2022-07-13) 浏览: 196 评论: 0

根据Java社区正在进行的一项提议,Java将获得一个用于处理Java类文件的API。 类文件Class API提案草案(https://bugs.openjdk.org/browse/JDK-8280389)要求提供用于解析、生成和转换Java类文件的API。这个类文件库最初将作为ASM Java字节码操作框架的内部替代品。最终,ASM将完全从JDK中删除。 类文件API提案指出,类文件生成、解

Java中的StackOverflowError错误

Java中的StackOverflowError错误

2年前 (2022-07-11) 浏览: 344 评论: 0

StackOverflowError可能会让Java开发人员感到恼火,因为它是我们可能遇到的最常见的运行时错误之一。 在本文中,我们将通过查看各种代码示例以及如何处理它来了解此错误是如何发生的。 Stack Frames和StackOverflowerError的发生方式 让我们从基础开始。调用方法时,将在调用堆栈上创建新的堆栈帧(stack frame)。该堆栈框架包含被调用方法的参数、其局部变

Jackson的snake-case反序列化为骆驼命名法

Jackson的snake-case反序列化为骆驼命名法

2年前 (2022-07-06) 浏览: 1744 评论: 0

JSON对象中的字段名可以有多种格式。当我们想将它们加载到POJO中时,我们可能会遇到一个问题,即Java代码中的属性名称与JSON中的命名约定不匹配。 在这篇文章中,我们将看到如何使用Jackson将snake-case JSON反序列化为camel-case字段。 安装Jackson 让我们从将Jackson依赖项添加到pom.xml文件: <dependency> <gro

Java中的range函数简介

Java中的range函数简介

2年前 (2022-07-04) 浏览: 1233 评论: 0

在Java中,Range方法在IntStream和LongStream类中都可用。在IntStream类中,它有助于返回函数参数范围内IntStream的顺序值。在该方法中,startInclusive(inclusive)和endExclusive(exclusive)是与增量步长一起使用的两个参数,如前所述,将包括起始值,并排除结束值。在LongStream的情况下,唯一的区别是添加了Long

跳表在Java中的实现

跳表在Java中的实现

2年前 (2022-07-01) 浏览: 278 评论: 0

跳表是一种数据结构,用于借助连接到元素子序列的链表层次结构来存储元素的排序列表。跳表允许以有效的方式处理项目查找。跳表是一种概率数据结构,这意味着它跳过整个列表中的几个元素,因此称为跳表。我们可以将跳表作为链表的扩展版本。与链表允许插入、删除和搜索元素的方式类似,跳表也允许搜索元素、从列表中删除元素和插入元素。它将包含一个基本列表,其中包含一组元素,这些元素将维护后续元素的链接层次结构。 语法:

Java树遍历简介

Java树遍历简介

2年前 (2022-06-29) 浏览: 502 评论: 0

Java树遍历被定义为一种用Java编程语言实现的算法,它将树作为一种数据结构,并结合了通过算法实现访问树的所有节点的基本原理。计算机科学数据结构术语中的遍历表示需要访问数据结构中的所有节点以完成手头的更大任务。树的组件是根节点和子节点,其中一些结束于该特定节点,并命名为叶子,其他组件创建更多子树。在本文中,我们将介绍Java中树遍历的实现,并查看实现相同的树遍历的不同方法。 语法 Java中的类

HashSet的removals()方法注意事项

HashSet的removals()方法注意事项

2年前 (2022-06-20) 浏览: 250 评论: 0

我有一个集合,实际上是一个HashSet。我想从中删除一些item…其中许多item可能不存在。事实上,在我们的测试用例中,“removals”集合中的所有项都不在原始集合中。这听起来——实际上也是——非常容易编码。毕竟,我们已经准备好了。removeAll来帮助我们,对吗? 让我们把它变成一个小测试。我们在命令行上指定“source”set的大小和“removals”集合的大小,并构建它们。so

Spring框架:为什么我现在更喜欢简单的解决方案?

Spring框架:为什么我现在更喜欢简单的解决方案?

2年前 (2022-06-15) 浏览: 363 评论: 0

曾几何时,Spring框架提供了比J2EE更轻量级和更灵活的解决方案。即使在2013年左右,我也很高兴详细了解当时的新款Spring 4。如今,7年后,当我看到春天的时候,我感到一阵恐慌。注释和@ComponentScan已经用更好的东西取代了XML,这需要一个可视化工具来理解您的系统。Spring变成了一头不断生长(和变化)的水螅。我接手并试图理解他人编写的Spring应用程序,这让我很痛苦。最

Java正则表达式API系列四

Java正则表达式API系列四

2年前 (2022-06-08) 浏览: 137 评论: 0

Pattern.DOTALL 默认情况下,当我们使用“.”时表达式中,我们将匹配输入字符串中的每个字符,直到遇到新行字符。 使用此标志,匹配也将包括行终止符。我们将通过以下示例更好地理解。这些例子将略有不同。由于我们感兴趣的是针对匹配的字符串进行断言,因此我们将使用matcher的group方法来返回之前的匹配。 首先,我们将看到默认行为: @Test public void givenRegex

Java中线程的生命周期

Java中线程的生命周期

2年前 (2022-06-06) 浏览: 239 评论: 0

在本文中,我们将详细讨论Java中的一个核心概念——线程的生命周期。 我们将使用一个快速的图解,当然还有实用的代码片段来更好地理解线程执行期间的这些状态。 Java多线程 在Java语言中,多线程是由线程的核心概念驱动的。线程在其生命周期中会经历各种状态: Java中线程的生命周期 java.lang.Thread类包含一个静态枚举,它定义了它的潜在状态。在任何给定的时间点内,线程只能处于以下状态

什么是OpenJDK? 我们为什么要使用它?

什么是OpenJDK? 我们为什么要使用它?

2年前 (2022-06-01) 浏览: 5470 评论: 0

OpenJDK是Java的开发工具包,Java有着26年的历史。从任何标准来看,它都不是一种新的语言,尤其是在行业中,每隔几年就会出现新的解决方案,而且通常比以前的解决方案更好。而最流行的Java实例OpenJDK已经有14年的历史了。无论如何,OpenJDK应该已经被替换了很多次了。但它仍然是世界上最流行的开发工具之一!这怎么会发生? 在本文中,我们将尝试回答这个问题,深入研究OpenJDK的不

你真的了解java.util.Date吗?

你真的了解java.util.Date吗?

2年前 (2022-05-30) 浏览: 327 评论: 0

很少有类能像java.util.Date那样在堆栈溢出方面引起如此多的类似问题,有四个原因: 日期和时间工作基本上相当复杂,而且充满了拐弯抹角的情况。这是可以管理的,但你确实需要花一些时间来理解它。 java.util.Date类在很多方面都很糟糕(详情如下)。 一般来说,开发人员对它的理解很差。 它被库作者严重滥用,进一步加剧了混乱。 了解java.util.Date最重要的事情为: 如果可能的

Clojure vs Java:少数据结构、多函数胜过多个单独类的优点

Clojure vs Java:少数据结构、多函数胜过多个单独类的优点

2年前 (2022-05-25) 浏览: 217 评论: 0

在Clojure中,我们一次又一次地使用相同的数据结构,并在其上运行许多函数。另一方面,Java程序员为每一组数据创建一个唯一的类,并使用自己的“API”(getter、setter、return type等)来访问和操作数据。由于被迫在两个这样的“类API”之间进行翻译,我想与大家分享我的经验,从而在实践中证明格言中的真理 请注意,本文谈论的是数据和数据承载类,而不是“业务逻辑”,它将由Java

Java正则表达式API系列三

Java正则表达式API系列三

2年前 (2022-05-23) 浏览: 267 评论: 0

Boundary Matchers Java regex API还支持边界匹配。如果我们关心在输入文本中匹配的确切位置,那么这就是我们要寻找的。在前面的示例中,我们关心的只是是否找到匹配项。 为了仅在文本开头所需的正则表达式为true时匹配,我们使用插入符号^。 此测试将失败,因为可以在开头找到文本dog: @Test public void givenText_whenMatchesAtBegi

Java 18 Switch语句更强大了

Java 18 Switch语句更强大了

2年前 (2022-05-18) 浏览: 350 评论: 0

自Java13以来,Switch表达式被添加到Java核心库中。如果您使用的是Java版本13或更高版本,那么您肯定可以将旧Switch转换为新Switch。 本文将讨论它如何在不破坏现有更改的情况下提供某些功能。当然,其他语言用户可能会评论“多年前,它就已经存在于我们的编程语言中了”。但让我们微笑一下,继续用Java编程,好吗?注意,我将在帖子中交替使用“switch expression”和“

JDK 19:针对Java 19的功能

JDK 19:针对Java 19的功能

2年前 (2022-05-13) 浏览: 730 评论: 0

虚拟线程、switch表达式的模式匹配、vector API和Linux/RISC-V端口将用于Java 19,这是标准Java的非LTS版本,将于9月发布。 定于今年9月发布的Java Development Kit 19现在正式提出了五项功能。最近新增的三个功能,一个外部函数和内存API、虚拟线程和模式匹配(所有预览),将之前提到的两个功能、一个vector API(第四个孵化器中)和一个JD

登录

忘记密码 ?

切换登录

注册