最新文章

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

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

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

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

Java正则表达式API系列三

Java正则表达式API系列三

Java系列 5天前 浏览: 6 评论: 0

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

Java 18 Switch语句更强大了

Java 18 Switch语句更强大了

Java系列 1周前 (05-18) 浏览: 16 评论: 0

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

Spring Boot Rest常用注解简介

Spring Boot Rest常用注解简介

微服务 2周前 (05-16) 浏览: 7 评论: 0

让我们了解一下Spring Boot Rest框架注释。它是如此简单和快速。在本文中,我将尝试解释Spring Boot Rest API的不同注释。这些注释是Spring Boot中REST API所必需的。 开始Spring Boot Rest的先决条件 最需要了解的是Spring容器或IOC。除此之外,还必须具备Java注释的基本知识。因为Spring Boot应用程序充满了注释。最后但并非

JDK 19:针对Java 19的功能

JDK 19:针对Java 19的功能

Java系列 2周前 (05-13) 浏览: 19 评论: 0

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

Java正则表达式API系列二

Java正则表达式API系列二

Java系列 2周前 (05-11) 浏览: 14 评论: 0

Predefined字符类 Java正则表达式API也接受预定义的字符类。上面的一些字符类可以用更短的形式表示,尽管这会降低代码的直观性。这个正则表达式的Java版本的一个特殊方面是转义字符。 正如我们将看到的,大多数字符都以反斜杠开头,这在Java中有特殊的意义。对于要由模式类编译的这些,必须转义前导反斜杠,即.\d变为\\d。 匹配的数字,相当于[0-9]: @Test public void

Java9中新增的Collector

Java9中新增的Collector

Java系列 3周前 (05-09) 浏览: 25 评论: 0

Java 8中添加了收集器Collectors,这有助于将输入元素累积到诸如Map、List和Set等可变容器中。 在本文中,我们将探讨Java 9中添加的两个新收集器:Collectors.filtering 和 Collectors.flatMapping。flatMapping与收集器结合使用。通过提供智能元素集合进行分组。 Filtering Collector Collectors.fi

Java线程优先级

Java线程优先级

Java系列 3周前 (05-07) 浏览: 14 评论: 0

线程被称为“最小的处理单元”,是一个轻量级的子进程,分配了一些需要执行的工作。线程共享分配给它们的相同内存插槽,并且彼此独立,因此促进了多任务处理。但是,当多个线程在共享内存插槽上运行时,必然会发生资源竞争。为了避免这种竞争,从而实现高吞吐量,引入了线程优先级的概念。当多个任务在同一个系统上运行时,它具有重要意义。“线程调度器根据优先级分配执行线程”。 JVM(JAVA虚拟机)默认或由程序员明确地

Java正则表达式API系列一

Java正则表达式API系列一

Java系列 3周前 (05-05) 浏览: 20 评论: 0

在本文中,我们将讨论java正则表达式API,以及如何在Java编程语言中使用正则表达式。 在正则表达式的世界中,有许多不同的风格可供选择,比如grep、Perl、Python、PHP、awk等等。 这意味着在一种编程语言中工作的正则表达式可能在另一种编程语言中不工作。Java中的正则表达式语法与Perl中的最相似。 要在Java中使用正则表达式,我们不需要任何特殊设置。JDK包含一个特殊的jav

如何在项目中使用Spring Security

如何在项目中使用Spring Security

微服务 4周前 (04-29) 浏览: 18 评论: 0

将Spring Security添加到现有应用程序中可能是一个令人望而生畏的前景。仅仅向项目中添加所需的依赖项就会引发一系列事件,这些事件可能会破坏应用程序和测试。 也许你会突然看到一个登录提示,要求在启动时输入生成的密码。 也许你的测试现在得到了可怕的401未经授权,或随后的403被禁止。 在尝试使用身份验证时,可能会遇到ClassCastException#getPrincipal()。 不管

Java中的按值调用和按引用调用

Java中的按值调用和按引用调用

Java系列 1个月前 (04-27) 浏览: 21 评论: 0

为什么按值调用和按引用调用? 方法或函数可以通过两种方式调用。一种是按值调用,另一种是按引用调用,这两种方式通常根据作为输入或参数传递给它们的值的类型来区分。 在我们开始之前,让我澄清一件事,在Java中,只有按值调用(值传递),没有按引用调用。 按值调用 按值调用是一种方法,通过复制给定变量(或常量或任何保存数据的对象)的实际值,将参数传递给函数 这意味着当我们调用一个传递参数值的方法时,这个参

使用Spring Boot和JPA创建GraphQL API

使用Spring Boot和JPA创建GraphQL API

相关技术 1个月前 (04-25) 浏览: 18 评论: 0

GraphQL既是API查询语言,也是使用当前数据执行这些查询的运行时。GraphQL让客户能够准确地要求他们所需要的东西,仅此而已,使API随着时间的推移更容易发展,并通过提供API中数据的清晰易懂的描述,支持强大的开发工具。 在本文中,我们将创建一个简单的机场位置应用程序。 生成项目 去https://start.spring.io/并生成一个项目,不要忘记添加Spring Web、H2数据库

Java8接口–默认方法和静态方法

Java8接口–默认方法和静态方法

Java系列 2个月前 (03-29) 浏览: 35 评论: 0

在Java8之前,java中的接口只能有抽象方法。默认情况下,接口的所有方法都是公共和抽象的。Java8允许接口具有默认和静态方法。我们在接口中使用默认方法的原因是,允许开发人员向接口添加新方法,而不会影响实现这些接口的类。 为什么选择默认方法? 例如,如果A、B、C和D等几个类实现了一个接口XYZInterface,那么如果我们向XYZInterface添加一个新方法,我们必须更改实现该接口的所

用Java代码实现区块链技术

用Java代码实现区块链技术

相关技术 2个月前 (03-16) 浏览: 103 评论: 0

比特币很热门——这是多么轻描淡写的说法啊。虽然加密货币的未来有些不确定,但用于驱动比特币的区块链技术也非常流行。 区块链的应用范围几乎无穷无尽。可以说,它还有可能破坏企业自动化。关于区块链是如何运作的,有很多信息。我们有一份免费白皮书,介绍区块链技术(无需注册)。 本文将重点关注区块链体系结构,特别是演示“不可变、仅附加”分布式账本如何与简化的代码示例一起工作。 作为开发人员,与简单地阅读技术文章

Java 8中的Collectors API详解

Java 8中的Collectors API详解

Java系列 2个月前 (03-14) 浏览: 97 评论: 0

在本文中,我们将介绍Java8的收集器Collectors,它们用于处理流的最后一步。 如果我们想了解如何利用收集器Collectors的能力进行并行处理,我们可以看看这个项目:https://github.com/pivovarit/parallel-collectors Stream.collect() 方法 Stream.collect()是Java 8的流API的终端方法之一。它允许我们对

每个程序员都需要知道的IntelliJ IDEA插件

每个程序员都需要知道的IntelliJ IDEA插件

相关技术 3个月前 (03-09) 浏览: 143 评论: 0

Grep控制台IntelliJ插件 在成千上万行的日志中找到了什么,又累又沮丧?是的,我也是。但我找到了一种结束这种痛苦的方法。介绍Grep Console,帮助您在您搜索的日志. 使用IntelliJ Idea中的Grep控制台插件,您可以轻松地搜索和过滤类似于命令的内容。此外,它还基于下图所示的正则表达式对。 更多关于IntelliJ IDEA插件:Grep控制台(https://plugin

Java 17的一些新特性

Java 17的一些新特性

Java系列 3个月前 (03-07) 浏览: 74 评论: 2

Java17将是一个长期支持的LTS版本。 您一定知道Java采用了6个月的发布周期。也就是说,它将每6个月发布一个新版本的Java。每隔3年,LTS版本就会发布一次。目前,Java 11是LTS版本,于2018年9月发布。但在Java17发布后,它将是最新的LTS支持。 许多组织依赖LTS版本,所以他们使用的是Java11。但在Java17发布后,他们将使用Java17(可能)。 自从将Java

Java别名是如何工作的

Java别名是如何工作的

Java系列 3个月前 (03-04) 浏览: 48 评论: 0

在Java中,当引用(不止一个)链接到同一个对象时,使用Alias(别名)。别名的问题是,当用户写入特定对象时,其他几个引用的所有者不希望该对象发生更改。在这里,包含别名的代码可能会很快变得有点混乱,而且调试起来也非常繁琐。总的来说,别名是一个应该避免或谨慎使用的过程。让我们看看Java Alias是如何工作的。 alias在Java中是如何工作的? 如前所述,当多个引用链接到同一对象时,会使用别

JIT优化之循环展开

JIT优化之循环展开

jvm 3个月前 (03-02) 浏览: 107 评论: 0

在本文中,我们将讨论一种自动优化,称为循环展开。JIT编译器使用这种技术使循环(例如Java的for或while循环)执行得更快。 因为我们将在这里深入研究JVM,为了便于演示,您有时会遇到C代码,甚至是一些汇编语言,所以请不要着急! 让我们首先考虑以下一段C代码,它为100万个long分配空间,并用100万个long随机数填充空间: int main(int argv, char** argc)

JVM是如何优化代码的

JVM是如何优化代码的

jvm 3个月前 (02-28) 浏览: 54 评论: 0

本文概述了Hotspot JVM用于提高性能的一些优化技术。首先,我将给出一个小例子,说明我在编写一个简单的基准测试时是如何遇到这些优化的。然后用一个简短的例子解释每个优化,最后给出一些如何分析自己代码的指针。 背景 很久以前,我用Java编写了一个简单的度量库,并使用了类似的实现。我希望他们的表现可以与之媲美,尽管有一点优势。在对这两个库进行基准测试后,我发现Java的速度要快得多。对于这样一件

登录

忘记密码 ?

切换登录

注册