652 次浏览
Java 9 对 Process API 进行了改进,用于获取正在运行的进程的 PID、获取进程的子进程和/或后代,并添加了一个新类,用于列出所有正在运行的进程、获取有关任意进程的信息以及遍历进程树。这些方法返回的信息可能是操作系统上正在运行的进程的快照。在下面的示例中,我们可以使用 ProcessHandle 的 pid() 方法获取正在运行的进程的 ID。示例public class ProcessHandleTest { public static void main(String args[]) { ProcessHandle processHandle = ProcessHandle.current(); System.out.println("PID of running Process: " + ... 阅读更多
238 次浏览
JShell 是一个用于学习 Java 的交互式工具,它是一个 REPL(读取-评估-打印-循环),用于评估声明、语句和表达式。在退出 JShell 会话时,我们希望在新的会话中重用之前输入的代码。这可以通过使用命令:/open [File_Path] 来完成。此命令将加载在作为选项提供的文件 [File_Path] 中找到的所有代码和内部命令。在下面的代码片段中,我们可以使用 "/open [File_Path]" 命令从具有 ".jsh" 扩展名的目录加载源代码。C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> ... 阅读更多
311 次浏览
自动模块是我们将放在模块路径上的 jar 文件。有很多现有的库可用于我们的应用程序,其中许多库尚未模块化。为了促进迁移,我们可以将任何库的 jar 文件添加到应用程序的模块路径,然后使用该 jar 文件中的包。它可以隐式地成为一个自动模块,并且可以在模块声明的 requires 指令中指定。jar 的文件名成为其模块名称,该名称必须是有效的 Java 标识符,可以在 "requires" 指令中使用。自动模块:隐式导出所有包类型,因此 ... 阅读更多
472 次浏览
Java 9 为 Java 引入了 JShell,它允许我们评估代码片段,例如声明、语句和表达式。在 JShell 会话期间,我们需要重置它,而无需关闭和重新打开 JShell,然后我们可以使用内部命令:"/reset"。使用此命令,当前会话期间输入的代码将被擦除。当我们想要测试新类、创建新变量等时,它非常有用,同时保留之前使用的名称。在下面的代码片段中,我们创建了变量 x、y 和 str。我们可以使用 "/list" 命令查看所有输入的代码片段。之后,我们可以应用 ... 阅读更多
171 次浏览
在 JShell 工具中执行操作时,它会返回一条消息(命令成功、错误以及创建的变量的类型及其值)。它已使用命令:"/set feedback" 进行自定义。此命令显示当前配置的返回类型以及可用的不同返回模式。jshell> /set feedback | /set feedback normal | | Available feedback modes: | concise | normal | silent | verboseJShell 中有四种可用的反馈模式,如下所示:1) /set feedback normal:这是默认的 JShell 反馈。当我们评估表达式时,JShell 返回相应的结果和一个 ... 阅读更多
2K+ 次浏览
JDK 和 JRE 的目录结构几乎相同,只是 JDK 有两个额外的目录,如 jmods 和 include,并且在 JDK9 版本中也没有 JRE 子目录。JDK 目录是 JDK 软件安装的根目录。此目录还包括版权、自述文件和 src.zip 文件,它们可以是 Java 平台的源代码存档文件。JDK 目录结构:JDK-9 - bin - conf - include - jmods - legal - libJDK/bin 目录包含可执行文件和命令行启动器,这些启动器可以由链接到映像的模块定义。JDK/conf 目录包含 ... 阅读更多
359 次浏览
JShell 是在 Java 9 中引入的 REPL 工具。我们可以使用此工具在命令行提示符下执行简单的代码片段。当我们在 JShell 中输入算术表达式、变量等时,它会显示结果,而不会详细说明创建的变量的类型。在 JShell 中,可以显示有关已执行命令的更多信息,使用详细模式。我们需要使用命令:"/set feedback verbose"(命令可以以 "/" 开头)来获取有关已执行命令的更多信息。在下面的代码片段中,详细模式已开启,并且能够 ... 阅读更多
66 次浏览
JShell 是 Java 9 中引入的官方读取-评估-打印-循环 (REPL)。它提供了一个交互式 shell,用于快速原型设计、调试和学习 Java 和 Java API,而无需 main() 方法。JShell 中的 "/list" 命令打印出该特定会话之前键入的所有代码片段,并使用称为代码片段 ID 的唯一标识符。默认情况下,输出不包含任何仅包含有效语句或表达式的代码片段。我们需要查看所有之前键入的代码,包括错误,然后将 -all 参数传递给 /list 命令。在下面的代码片段中,我们创建了 ... 阅读更多
245 次浏览
垃圾回收或简称 GC 是 Java 中内存管理的核心部分。它负责从内存中清除死对象并回收该空间。GC 使用预定义的垃圾回收器执行清理,这些垃圾回收器使用某些算法。以下列出了一些重要的垃圾回收器类型串行 GC:单线程收集器,适用于数据使用量小的小型应用程序。可以通过指定命令行选项启用它:-XX:+UseSerialGC。并行 GC:并行 GC 使用多个线程执行垃圾回收过程,也称为吞吐量收集器。可以通过显式指定选项启用它:-XX:+UseParallelGC。G1 垃圾优先:G1(垃圾 ... 阅读更多
298 次浏览
Java 9 引入了一个名为 JShell 的交互式 REPL 命令行工具。它允许我们执行 Java 代码片段并获取即时结果。我们可以导入外部类,这些类可以通过类路径从 JShell 会话中访问。Gson 库是一个 Java 序列化/反序列化库,用于将 Java 对象转换为 JSON 并反之亦然。在下面的代码片段中,我们可以在 JShell 中设置类路径jshell> /env --class-path C:\Users\User\gson.jar | Setting new options and restoring state.一旦我们在 JShell 中导入了 gson 库,就能在列表中看到该库。jshell> import com.google.gson.* jshell> /import | import java.io.* | import java.math.* | ... 阅读更多