找到关于 Java 的 2637 篇文章
199 次查看
REPL 代表 Read-Evaluate-Print-Loop(读取-求值-打印-循环)。它包含一些状态,JShell 中的每个语句都有一个状态。此状态拒绝代码片段和变量的执行状态。它可以通过 JShell 实例的 eval() 方法的结果来确定,该方法评估代码。下面列出了七种不同的状态。DROPPED:代码片段处于非活动状态。NONEXISTENT:代码片段处于非活动状态,因为它尚不存在。OVERWRITTEN:代码片段处于非活动状态,因为它已被新的代码片段替换。RECOVERABLE_DEFINED:代码片段是一个声明代码片段,其主体中可能存在可恢复的未解析引用或其他问题。RECOVERABLE_NOT_DEFINED:代码片段是一个声明代码片段,… 阅读更多
81 次查看
Java Shell(简称 JShell)是一个用于学习 Java 和原型设计 Java 代码的交互式 REPL 工具。它会根据输入评估声明、语句和表达式,并立即打印结果,并从命令行运行。封装是 Java 中的一个重要概念,用于确保“敏感”数据对用户隐藏。为此,我们必须将类变量声明为私有,并提供公共 get 和 set 方法来访问和更新私有变量的值。在下面的代码片段中,我们为 Employee 类实现了封装概念。jshell> class Employee { ...> private String firstName; ...> ... 阅读更多
175 次查看
在 Java 9 中,引入了一项新功能“多版本 jar 格式”,其中 jar 格式增强了可以根据平台维护和使用的不同版本的 Java 类或资源。可以使用 jar 命令创建包含为 Java 8 和 Java 9 版本编译的同一类的两个版本的多分支 jar 文件,并显示警告消息,说明这两个类相同。C:\Users\User\tutorialspoint>jar --create --file MR.jar -C sampleproject-base demo --release 9 -C sampleproject-9 demo Warning: entry META-INF/versions/9/demo/SampleClass.class contains a class thatis identical to an entry already in the jar “ --release 9” 选项可以告诉 jar … 阅读更多
121 次查看
JShell 是作为 Java 9 的一部分引入的第一个 REPL(读取-求值-打印-循环)交互式工具。它会根据输入评估声明、语句和表达式,并立即显示结果,它从命令行提示符运行。回文串是一个字符串,当反转时它保持不变,或者一个单词在向前和向后方向上的拼写方式相同。在下面的示例中,我们能够在 JShell 工具中检查给定的字符串是否为回文。C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> String str="LEVEL"; str ==> "LEVEL" jshell> ... 阅读更多
94 次查看
在 Java 9 中,可以通过本地调用检索进程的 PID,并且可以通过 ProcessHandle 来实现。我们还可以检索有关当前正在运行的 Java 进程 (JVM) 和包含进程详细信息的 Info(ProcessHandle 的内部类)类的信息。我们还可以返回系统中所有当前正在运行的进程的快照。示例import java.lang.ProcessHandle.Info; public class ProcessAPIChanges { public void detailedAPIInfo(ProcessHandle processHandle) { Info processInfo = processHandle.info(); System.out.println("Detailed Process Info is Provided Below: "); System.out.println("[Executable Name] " + processInfo.command().get()); System.out.println("[User Name] " + ... 阅读更多
140 次查看
JShell 是一个用于学习 Java 语言和原型设计 Java 代码的交互式工具。它是一个 REPL(读取-求值-打印-循环),它在输入后立即评估声明、语句和表达式,并在 JShell 中打印结果。此工具从命令行提示符运行。public、protected、private、static 和 final 等修饰符不允许在顶级声明中使用,并会显示警告。synchronized、native、abstract 和 default 顶级方法等关键字不允许使用,并会导致错误。在下面的代码片段中,我们创建了 final 和 static 变量。它向用户打印一条警告消息,“不允许使用修饰符 'final' 或 'static' ... 阅读更多
200 次查看
MethodHandles 类是在 Java 7 版本中引入的。此类主要添加了一些静态方法以改进功能,并分为几类,例如 Lookup 方法,这些方法有助于为方法和字段创建方法句柄;组合器方法,这些方法将预先存在的处理程序组合或转换为新的处理程序;以及工厂方法,这些方法创建模拟其他常用 JVM 操作或控制流模式的方法句柄。MethodHandles 类在 Java 9 中得到了增强,引入了许多更改并添加了新的静态方法,例如 arrayLength()、arrayConstructor()、zero() 等。语法public class MethodHandles extends Object示例import java.lang.invoke.MethodHandle; import java.lang.invoke.MethodHandles; public class MethodHandlesTest { public void MethodHandle1() { ... 阅读更多
150 次查看
StackWalker API 是 Java 9 中的一项新功能,它改进了前代堆栈跟踪元素的性能。它还可以提供一种方法来过滤异常情况下的堆栈元素或了解应用程序行为。在 Java 9 中,访问堆栈跟踪的方式非常有限,并且一次提供所有堆栈信息。在下面的示例中,我们需要打印 Stack Frame 中的所有属性。示例import java.lang.StackWalker.StackFrame; import java.util.*; import java.util.stream.*; import java.lang.StackWalker.Option; public class AllAttributesTest { public static void main(String args[]) { System.out.println("Java 9 Stack Walker API - Print all ... 阅读更多
773 次查看
Thread.onSpinWait() 方法是在 Java 9 中引入的。它是 Thread 类的静态方法,可以在繁忙等待循环中选择性地调用。它允许 JVM 在某些系统体系结构上发出处理器指令以提高此类自旋等待循环中的响应时间,并降低核心线程消耗的功率。它可以使 Java 程序的整体功耗受益,并允许其他核心线程在相同的功耗范围内以更快的速度执行。语法public static void onSpinWait()示例public class ThreadOnSpinWaitTest { public static void main(final String args[]) throws InterruptedException { ... 阅读更多
379 次查看
JShell 工具也称为 REPL(读取-求值-打印-循环),它是在 Java 9 中引入的,允许我们执行 Java 代码并获得即时结果。我们可以快速评估表达式或简短的算法,而无需创建新项目、编译或构建它。借助 JShell,我们可以执行表达式,使用导入,定义类、方法和变量。我们可以使用“/types”命令列出当前 JShell 会话中定义的所有类、接口和枚举。在下面的代码片段中,我们在 JShell 工具中创建了“Test”类、“TestInterface”接口和枚举“EnumTest”。C:\Users\User> jshell | Welcome to JShell -- Version 9.0.4 | For ... 阅读更多