找到关于 Java 的2637 篇文章
280 次浏览
JShell 是 Java 9 中发布的一个新的 Java shell 工具。它是第一个官方的 REPL(读取-求值-打印-循环)应用程序。此工具有助于执行和评估简单的 Java 程序和逻辑,例如语句、循环、表达式等。Java REPL 在命令提示符下提供了一个简单的编程环境。它可以读取输入、对其进行评估并打印输出。在下面的示例中,我们可以使用命令提示符在 JShell 中创建类和对象。示例jshell> class Employee { ...> private String name; ...> Employee(String name) { ...> this.name=name; ...> } ...> ... 阅读更多
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 返回的方法调用。它具有方法... 阅读更多
2K+ 次浏览
Stream API 的 takewhile() 方法接受所有值,直到谓词返回 false,而 Stream API 的 dropWhile() 方法则丢弃所有值,直到它匹配谓词。如果流是有序的,则 takewhile() 方法返回一个流,该流包含从此流中获取的元素的最长前缀,这些元素与谓词匹配,而 dropWhile() 方法返回匹配谓词后剩余的流。如果流是无序的,则 takewhile() 方法返回一个流,该流包含从与给定谓词匹配的流中提取的元素的子集,而 dropWhile() 方法返回一个流,该流包含在丢弃…之后剩余的流的元素 阅读更多
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 | 键入... 阅读更多
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(); ... 阅读更多
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, ... 阅读更多
281 次浏览
@SafeVarargs 注解是在 Java 7 中引入的。此注解适用于接受可变参数参数的 final 和 static 方法或构造函数。此注解用于确保方法不对其可变参数参数执行不安全的操作。从 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 ... 阅读更多
1K+ 次浏览
在早期版本的 Java 中,下划线 (“_”) 用作标识符或创建变量名。从 Java 9 开始,下划线字符是保留关键字,不能用作标识符或变量名。如果我们使用单个下划线字符作为标识符,则程序将无法编译并抛出编译时错误,因为它现在是一个关键字,不能用作 Java 9 或更高版本中的变量名。示例public class UnderscoreKeywordTest { public static void main(String args[]) { int _ = 50 System.out.println(_); ... 阅读更多
119 次浏览
是的,从 Java 9 开始,我们可以将菱形运算符与匿名内部类一起使用。使用菱形运算符的目的是避免冗余代码,并通过不再在表达式的右侧使用泛型类型使其更易于阅读。菱形运算符仅用于普通类,而不用于 Java 7 中的匿名内部类。如果我们尝试将其用于匿名内部类,则编译器会抛出错误。在下面的示例中,我们已将菱形运算符与匿名内部类一起使用。示例import java.util.*; public class DiamondOperatorTest { public static void main(String args[]) { String[] str = ... 阅读更多
110 次浏览
在 Java 9 中,Oracle 公司向 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() 方法如果它... 阅读更多
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP