- 博客(6)
- 资源 (4)
- 收藏
- 关注
原创 Reactor Threading and Schedulers线程调度
背景Reactor是非阻塞响应式编程的一种实现,提供各种异步流操作和编排的API,其本质上是与并发无关的,并不强行使用并发编程,而是提供类库由开发者决定多线程并发模式。简单实现reactor多线程根据reactivestream模型可以看出,当调用subscribe时Subscriber和Publisher才建立了发布订阅关系,Subscriber开始请求数据,而在此之前调用链并不会发生数据流动nothinghappensuntilyousubscribe,所以默认情况下,可以简单...
2022-03-16 20:30:58 1860 2
原创 Java对象转换方案分析与mapstruct实践
前言随着系统模块分层不断细化,在Java日常开发中不可避免的涉及到各种对象的转换,如:DO、DTO、VO等等,编写映射转换代码是一个繁琐重复且还易错的工作,一个好的工具辅助,减轻了工作量、提升开发工作效率的同时还能减少bug的发生。常用方案及分析fastjsonCarDTOentity=JSON.parseObject(JSON.toJSONString(carDO),CarDTO.class);这种方案因为通过生成中间json格式字符串,然后再转化成目标对象,性能非常差,同时...
2021-12-29 11:17:48 736
原创 Java异步实现的N种方式
目录背景Future描述样例优缺点ListenableFuture描述样例优缺点CallbackHell描述样例CompleteableFuture描述样例方法介绍创建对象计算结果完成时的处理转换、消费组合辅助方法allOf和anyOfReactor描述ReactiveReactiveStreams介绍一个简单样例Reactor背景异步编程现在受到了越来越多的关注,尤其是在IO...
2021-12-29 11:13:12 24221 3
原创 Java柯里化函数的实现
柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。看定义还是不容易理解,打个比方:一块电路板上有多个电容和电阻,要同时插上电路板才能正常工作,传统的Java定义一个方法,入参就是各种电容、电阻,返回值是电路板工作结果,如果只插入电容,这其实也是一种转态,这种转态在Java8后就可以通过函数表示,也就是返回一个电路板上面已经插好了电容,我可以插入不同的电阻返回不同的结果,把f(电容,电阻)变成了f(电容)(
2021-06-09 16:24:49 1659
原创 WebFluxTest报错Timeout on blocking read for 5000 MILLISECONDS解决
使用SpringWebFlux开发后端接口时可以用@WebFluxTest做单元测试,需要用到WebTestClient作为test客户端,使用WebTestClient.get或WebTestClient.post发送请求,遇到了报错:java.lang.IllegalStateException:Timeoutonblockingreadfor5000MILLISECONDSjava.lang.IllegalStateException:Timeoutonblocking...
2021-05-21 09:47:14 1785
原创 Android中的长度单位详解(dp、sp、px、in、pt、mm)
px(Pixels ,像素):对应屏幕上的实际像素点。例如,320*480的屏幕在横向有320个象素,在纵向有480个象素。 in(Inches ,英寸):屏幕物理长度单位。每英寸等于2.54厘米。例如,形容手机屏幕大小,经常说,3.2(英)寸、3.5(英)寸、4(英)寸就是指这个单位。这些尺寸是屏幕的对角线长度。如果手机的屏幕是3.2英寸,表示手机的屏幕(可视区域)对角线长度是3.2*2
2015-04-26 22:22:57 525
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人