Quantcast
Channel: 赵伊凡's Blog
Browsing latest articles
Browse All 67 View Live

Image may be NSFW.
Clik here to view.

深入理解OutOfMemoryError

当 jvm 内存严重不足时,就会抛出 java.lang.OutOfMemoryError 错误。 1. Java heap space 当堆内存(Heap Space)没有足够空间存放新创建的对象时,就会抛出 java.lang.OutOfMemoryError: Java heap space 错误(根据实际生产经验,可以对程序日志中的 OutOfMemoryError...

View Article



Java14 新增record 关键字

1、介绍 在许多java应用程序中,在对象之间传递不可变数据是很常见的。 在Java14之前,我们需要创建一个带有字段和方法的类,随着Java14的发布,我们现在可以使用record关键字来解决这些问题。 下面我将介绍record关键字的基本原理,包括其用途、生成的方法和支持的能力。 2、目的...

View Article

响应式编程简介

其实响应式编程已经有几年了,但是目前看起来国内用的并不太多,这个系列也是很久之前就计划写了却一致没有开始,今天终于开始了,希望能让看到的人也有所收获。 也有人叫反应式编程,两种叫法吧,毕竟是翻译,我这里就都叫响应式编程了。 我这边主要会以Reactor3(https://projectreactor.io/docs)作为响应式编程的使用示例。 Reactor3是基于Reactive...

View Article

响应式编程Flux&Mono

响应式编程规范定了一种资源,之前也提到过了,就是Publisher,在Reactor3中,是通过Flux和Mono实现的,其实和jdk中的Future是类似对应的。 最新的maven版本如下(最新版本可以官网查阅https://projectreactor.io/docs): <dependency>...

View Article

响应式编程的transform与merge

transform transform的功能,如果用过jdk8的stream的话,应该没什么难度,和stream的用法几乎一致。 我们可以通过map来对flux/mono的结果进行转换,看下面的例子: Flux.just(new User("aaa")) .map(u -> new User(u.getName().toUpperCase()))...

View Article


响应式编程的测试StepVerifier

reactor3提供了对应的测试包,maven最新版本如下: <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> <version>3.4.13</version>...

View Article

Image may be NSFW.
Clik here to view.

响应式编程的backpressure

...

View Article

响应式编程的Error

响应式编程里对于异常的处理的内容还是比较简单的。如果想要详细了解异常的处理都有哪些的话,可以直接看api中带有error的方法即可。本节会举例几个重点的来介绍一下。 doOn/on...

View Article


响应式编程的一些其他操作

前面几节介绍了一些常用的功能,本节会介绍一些常用操作(Operations),其实和jdk8的stream还是挺不一样的。 reactor3包含了很多操作相关的api,所以真的很建议大家还是要去看一下javadoc文档。不过在开发的时候,如果下载源码的话,也可以根据sdk的doc来看看哪个方法可以解决你当下的问题。 zip...

View Article


响应式编程的异步与同步阻塞

有时候我们还是会有同步的需求的,比如我们需要通过Flux获取一个列表,但是在我获取到第一个数据的时候,我就去做一件事,但是没获得之前我这里就都是阻塞的。这里刚好和我前段时间的一个需求类似,我需要获取一些信息,然后通过长链接依次转发出去,但是长链接是采用的一个懒创建的方式,在没有获得数据的时候是不创建的,如果获得到第一个数据的时候就可以创建了。 异步到同步阻塞(Reactive to Block)...

View Article
Browsing latest articles
Browse All 67 View Live




Latest Images