找到 2637 篇文章 关于 Java

如何在 Java 9 的 JShell 中实现字符串?

raja
更新于 2020-03-13 05:26:34

294 次浏览

JShell 是 Java 在 Java 9 中引入的第一个官方 REPL 应用程序。它是一个工具,有助于执行和评估简单的 Java 程序和小型逻辑,例如语句、简单程序、循环、表达式等。Java REPL 可以在命令行提示符下提供简单的编程环境。它读取输入,对其进行评估,然后打印输出。在下面的示例中,我们可以使用 String 类的预定义方法来实现一个字符串。示例jshell> String str = "{abcd}"; str ==> "{abcd}" jshell> str.substring(2, str.length() - 1) $7 ==> "bcd" jshell> String s1 = new String("abcd"); s1 ==> "abcd" jshell> String s2 ... 阅读更多

Java 9 中的统一 JVM 日志记录是什么?

raja
更新于 2020-03-12 13:02:43

443 次浏览

Java 9 可以为 JVM 组件提供一个具有详细级别的通用日志系统。通过使用新的命令行选项:-Xlog 用于所有日志设置,统一的 JVM 日志记录为我们提供了一个易于配置的工具来执行复杂系统级 JVM 组件的根本原因分析 (RCA)。命令行 -Xlog 可用于控制所有日志记录 JVM 组件。-Xlog 的参数遵循以下规则:按它们在命令行中出现的顺序应用多个参数。最后的配置规则:对于相同的输出,多个参数可以按给定顺序相互覆盖。Xlog: disable 关闭所有日志记录并清除所有配置... 阅读更多

Java 9 中的通用语言环境数据存储库 (CLDR) 是什么?

raja
更新于 2020-03-12 10:15:10

435 次浏览

Java 9 的国际化增强功能包括默认启用 CLDR 语言环境数据。有四个不同的语言环境数据源,可以使用以下关键字标识:CLDR:Unicode 通用语言环境数据存储库 (CLDR) 项目提供的语言环境数据。HOST:当前用户对其底层操作系统的设置进行的自定义。根据操作系统,可以支持日期、时间、数字和货币等格式。SPI:已安装的 SPI 提供程序中实现的语言环境敏感服务。COMPAT (JRE):与 Java 9 之前的版本兼容的语言环境数据。JRE 仍然可以用作值,但已弃用,将来会删除。在 Java 中... 阅读更多

Java 9 中的新版本方案是什么?

raja
更新于 2020-03-12 08:15:26

547 次浏览

从 Java 9 开始,版本控制可以与语义版本控制保持一致。版本号可以是点分隔的非空字符串序列。它包含三个主要部分:主版本号、次版本号和安全版本号。新的版本方案已记录在 Runtime.Version 类中,并且可以从中访问版本信息。版本号具有以下格式:$MAJOR.$MINOR.$SECURITY(.$otherpart)?$MAJOR 是主版本号,在发布通常会更改平台规范的主要版本时递增。对于 JDK 9,此值为 9。$MINOR 是次版本号,在包含错误修复和增强功能的版本中递增... 阅读更多

如何在 Java 9 的 JShell 中实现 ArrayList?

raja
更新于 2020-03-11 13:52:23

335 次浏览

JShell 是一个交互式 Java Shell 工具,使我们能够从 shell 执行 Java 代码并立即显示输出。JShell 是从命令行运行的 REPL(读取-评估-打印-循环)工具。我们只需在命令提示符下键入“jshell”即可启动 JShell,并使用“/exit”命令退出 jshell。对于小的代码片段,我们不需要在 JShell 中创建 main() 方法。我们还可以使用此工具实现主要的集合,例如列表、映射和集合。在下面的程序中,我们可以实现一个带有各种场景的 ArrayList。示例C:\Users\User\Desktop\Java 9 QNA>jshell | Welcome to JShell ... 阅读更多

Java 9 中的平台日志记录 API 是什么?

raja
更新于 2020-03-11 12:28:37

232 次浏览

在 Java 9 中,平台日志记录 API 可用于使用服务接口为这些消息的使用者记录消息。LoggerFinder 的实现已在 System ClassLoader 的帮助下使用 java.util.ServiceLoader API 加载。基于此实现,应用程序可以在不配置 java.util.logging 的情况下插入其自己的外部日志记录后端。我们可以将类名或模块传递给 LoggerFinder,以便它知道返回哪个记录器。public class MyLoggerFinder extends LoggerFinder {    @Override    public Logger getLogger(String name, Module module) {       // 返回取决于 name/module 的记录器    } }如果找不到具体的实现,则... 阅读更多

如何在 Java 9 中使用 StackWalker API 过滤堆栈帧?

raja
更新于 2020-03-11 10:11:48

275 次浏览

StackWalker API 在程序执行期间提供堆栈跟踪中的信息流。此 API 需要虚拟机捕获整个堆栈的快照,并返回用于过滤目的的元素数组。我们需要使用 walk() 方法跳过、删除和限制堆栈帧。我们还可以使用 filter() 方法按类过滤堆栈帧以获取第一个匹配帧和所有匹配帧。在下面的示例中,我们可以使用 StackWalker API 过滤堆栈帧。示例import java.lang.StackWalker.StackFrame; import java.util.*; import java.util.stream.*; public class StackWalkerFilterTest { ... 阅读更多

如何在 Java 中使用 StackWalker API 打印不同的堆栈帧?

raja
更新于 2020-03-11 07:26:27

224 次浏览

Java 9 定义了一个 StackWalker API,它提供延迟和帧过滤。StackWalker 对象允许我们遍历和访问堆栈,并包含一个有用的方法:walk()。此方法为当前线程打开一个 StackFrame 流,然后使用该 StackFrame 流应用函数。我们需要获取 StackWalker 对象,然后使用 StackWalker.getInstance() 方法。在下面的示例中,我们可以打印不同的堆栈帧:所有堆栈帧、跳过一些堆栈帧和使用 StackWalker API 限制堆栈帧。示例import java.lang.StackWalker.StackFrame; import java.util.*; import java.util.stream.*; public class StackWalkerTest {    public static void main(String args[]) {       new StackWalkerTest().walk();    }    private void walk() {     ... 阅读更多

何时在 Java 9 中使用 CompletableFuture 的 delayedExecutor() 方法?

raja
更新于 2020-03-09 10:59:05

3K+ 次浏览

delayedExecutor() 方法已添加到 Java 9 中的 CompletableFuture 类中。CompletableFuture 定义了 delayedExecutor() 的两种重载方法:第一种方法从 CompletableFuture 对象用于在延迟后执行任务的默认 Executor 对象返回一个 Executor 对象,并且新的 Executor 对象可以执行任务执行,而第二种方法也返回一个 Executor 对象,但它是在延迟后将我们传递到此方法中的 Executor 对象,并且新的 Executor 对象也可以执行任务执行。语法public static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor) public static Executor delayedExecutor(long delay, TimeUnit unit)示例import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; ... 阅读更多

我们如何在 Java 9 中实现 SubmissionPublisher 类?

raja
更新于 2020-03-09 09:45:11

680 次浏览

从Java 9开始,我们可以通过引入四个核心接口:Publisher、Subscriber、Subscription、Processor,以及一个具体的实现Publisher接口的类:SubmissionPublisher来创建响应式流。每个接口扮演不同的角色,对应于响应式流的原则。我们可以使用SubmissionPublisher类的submit()方法将提供的项目发布到每个订阅者。语法public class SubmissionPublisher extends Object implements Flow.Publisher, AutoCloseable在下面的示例中,我们可以实现SubmissionPublisher类示例import java.util.concurrent.Flow.Subscriber; import java.util.concurrent.Flow.Subscription; import java.util.concurrent.SubmissionPublisher; class MySubscriber implements Subscriber {    private Subscription subscription;    private String name;    public MySubscriber(String name) {       this.name = name;   ... 阅读更多

广告