Java正则表达式API系列二

Java正则表达式API系列二

Java系列 2年前 (2022-05-11) 浏览: 148 评论: 0

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

Java9中新增的Collector

Java9中新增的Collector

Java系列 2年前 (2022-05-09) 浏览: 266 评论: 0

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

Java线程优先级

Java线程优先级

Java系列 2年前 (2022-05-07) 浏览: 298 评论: 0

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

Java正则表达式API系列一

Java正则表达式API系列一

Java系列 2年前 (2022-05-05) 浏览: 344 评论: 0

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

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

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

Java系列 2年前 (2022-04-27) 浏览: 364 评论: 0

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

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

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

Java系列 2年前 (2022-03-29) 浏览: 162 评论: 0

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

Java 8中的Collectors API详解

Java 8中的Collectors API详解

Java系列 2年前 (2022-03-14) 浏览: 774 评论: 0

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

Java 17的一些新特性

Java 17的一些新特性

Java系列 2年前 (2022-03-07) 浏览: 479 评论: 2

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

Java别名是如何工作的

Java别名是如何工作的

Java系列 2年前 (2022-03-04) 浏览: 293 评论: 0

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

Java日志框架:log4j vs logback vs log4j2

Java日志框架:log4j vs logback vs log4j2

Java系列 2年前 (2022-02-25) 浏览: 335 评论: 0

如果你曾经不得不分析生产中的问题,我相信你知道良好的日志记录是多么重要。良好的日志记录需要三件事: 日志消息需要提供所需的信息,以了解应用程序在内部执行的操作。 编写日志消息必须尽可能高效,这样才不会影响应用程序的性能。 您需要能够根据不同的部署环境和情况调整日志详细信息。 虽然您仍然需要自己决定应该为每个用例编写哪些日志消息,但您不需要担心需求2和需求3。各种日志框架已经解决了这些技术要求。您只

JVM内置函数intrinsics简介

JVM内置函数intrinsics简介

Java系列 2年前 (2022-02-21) 浏览: 347 评论: 0

在本文中,我们将学习什么是intrinsics(内部/内置函数),以及它们如何在Java和其他基于JVM的语言中工作。 什么是内置? 内置函数是由我们的编程语言的编译器或解释器进行特殊处理的函数。更具体地说,这是一种特殊情况,因为各种原因,编译器或解释器可以用替代实现替换函数。 编程语言通常通过理解一个特定的方法调用是特殊的来处理这个问题,无论何时我们调用这个方法,结果都是不同的。这样一来,我们的

Java中的逃逸分析

Java中的逃逸分析

Java系列 2年前 (2022-02-11) 浏览: 273 评论: 0

底层的CPU优化对我们的应用有影响。此外,它们证明了大多数程序员的错觉是错误的。是的,你使用的是高级语言。但这并不意味着所有这些抽象层都能完全屏蔽CPU。我在一个Java程序上演示了CPU缓存的效果。 CPU的发展速度比主存快得多。如今,CPU大部分时间都在等待。现代CPU可以在每个CPU周期执行多条指令。但如果它必须访问主内存,绕过三个缓存中的每一个,它必须等待大约100个周期。 Java中的逃

Java演示CPU级的缓存效果

Java演示CPU级的缓存效果

Java系列 2年前 (2022-02-09) 浏览: 326 评论: 0

Joshua Bloch 在推特上发了一个链接(http://igoro.com/archive/gallery-of-processor-cache-effects/),使用高级编程语言(如C#)演示了CPU缓存的效果。强烈推荐! 那我们能否在Java中演示同样的效果呢?乍一看,这种可能性对我们不利:Java不是编译成本机代码,而是编译成中间字节码,而中间字节码可能会编译成本机代码,也可能不会编

JVM Code Cache代码缓存简介

JVM Code Cache代码缓存简介

Java系列 2年前 (2022-02-07) 浏览: 758 评论: 0

在本文中,我们将了解JVM的Code Cache 代码缓存。 什么是Code Cache? 简而言之,JVM Code Cache (代码缓存)是JVM存储编译成本机代码的字节码的区域。我们将可执行本机代码的每个块称为nmethod。nmethod可能是一个完整的或内联的Java方法。 即时(JIT)编译器是代码缓存区的最大消费者。这就是为什么一些开发人员将此内存称为JIT代码缓存。 Code C

Java 8–使用Lambda表达式进行比较

Java 8–使用Lambda表达式进行比较

Java系列 2年前 (2022-01-26) 浏览: 1252 评论: 0

在Java 8之前,对集合进行排序需要为排序中使用的比较器Comparator创建一个匿名内部类: new Comparator<Human>() { @Override public int compare(Human h1, Human h2) { return h1.getName().compareTo(h2.getName()); } } 这仅用于对Human实体列表进行排序

Java Dumps

Java Dumps

Java系列 2年前 (2022-01-24) 浏览: 247 评论: 0

  Java Dumps是在虚拟机由于网络问题、内存错误或用户启动任何类型的按键组合而意外停止时错误创建的一些Java内核。通过调用合并到应用程序源代码中的Java转储API或通过命令行直接提供-Xdump:Java选项,可以轻松创建Java Dumps。Java Dumps通过提供一些有用的信息来帮助最终用户排除故障,并诊断当应用程序意外停止运行时发生的停止的根本原因。 语法 Java

Java中的循环链表

Java中的循环链表

Java系列 2年前 (2022-01-17) 浏览: 363 评论: 0

与链表相比,循环链表略有不同。在循环链表中,最后一个节点指向第一个节点,从而完成一整圈节点。换句话说,我们也可以说在这个链表中,最后一个元素不是空的。在这种类型的链表中,任何节点都可以作为起点。这意味着可以遍历整个列表,即使我们从任何节点开始。当最后一个节点指向第一个节点时,在循环链表中执行排队和出列操作非常容易。在本文中,我们将通过示例了解循环链表。 Java中循环链表的语法: 以下是语法: 节

用lambda表达式进行Java编程

用lambda表达式进行Java编程

Java系列 2年前 (2022-01-10) 浏览: 368 评论: 0

在JavaOne 2013的技术主题演讲中,Oracle Java平台组首席架构师Mark Reinhold将lambda表达式描述为Java编程模型有史以来最大的一次升级。虽然lambda表达式有很多应用程序,但本文主要关注数学应用程序中经常出现的一个特定示例;也就是说,需要将函数传递给算法。 数学中的许多应用要求函数作为参数传递给算法。大学代数和基础微积分的例子包括解方程或计算函数的积分。15

Java16和Java17的新特性

Java16和Java17的新特性

Java系列 2年前 (2022-01-04) 浏览: 878 评论: 0

Java平台的发展比以往任何时候都要快。让我们来探讨一下今年在Java 16和Java 17的Java创新方面为我们准备了什么。 “Java?这不是前一个时代发展缓慢的企业语言吗?” 虽然这是一种可以理解的情绪,但事实却截然不同。从2018年的Java10开始,Java开发工具包(JDK)每年发布两次,Java平台的发展比以往任何时候都要快。让我们来探索一下现在Java创新方面为我们准备了什么!

Java中的native关键字讲解

Java中的native关键字讲解

Java系列 2年前 (2021-12-27) 浏览: 395 评论: 0

native关键字充当JAVA语言与除JAVA之外的其他语言编写的代码块或库之间的链接,这可能取决于您操作的机器。如果将native关键字应用于一个方法,那么这意味着该方法将通过JNI(JAVA native interface)使用其他语言(如C或C++)编写的本机代码来实现。 Java中Native关键字的语法 本机代码的语法与普通函数定义相同,在函数开头添加了“native”关键字。 例如:

登录

忘记密码 ?

切换登录

注册