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.* | ... 阅读更多