找到 2637 篇文章 关于 Java

如何在 Java 9 的 JShell 中创建类和对象?

raja
更新于 2020年2月17日 13:36:48

280 次浏览

JShell 是 Java 9 中发布的一个新的 Java shell 工具。它是第一个官方的 REPL(读取-求值-打印-循环)应用程序。此工具有助于执行和评估简单的 Java 程序和逻辑,例如语句、循环、表达式等。Java REPL 在命令提示符下提供了一个简单的编程环境。它可以读取输入,对其进行评估并打印输出。在下面的示例中,我们可以使用命令提示符在 JShell 中创建类和对象。示例jshell> class Employee { ...> private String name; ...>    Employee(String name) { ...>       this.name=name; ...> } ...> ... 阅读更多

Java 9 中的 StackWalker API?

raja
更新于 2020年2月24日 06:05:26

640 次浏览

StackWalker API 允许轻松过滤和延迟访问以在任何方法内执行任务。它是 Java 9 中获取堆栈跟踪信息的有效 API。StackWalker API 中有三个新的重要类:StackWalker、StackWalker.StackFrame 和 StackWalker.Option。StackWalker - 它是 StackWalker API 中的主要类。我们通过使用 StackWalker.forEach() 方法遍历堆栈帧,并通过调用 StackWalker.getCallerClass() 方法以有效的方式获取调用者类。我们通过使用 StackWalker.walk() 方法遍历堆栈跟踪并在堆栈帧流上应用函数。StackWalker.StackFrame - 它是 StackWalker 的静态嵌套类,表示 StackWalker 返回的方法调用。它具有方法…… 阅读更多

Java 9 中 takewhile() 和 dropWhile() 方法的区别?

raja
更新于 2020年2月21日 13:05:17

2K+ 次浏览

Stream API 的 takewhile() 方法接受所有值,直到谓词返回 false,而 Stream API 的 dropWhile() 方法则丢弃所有值,直到它匹配谓词。如果流是有序的,则 takewhile() 方法返回一个流,该流包含从此流中获取的元素的最长前缀,这些元素与谓词匹配,而 dropWhile() 方法返回匹配谓词后的剩余流。如果流是无序的,则 takewhile() 方法返回一个流,该流包含从与给定谓词匹配的流中提取的元素的子集,而 dropWhile() 方法返回一个流,该流包含丢弃……后流的其余元素 阅读更多

Java 9 中的 JShell?

raja
更新于 2020年2月17日 05:05:11

157 次浏览

JShell 是 Java 9 版本中引入的一个新概念。它为 Java 提供了 REPL(读取-求值-打印-循环)功能。使用 JShell,我们可以测试基于 Java 的逻辑和表达式,而无需编译它。REPL 充当即时反馈循环,并且对该特定语言的生产力有很大影响。步骤 1:打开命令提示符并键入 JShell。Microsoft Windows [版本 6.3.9600] (c) 2013 Microsoft Corporation. 保留所有权利。C:\Users\User>JShell | 欢迎使用 JShell -- 版本 9.0.4 | 要查看介绍,请键入:/help intro jshell>步骤 2:启动后,在 JShell 命令窗口中键入 /help(查看 JShell 命令)。jshell> /help | 键入…… 阅读更多

Java 9 中向 @Deprecated 注解添加了哪些属性?

raja
更新于 2020年2月21日 12:14:47

573 次浏览

Java 9 中向 @Deprecated 注解添加了两个新的参数或属性。这些参数是 Since 和 forRemoval,这两个参数都是可选的,当我们无法指定它时,它们具有默认值。Since 此字符串参数指定 API 何时被弃用的版本。此元素的默认值为空字符串。语法@Deprecated(since="")forRemoval 此布尔参数指定 API 是否打算在将来的版本中删除。当我们无法指定它时,默认值为 false。语法@Deprecated(forRemoval=)示例public class DeprecatedAnnotationTest {    public static void main(String[] args) {       DeprecatedAnnotationTest test = new DeprecatedAnnotationTest();       test.method1();   ... 阅读更多

Java 9 中 CompletableFuture API 的改进有哪些?

raja
更新于 2020年2月21日 12:15:49

252 次浏览

CompletableFuture API 用于 Java 中的异步编程。这意味着我们可以通过在与 main() 线程不同的线程上运行任务并通知 main() 线程其进度、完成或失败来编写非阻塞代码。Java 9 在 CompletableFuture API 中引入了一些改进,它们是:“支持超时和延迟”、“改进对子类的支持”和“添加新的工厂方法”。支持超时和延迟public CompletableFuture orTimeout(long timeout, TimeUnit unit) 上述方法已用于指定如果任务在特定时间段内未完成,程序将停止并抛出 TimeoutException。public CompletableFuture completeOnTimeout(T value, long timeout, ... 阅读更多

Java 9 中私有方法的 @SafeVarargs 注解?

raja
更新于 2020年2月21日 12:16:34

281 次浏览

@SafeVarargs 注解是在 Java 7 中引入的。此注解适用于接受 varargs 参数的 final 和 static 方法或构造函数。此注解用于确保方法不对其 varargs 参数执行不安全的操作。从 Java 9 开始,@SafeVarargs 注解也适用于私有实例方法。语法@SafeVarargs private void methodName(...) {    // 一些语句 }示例import java.util.ArrayList; import java.util.List; public class SafevarargsTest {    @SafeVarargs     // 将 @SafeVarargs 应用于私有方法    private void display(List... names) {       for(List name : names) {          System.out.println(name);       }    }    public static void ... 阅读更多

Java 9 中下划线关键字的用途是什么?

raja
更新于 2020年2月13日 10:29:35

1K+ 次浏览

在早期版本的 Java 中,下划线 (“_”) 用作标识符或用于创建变量名。从 Java 9 开始,下划线字符是保留关键字,不能用作标识符或变量名。如果我们使用单个下划线字符作为标识符,则程序将无法编译并抛出编译时错误,因为它现在是一个关键字,不能在 Java 9 或更高版本中用作变量名。示例public class UnderscoreKeywordTest {    public static void main(String args[]) {       int _ = 50       System.out.println(_);   ... 阅读更多

Java 9 中能否将菱形运算符与匿名内部类一起使用?

raja
更新于 2020年2月21日 12:18:26

119 次浏览

是的,从 Java 9 开始,我们可以将菱形运算符与匿名内部类一起使用。使用菱形运算符的目的是避免冗余代码并使其更易于阅读,方法是不再在表达式的右侧使用泛型类型。菱形运算符仅用于普通类,而 Java 7 中不适用于匿名内部类。如果我们尝试将其用于匿名内部类,编译器将抛出错误。在下面的示例中,我们已将菱形运算符与匿名内部类一起使用。示例import java.util.*; public class DiamondOperatorTest {    public static void main(String args[]) {       String[] str = ... 阅读更多

Java 9 中向 Stream API 添加了哪些新功能?

raja
更新于 2020年2月21日 12:20:30

110 次浏览

在 Java 9 中,甲骨文公司向 Stream API 添加了四种有用的新方法。这些方法是 iterate()、ofNullable()、takeWhile() 和 dropWhile()。iterate() iterate() 可用作传统 for 循环的流版本替代。此方法已通过添加另一个参数 Predicate 接口得到改进,该接口允许我们根据使用 Predicate 接口定义的条件停止这些无限数字。示例import java.util.stream.Stream; public class StreamIterateMethodTest {    public static void main(String[] args) {       Stream.iterate(1, i -> i < 5, i -> i + 1).forEach(System.out::println); // iterate()    } }输出1 2 3 4ofNullable() ofNullable() 方法返回元素的流对象,如果…… 阅读更多

广告