找到 2637 篇文章 关于 Java

Java 9 中的紧凑字符串是什么?

raja
更新于 2020-03-19 09:17:42

285 次浏览

从 Java 9 开始,JVM 通过使用名为紧凑字符串的新功能来优化字符串。字符串可以使用 byte[] 数组表示,而不是 char[] 数组。我们可以使用 UTF-16 或 Latin-1 生成每个字符的一个或两个字节。如果 JVM 检测到字符串仅包含 ISO-8859-1/Latin-1 字符,则字符串在内部使用每个字符一个字节。字符串是否以紧凑字符串表示是在创建字符串时检测到的。此功能默认启用,并使用 -XX:-CompactStrings 关闭。它不会恢复到 char[] 实现,而是将所有字符串存储为 ... 阅读更多

如何在 Java 9 中显示当前线程的所有栈帧?

raja
更新于 2020-03-19 07:36:28

311 次浏览

栈遍历 API 可以提供一种灵活的机制来遍历和提取来自调用栈的信息,允许我们以延迟的方式过滤和访问帧。StackWalker 类是栈遍历 API 的入口点。栈跟踪是在某个时间点调用栈的表示形式,其中每个元素都表示方法调用。它包含从线程开始到生成点的所有调用。在下面的示例中,我们可以通过使用 StackWalker API 打印/显示当前线程的所有栈帧。示例import java.lang.StackWalker.StackFrame; import java.lang.reflect.Method; import java.util.List; import java.util.stream.Collectors; public ... 阅读更多

如何在 Java 9 中的 JShell 中实现斐波那契数列?

raja
更新于 2020-03-17 10:51:37

120 次浏览

JShell 是 Java 9 中引入的一个 Java shell 工具,允许我们执行 Java 代码并立即打印结果。它是一个 REPL(读取-评估-打印-循环)工具,从命令行提示符运行。如果每个后续数字都是前两个数字的总和,则该数字被称为斐波那契数列。在下面的示例中,我们能够在 JShell 工具中实现斐波那契数列。C:\Users\User\>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> int x=0, y=1, z=0, count=5; x ==> 0 y ==> 1 z ==> 0 count ==> ... 阅读更多

Java 9 中添加到 String 类的新方法是什么?

raja
更新于 2020-03-17 08:19:14

174 次浏览

String 是 Java 中的一个不可变类,在 Java 9 中向 String 类添加了两个新方法。这些方法是 chars() 和 codePoints()。这两个方法都返回 IntStream 对象。1) chars():String 类的 chars() 方法可以返回一个 int 流,该流从该序列中扩展 char 值的零扩展。语法public IntStream chars()示例import java.util.stream.IntStream; public class StringCharsMethodTest { public static void main(String args[]) { String str = "Welcome to TutorialsPoint"; IntStream intStream = str.chars(); ... 阅读更多

如何在 Java 9 中获取 Process API 的父进程?

raja
更新于 2020-03-16 11:51:47

653 次浏览

ProcessHandle 接口允许我们执行某些操作,并检查与之相关的进程的状态。它提供进程的本地 pid、启动时间、CPU 时间、用户、父进程和子进程。我们可以通过调用 parent() 方法访问父进程,返回值为 Optional。如果子进程没有父进程或父进程不可用,则为空。语法Optional parent()示例import java.io.*; public class ParentProcessTest {    public static void main(String args[]) {       try {          Process notepadProcess = new ProcessBuilder("notepad.exe").start();          ProcessHandle parentHandle = notepadProcess.toHandle().parent().get();         ... 阅读更多

如何在 Java 9 中的 JShell 中实现 lambda 表达式?

raja
更新于 2020-03-16 09:31:21

271 次浏览

JShell 是 Java 的第一个 REPL 和命令行工具,它提供了 Java 编程语言元素的交互式使用。我们可以通过使用此工具在类的隔离中测试功能。JShell 在命令行中创建一个简单易用的编程环境,该环境从用户那里获取输入,读取它并打印结果。lambda 表达式是在不属于任何类的情况下创建的函数。在下面的示例中,我们可以在 JShell 中实现 lambda 表达式。C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> Consumer s = (String s) -> System.out.println(s) ... 阅读更多

Java 9 中的变量句柄是什么?

raja
更新于 2020-03-13 13:47:12

465 次浏览

变量句柄是指一组变量或对一组变量的引用,包括堆数据结构中静态字段、非静态字段和其他组件的外部数组元素。这意味着变量句柄类似于现有的方法句柄。它可以使用 java.lang.invoke.VarHandle 类表示。我们可以使用 java.lang.invoke.MethodHandles.Lookup 静态工厂方法创建变量句柄对象。它还可以用于访问数组中的单个元素和 byte[] 数组。语法public abstract class VarHandle extends Object示例import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; import java.util.Arrays; public class VarHandleTest {    public static void main(String args[]) {       VarHandle varHandle = MethodHandles.arrayElementVarHandle(int[].class); ... 阅读更多

ProcessHandle 接口在 Java 9 中的重要性是什么?

raja
更新于 2020-03-13 11:27:01

476 次浏览

ProcessHandle 接口在 Java 9 中引入。它允许我们执行操作并检查与之相关的进程的状态。此接口提供进程的本地进程 ID (pid)、启动时间、累积 CPU 时间、参数、命令、用户、父进程和子进程。ProcessHandle 接口允许我们执行以下操作。它返回一个 ProcessHandle.Info,其中包含有关进程的更多信息进程的 Pid如果它还活着检索进程直接子代的快照检索进程所有后代的快照检索所有当前正在运行的进程的快照允许进程被销毁它返回一个 CompletableFuture,其中包含一个 ProcessHandle,用于在 ... 阅读更多

Java 9 中的 Http/2 客户端是什么?

raja
更新于 2020-03-13 08:52:38

398 次浏览

Http/2 客户端 API 在 Java 9 中引入。它比 Http/1.1 有更多性能改进,并且还支持服务器端推送事件。这使得网站浏览起来更高效、更快。Http/2 客户端是一个名为 jdk.incubator.httpclient 的孵化器模块,这意味着所有功能尚未最终确定,并且在未来的 Java 版本中可能会出现新的更改。它导出 jdk.incubator.http 包,其中包含所有公共 API。要使用 Http/2 客户端,我们需要使用孵化器模块,我们只需将 httpclient 模块传递到 JShell 中,如下面的“--add-modules”命令所示C:\>jshell -v --add-modules jdk.incubator.httpclient | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro示例jshell> import jdk.incubator.http.*; jshell> HttpClient httpClient ... 阅读更多

如何在 Java 9 中调试 JShell?

raja
更新于 2020-03-13 07:05:27

304 次浏览

JShell 是一个 REPL 工具,允许运行代码片段而无需将其放在类中。此工具提供了一种在 Java 中评估声明、语句和表达式的方法,无需创建 main() 方法即可测试代码的某些部分。命令“/debug”可用于显示 JShell 工具实现的调试信息。键入“/debug”命令后,调试模式即开启。启用调试模式后,键入一些简单的加法或字符串,则会打印如下内容。示例 1jshell> /debug | Debugging onjshell> 5+3 Compiling: 5+3 Kind: EXPRESSION_STATEMENT ... 阅读更多

广告