找到关于编程的34423 篇文章
335 次浏览
JShell 是一个交互式 Java Shell 工具,它使我们能够从 shell 执行 Java 代码并立即显示输出。JShell 是从命令行运行的 REPL(读取-评估-打印-循环)工具。我们只需在命令提示符中键入“jshell”即可启动 JShell,并使用“/exit”命令退出 jshell。对于小的代码片段,我们不需要在 JShell 中创建 main() 方法。我们还可以使用此工具实现列表、映射和集合等主要集合。在下面的程序中,我们可以实现一个带有各种场景的 ArrayList。示例C:\Users\User\Desktop\Java 9 QNA>jshell | 欢迎使用 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("所有进程:"); Stream processStream = ProcessHandle.allProcesses(); processStream.forEach(process -> ... 阅读更多
1K+ 次浏览
Java 9 中引入了进程处理类和相关的 API。我们可以使用 ProcessHandle 接口和相关方法来获取进程 ID 以及其他相关进程的信息。如果需要获取某个进程的所有子进程,可以使用 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