182 次浏览
Optional 类提供了一个可能包含或可能不包含非空值的容器。此 Optional 类是在 Java 8 中引入的,以减少代码中可能生成 NullPointerException 的位置数量。Java 9 为 Optional 类添加了三个新方法:or()、ifPresentOrElse() 和 stream(),这些方法可以帮助我们处理默认值。Optional.or()or() 方法是在 Java 9 中引入的,此方法的参数是一个函数式接口 Supplier。此方法始终为我们提供一个非空的 Optional 对象。如果 Optional 对象不为空,则返回 Optional 对象本身。否则,它会返回一个 Optional ... 阅读更多
830 次浏览
Java 9 添加了接口中私有方法的新特性。可以使用 private 修饰符定义私有方法。从 Java 9 开始,我们可以在接口中添加私有和私有静态方法。接口中私有方法的规则:接口中私有方法有主体,这意味着我们不能像通常在接口中那样将其声明为普通抽象方法。如果我们尝试声明一个没有主体的私有方法,则可能会抛出错误,提示“此方法需要主体而不是分号”。我们不能在接口中同时使用 private 和 abstract 修饰符。如果 ... 阅读更多
150 次浏览
Oracle 发布了 Java 9 版本,其中包含丰富的全新特性,并带来了许多新的增强功能。以下是 Java 9 中引入的一些重要特性和增强功能。集合的工厂方法:工厂方法是一种特殊的静态方法,可用于创建不可修改的集合实例,这意味着我们可以使用这些方法来创建列表、集合和映射。Java 平台模块系统 (JPMS):Java 模块是一种将 Java 应用程序和 Java 包捆绑到 Java 模块中的机制。它指定了哪些包含对其他 Java 模块可见的 Java 包,方法是使用 ... 阅读更多
389 次浏览
ArrayBlockingQueue 以 FIFO 顺序存储元素。元素的插入始终发生在队列的尾部,元素的删除始终发生在队列的头部。它是线程安全的,并且是有界数组队列,因此一旦创建,容量就不能更改。它是阻塞队列的实现。根据 Java 文档 -Deque 接口的可调整大小的数组实现。Array deque 没有容量限制;它们根据需要增长以支持使用。它们不是线程安全的;在没有外部同步的情况下,它们不支持多个线程的并发访问。空元素是 ... 阅读更多
391 次浏览
Blocking queue 接口是 Java.util.concurrent 包的一部分。Blocking queue 专为生产者消费者队列而设计,也支持集合。此接口分为四部分方法,以支持可以在队列上执行的所有类型的操作。它不接受空键。ArrayBlockingQueue 和 LinkedBlockingQueue 都实现了 Blocking queue 接口ArrayBlockingQueue 和 LinkedBlockingQueue 都以 FIFO 顺序存储元素。在这两个队列中,元素的插入始终发生在队列的尾部,元素的删除始终发生在队列的头部。序号键ArrayBlockingQueueLinkedBlockingQueue1基本它由数组支持它由链接列表支持2线程安全是,它是线程安全的否,它不是线程安全的3容量固定容量,一旦创建,容量就不能更改可变容量4性能对于少量元素,性能更好,因为它是基于数组的对于大量元素,性能更好,因为它避免了数组大小调整5使用场景当队列需要是线程安全的并且具有固定大小的容量时,可以使用它。当队列需要可调整大小的容量时,可以使用它。 ... 阅读更多
363 次浏览
OAuth 旨在在不提供密码的情况下提供第三方授权。它是基于 http 的。OAuth 提供了一个访问令牌,可以通过 API 将其交换为任何受支持的断言。OpenId 旨在进行身份验证。在 openId 中,第三方使用用户已有的帐户为您验证用户。它用于验证单点登录身份序号键OAuthOpenId1基本OAuth 旨在在不提供密码的情况下提供第三方授权OpenId 旨在进行身份验证。2会话它不会启动用户的会话。OpenId 启动用户的会话3访问令牌它使用令牌概念来提供授权在 openId 中,第三方使用用户已有的帐户为您验证用户,通过 ... 阅读更多
217 次浏览
Rundeck 允许您在远程计算机上运行命令/脚本。它用于通过定义单个步骤或可以对任意数量的本地或远程节点执行任何命令、脚本或工具的工作流来创建作业。作业可以通过调度程序或根据需要通过 Web 界面或 API 触发。本文介绍了“如何在 Debian 8 服务器上安装 Rundesk”Rundeck 是用 Java 编程语言编写的,因此它要求您在机器上安装 Java。要在 Debian 上安装 Java 编程,请使用以下命令 - $ sudo dpkg --add-architecture ... 阅读更多
955 次浏览
Java 编程语言最初由 Sun Microsystems 开发,由 James Gosling 发起,并于 1995 年作为 Sun Microsystems Java 平台 (Java 1.0 [J2SE]) 的核心组件发布。Java Standard Edition 的最新版本是 Java SE 8。随着 Java 的发展及其广泛的普及,构建了多种配置以适应各种类型的平台。例如 - 用于企业应用程序的 J2EE,用于移动应用程序的 J2ME。新的 J2 版本分别重命名为 Java SE、Java EE 和 Java ME。Java 保证是“一次编写,随处运行”。本文介绍了“如何 ... 阅读更多
6K+ 次浏览
在多线程环境中,两个或多个线程可以同时访问共享资源,这可能导致系统行为不一致。Java 使用锁的概念来限制对共享资源或对象的并发访问。锁可以在两个级别上应用:对象级锁 - 当您希望仅允许一个线程访问非静态方法或非静态代码块时,可以使用它。类级锁 - 当我们想要阻止多个线程进入任何可用实例上的同步块时,可以使用它。它应该始终使用... 阅读更多
14K+ 浏览量
绑定是一种在方法调用和方法实际实现之间创建链接的机制。根据 Java 中的多态性概念,对象可以具有许多不同的形式。对象形式可以在编译时和运行时解析。如果方法调用和方法实现之间的链接在编译时解析,则我们称之为静态绑定或如果它在运行时解析,则称为动态绑定。动态绑定使用对象来解析绑定,但静态绑定使用类的类型和字段。序号关键静态绑定动态绑定1基本它在编译时解析它在运行时解析2 ... 阅读更多