764 次查看
Kafka 和 JMS 都是消息系统。Java 消息服务是 Java 提供的一个 API。它用于在应用程序中实现消息系统。JMS 支持队列和发布/订阅(主题)消息系统。对于队列,当第一个消费者消费一条消息时,消息会从队列中删除,其他消费者无法再获取它。对于主题,多个消费者可以接收每条消息,但扩展性更具挑战性。Kafka 是对这两个概念的概括 - 它允许在同一个消费者组的成员之间进行扩展,但也允许在许多不同的… 阅读更多
724 次查看
JMS 是 Java 消息服务的缩写。Java 消息服务是 Java 提供的一个 API。它用于在应用程序中实现消息系统。JMS 是一个 API 或规范,不包含实现,因此要使用 JMS 必须使用一些第三方服务提供商,例如 ActiveMq、Weblogic 消息传递等。JMS 支持两种类型的消息传递域 -点对点消息传递发布/订阅消息传递 序号关键点对点消息传递发布/订阅1基本它是消息的一对一目标。消息发送到队列中,并且该消息只能被一个接收方读取。它是消息的一对多目标。… 阅读更多
26K+ 次查看
根据 Oracle 的 Javadocs -默认方法使您能够向库的接口添加新功能,并确保与为这些接口的旧版本编写的代码的二进制兼容性。静态方法是与其定义所在的类关联的方法,而不是与任何对象关联。类的每个实例都共享其静态方法。接口中的静态方法是接口类的一部分,不能实现或覆盖它,而类可以覆盖默认方法。序号关键静态接口方法默认方法1基本它是一个仅属于接口的静态方法。我们可以编写实现… 阅读更多
4K+ 次查看
PermGen 是用于存储类数据(如静态变量、字节码等)的内存区域。默认情况下,为 PermGen 分配 64 MB。可以使用 -XXMaxPermSize 进行调整。在 Java 8 中,PermGen 方法区被元空间取代。它们已将 permGem 移动到本机操作系统中的单独内存中,这称为元空间。它默认情况下可以自动增加其大小。在元空间中,类可以在 JVM 的生命周期内加载和卸载。序号关键PermGen元空间1基本PermGen 是用于存储类数据(如静态变量、字节码等)的内存区域在 Java 8 中,PermGen 方法区被… 阅读更多
856 次查看
迭代器和分割迭代器这两个接口都用于遍历集合。分割迭代器在 Java 8 中引入,用于实现并行处理。它可以将给定的元素集拆分,并可以使用不同的独立线程并行执行操作。它可以并行或顺序方式遍历元素。分割迭代器接口中有一些重要的方法 -trySplit - 用于将给定的元素集拆分成多个部分。tryAdvance - 等效于迭代器接口中可用的 hasNext/next 方法getExactSizeIfKnown - 用于获取给定元素集的大小。序号… 阅读更多
14K+ 次查看
流是在 Java 8 中引入的,它仅用于处理数据组,而不是用于存储元素。它不会修改实际的集合,它们只会根据管道方法提供结果。流 API 支持多种操作,操作分为两部分 -中间操作 - 这些操作用于管道其他方法并将其转换为其他流。它们不会产生结果,因为这些操作不会在终端操作执行之前被调用。以下是示例 -sorted(Comparator)peek(Consumer)distinct()终端操作 - 这些操作用于产生结果。它们不能用于… 阅读更多
7K+ 次查看
函数和谓词这两个函数式接口是在 Java 8 中引入的,用于在 Java 中实现函数式编程。函数接口用于执行转换。它可以接受一个参数并产生一个结果。另一方面,谓词也可以只接受一个参数,但它只能返回布尔值。它用于测试条件。序号关键函数谓词1基本它可以采用 2 个类型参数,第一个表示输入类型参数类型,第二个表示返回类型。它可以采用一个类型参数,表示输入类型或参数类型。2返回类型它可以返回任何类型的值。它只能返回布尔值3方法它… 阅读更多
1K+ 次查看
序号关键调度线程池单线程执行器1基本创建一个线程池,可以安排命令在给定延迟后运行,或定期执行。任务保证顺序执行,并且在任何给定时间最多只有一个任务处于活动状态2队列它使用延迟队列存储任务。根据时间延迟安排任务。它使用阻塞队列。3线程生命周期要保留在池中的线程数,即使它们处于空闲状态如果由于任务而被杀死,则重新创建线程。4.线程池大小它始终只有一个线程在运行。线程池可以从零个线程增长到 Integer.MAX_VALUE5.用例我们应该使用固定线程池,… 阅读更多
执行器框架是使用线程池概念设计的。线程池是重用已创建线程而不是每次执行当前任务时都创建一个新线程的方法。Executors 类提供了一个工厂方法来创建线程池。ThreadPoolExecutor 类是许多 Executors 工厂方法返回的执行器的基本实现。序号关键固定线程池缓存线程池1基本根据 Java 文档 -创建一个线程池,该线程池重用从共享无界队列中获取任务的固定数量的线程。在任何时候,最多 nThreads 个线程将处于活动状态,处理任务。如果… 阅读更多
执行器和执行器服务这两个接口都是执行器框架的一部分。它随 Java 5 发布。在 Java 中,线程创建是一个非常昂贵的操作,因此我们应该重用可用的线程,而不是每次都启动一个新线程,我们可以使用执行器框架来实现这一点。执行器框架使用线程池并行执行任务,这有助于优化响应时间和资源利用率。它提供了四种类型的内置线程池 -固定线程池缓存线程池调度线程池单线程执行器序号关键执行器执行器服务1基本它是父接口它扩展了执行器接口2方法它具有 execute() 方法它具有 submit() 方法3返回类型它… 阅读更多