找到 34423 篇文章 关于编程
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 ... 阅读更多
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) { // 返回取决于名称/模块的日志记录器 } }如果找不到具体的实现,则... 阅读更多
275 次浏览
StackWalker API 在程序执行期间提供堆栈跟踪中的信息流。此 API 需要虚拟机捕获整个堆栈的快照,并返回用于过滤目的的元素数组。我们需要使用 walk() 方法跳过、删除和限制堆栈帧。我们还可以使用 filter() 方法按类过滤堆栈帧以获取第一个匹配帧和所有匹配帧。在下面的示例中,我们可以使用 StackWalker API 过滤堆栈帧。示例:import java.lang.StackWalker.StackFrame; import java.util.*; import java.util.stream.*; public class StackWalkerFilterTest { ... 阅读更多
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() { ... 阅读更多
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; ... 阅读更多
680 次浏览
自从 Java 9 以来,我们可以通过引入四个核心接口来创建 Reactive Streams:Publisher、Subscriber、Subscription、Processor 和一个具体的类:SubmissionPublisher,它实现了 Publisher 接口。每个接口都扮演不同的角色,对应于 Reactive Streams 的原则。我们可以使用 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; ... 阅读更多
580 次浏览
Java 9 在 java.util.concurrent.Flow 包下引入了 Reactive Streams,它支持可互操作的发布-订阅框架。它处理跨异步边界的异步数据流(将元素传递到另一个线程或线程池),接收方不必强制缓冲任意数量的数据,因此不会发生缓冲区溢出。Flow API 包含四个相互关联的核心接口:Publisher、Subscriber、Subscription 和 Processor。语法:@FunctionalInterface public static interface Publisher { public void subscribe(Subscriber
700 次浏览
在 Java 9 中,Process API 用于控制和管理操作系统进程。ProcessHandle 类提供进程的原生进程 ID、启动时间、累积 CPU 时间、参数、命令、用户、父进程和子进程。它还提供了一种方法来检查进程的活动状态和销毁进程。我们使用 allProcesses() 方法将所有 ProcessHandle 数据作为流检索。在下面的示例中,我们检索所有进程信息。示例:import java.util.stream.Stream; import java.util.Optional; import java.util.stream.Stream; public class AllProcessesTest { public static void main(String args[]) throws InterruptedException { System.out.println("---------------------------"); System.out.println("All Processes:"); Stream processStream = ProcessHandle.allProcesses(); processStream.forEach(process -> ... 阅读更多
1K+ 次浏览
Java 9 引入了进程处理类和相关的 API。我们可以使用 `ProcessHandle` 接口和相关方法来获取进程 ID (pid) 和其他相关进程的信息。如果需要获取某个进程的所有子进程,可以使用 `java.lang.ProcessHandle.children()` 方法。此方法返回一个流,通常情况下,一个进程没有子进程。在下面的示例中,我们可以获取第一个进程并检索其子进程信息。示例:`import java.util.stream.Stream; import java.util.Optional; public class ChilderenProcessTest { public static void main(String args[]) throws InterruptedException { System.out.println("---------------------------"); System.out.println("Children Processes:"); Optional processHandle = ... 阅读更多
1K+ 次浏览
在 Java 9 中,Process API 提供了一种简单的方法来获取有关进程的大量信息。`ProcessHandle` 接口可以识别并控制本地进程,并提供方法来检查进程的存活性并销毁进程,而 `ProcessHandle.Info` 接口可以提供进程信息的快照。我们可以使用 `ProcessHandle` 接口的 `destroy()` 方法来销毁进程。在下面的示例中,我们需要使用 `ProcessHandle` 接口来终止一个进程。示例:`import java.io.File; import java.io.IOException; import java.util.Objects; public class DestroyProcessTest { public static void main(String[] args) throws InterruptedException { System.out.println("---------------------------"); ... 阅读更多
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP