找到 2637 篇文章 关于 Java

如何在 Java 9 中的 JShell 中实现 HashMap、LinkedHashMap 和 TreeMap?

raja
更新于 2020-05-01 17:24:58

149 次浏览

JShell 是 Java 9 中引入的一个命令行提示工具,也称为 REPL 工具,用于评估简单的语句、执行语句并立即打印输出。Map 接口指定了一个用于以键/值对形式实现元素集合的契约。实现 Map 接口的 Java 集合类有 HashMap、LinkedHashMap 和 TreeMap。在下面的代码片段中,HashMap 的元素不能保证以插入顺序或键的排序顺序存储。代码片段 1jshell> HashMap hashMap = new HashMap(); hashMap ==> {} jshell> hashMap.put("Adithya", 101); $2 ==> null jshell> hashMap.put("Jai", 102); $3 ==> null ... 阅读更多

Java 9 中 CompletableFuture 和 Future 之间的区别?

raja
更新于 2020-05-01 11:45:14

6K+ 次浏览

CompletableFuture 类在 Java 中实现了 Future 接口。CompletableFuture 可以用作已明确完成的 Future。Future 接口没有提供很多功能,我们需要使用 get() 方法获取异步计算的结果,该方法是被阻塞的,因此没有范围以非阻塞方式运行多个依赖任务,而 CompleteFuture 类可以提供链式多个依赖任务的功能,这些任务异步运行,因此我们可以创建一个任务链,其中下一个任务在当前任务的结果可用时触发。语法public class CompletableFuture extends Object implements Future, CompletionStage示例import java.util.function.Supplier; import java.util.concurrent.CompletableFuture; ... 阅读更多

如何在 Java 9 中获取有关 Process API 信息的快照?

raja
更新于 2020-05-01 08:33:51

167 次浏览

Java 9 通过包含新方法并引入新的接口 ProcessHandle 和 ProcessHandle.Info 来改进 Process API,以获取有关进程及其信息的所有详细信息。ProcessHandle 接口可以识别和提供对本机进程的控制。可以监视每个单独的进程的存活性、列出其子进程、获取有关进程的信息或销毁它。ProcessHandle.Info 接口提供有关进程的信息快照。语法ProcessHandle.Info info()示例public class ProcessSnapShotTest {    public static void main(String[] args) {       ProcessHandle currentProcessHandleImpl = ProcessHandle.current();             // 使用 ProcessHandle.Info 获取当前正在运行的进程的进程快照:       ProcessHandle.Info processInfo = ... 阅读更多

Java 9 中 destroyForcibly() 方法的重要性?

raja
更新于 2020-04-30 17:21:25

314 次浏览

destroyForcibly() 方法可用于终止进程。如果进程已完成或已冻结,则需要它。例如,在调用 destroyForcibly() 后,isAlive() 方法返回 true。如果成功请求终止,则 destroyForcibly() 方法返回 true,否则返回 false。语法boolean destroyForcibly()在下面的示例中,我们将能够启动记事本应用程序,并在调用 destroyForcibly() 方法后将其终止。示例import java.io.IOException; import java.lang.ProcessBuilder; public class DestroyForciblyTest {    public static void main(String args[]) throws IOException, InterruptedException {       ProcessBuilder pBuilder = new ProcessBuilder();       pBuilder.command("notepad.exe");       ... 阅读更多

如何在 Java 9 中的 JShell 中实现 Set 接口?

raja
更新于 2020-04-30 11:44:59

126 次浏览

JShell 是 Java 9 中的一个命令行工具,已用于执行简单的语句,如表达式、类、接口、方法等。Set 是 Java 中的一个接口,它指定了具有唯一元素的集合的契约。如果 object1.equals(object2) 返回 true,则只有 object1 和 object2 中的一个在 Set 实现中占有一席之地。在下面的代码片段中,我们必须使用 Set.of() 方法。Set.of() 方法返回的集合是不可变的,因此不支持 add() 方法。如果我们尝试添加元素,则会抛出 UnsupportedOperationException。如果我们想改为创建 HashSet 集合,它支持 ... 阅读更多

Java 9 中 Jdeps 和 Jdeprscan 工具之间的区别?

raja
更新于 2020-04-30 08:23:25

483 次浏览

Jdeps 工具可用于分析我们类的依赖关系。运行“jdeps -jdkinternals jararchive.jar”命令会打印使用 Java 内部 API 的所有类的列表。Jdeps 工具返回依赖项的详细描述,而 Jdeprscan 是另一个有用的工具,尤其是在与“-for-removal”标志结合使用时。此工具向我们显示了给定 jar 存档中所有已弃用 API 的用法,并且只能显示 jdk 方法的已弃用用法,而不能使用此工具检查第三方 jar 中的弃用。Jdeps 工具:“jdeps”是一个类依赖关系分析器工具,可用于包级 ... 阅读更多

Java 9 中 jcmd 工具的重要性是什么?

raja
更新于 2020-04-29 14:18:03

111 次浏览

"jcmd" 是 JVM 诊断工具,它是一个命令行工具,用于针对本地机器上的给定 JVM 运行诊断命令。此工具已包含在自 Java 7 版本以来的 JDK 安装中,它可以由“%java_home%\bin\jcmd.exe”程序文件表示。如果我们已将“%java_home%\bin”目录包含在“path”环境变量中,则可以运行“jcmd -h”命令以查看所有选项的完整列表,如下所示C:\Users\User>jcmd -h Usage: jcmd    or: jcmd -l    or: jcmd -h    command must be a valid jcmd command for the selected jvm.    Use the command "help" to ... 阅读更多

Java 9 中类加载器的更改是什么?

raja
更新于 2020-04-29 10:49:22

780 次浏览

所有 Java 程序都在 Java 虚拟机 (JVM) 上运行。编译后,Java 类将转换为平台和机器无关的字节码,并且编译后的类将存储为 .class 文件。每当我们尝试使用它时,ClassLoader 都会将该类加载到内存中。当类被名称引用时,类会被引入 Java 环境。类的加载是由类加载器完成的,一旦类开始运行,main() 方法就是启动该类的一种方式。Java 9 中类加载器有一些细微的更改:Java 9 中不再存在系统类加载器,... 阅读更多

如何在 Java 9 中显示所有带有类加载器的模块?

raja
更新于 2020-04-29 09:11:04

401 次浏览

在 Java 9 之前,扩展和应用程序类加载器是 java.net.URLClassLoader 类的实例。在 Java 9 中,类加载器的分类发生了变化,我们有了平台类加载器,而不是外部类加载器。使用平台类加载器的目的是,默认情况下,由引导类加载器加载的类具有所有权限。在下面的示例中,我们可以显示所有带有类加载器的模块。示例import static java.util.Objects.isNull; public class Java9ClassLoaderTest {    public static void main(String args[]) {       ModuleLayer layer = ModuleLayer.boot();       layer.modules().forEach(module -> { ... 阅读更多

Java 9 中 module-info 文件中的“export”子句有什么用?

raja
更新于 2020-04-28 14:10:29

2K+ 次浏览

模块是由代码和数据组合而成,它具有名称,声明对其他模块的依赖关系,导出包含可从模块外部访问的公共类型的包,并指定其使用的服务或提供的服务实现。所有这些都在 module-info.java 文件中指定,该文件包含在模块的根目录中。在 "module-info.java" 文件中可以使用两种类型的 "export" 子句。1) export:默认情况下,模块的 public 类型不再在模块外部可见。为了使给定包的 public 类型从 ... 阅读更多

广告