CompletableFuture
没想到在了解并大致看了Guava提供的ListenableFuture的源码实现后,再看JDK的CompletableFuture,竟然如此简单与清晰。实际上二者做的事情、实现思路差不太多。果然还是那个道理:越强的人学东西越快,速度大的人往往加速度还大,越有钱的人越容易赚钱……气不气…… 思路 具体方法 创建 链式 ...
没想到在了解并大致看了Guava提供的ListenableFuture的源码实现后,再看JDK的CompletableFuture,竟然如此简单与清晰。实际上二者做的事情、实现思路差不太多。果然还是那个道理:越强的人学东西越快,速度大的人往往加速度还大,越有钱的人越容易赚钱……气不气…… 思路 具体方法 创建 链式 ...
JDK中任务和任务的执行者是一套设计的比较好的相互解耦的框架。之前在Java并发编程:并发任务执行及结果获取描述过jdk中关于Executor的基本逻辑,这次从更加宏观的角度重新全面梳理一下,并补充一点Guava对Executor和Future的拓展。 任务 Runnable/Callable - 简单任务表示 Runnable...
ListenableFuture是Guava里拓展了Future的接口,增加了回调行为。所以要比Future更强大。Guava建议使用ListenableFuture取代Future。而且,看ListenableFuture的实现过程,也能让人获益良多。 约定 Future &. ExecutorService ListenableFuture...
在RESTful - RestTemplate中,说了自动转换都是由Http消息转换器做的。 Controller产生数据之后,DispatcherServlet不再需要将模型数据传送给视图,首先没有了模型Model,其次也没有视图View,只有控制器产生的数据,再使用消息转换器转换为一定格式的数据。 场景 HttpMessageConverter HttpMessageC...
Java Collection Framework, JCF,Java集合框架。JDK提供了很多丰富的工具集合,其他比如guava也补充了jdk里没有的更为丰富的工具集合。了解这些工具集合,就可以在不同的场景选用不同的工具,提升效率而且编程实现的会很漂亮。 接口 Collection List ArrayList LinkedList ...
生产者消费者模式是并发编程的一个经典入门场景。假设多个生产者生产一定数量的东西到队列,多个消费者从队列中取走这些东西。如果队列为空,消费者阻塞;如果队列已满,生产者阻塞。如何不出现访问错误,同时尽可能优化性能? 支持并发put/get的有界队列 自旋等待 优缺点 休眠轮询 ...
在Java中,一个线程是不能终止另一个线程的,除非那个线程自己想退出,或者JVM退出了。 比如: new Thread( new Runnable() { @Override public void run() { while (true) { } } } ).start(); 这个线程在开启之后一直在做无意义的空循环,且这个线程本...
https://developers.google.com/protocol-buffers/docs/overview protobuf比xml更快、更小。 顺便探讨一下序列化的机制。 语言规范 Java使用 Encoding 普通的序列化 protobuf序列化 序列化数字 - Varint ...
REST, Representational State Transfer,表述性、状态、转移。 Representational:表述性,表述资源,用xml、json等任何合适的格式表述资源; State:REST关注的是资源的状态,而不是对资源所采取的行为; Transfer:资源从一个应用转移到另一个应用。 所以REST就是以表述性的语言,将资源从一个地方转移到另一个...
spring boot的功能主要有四方面: starter:能够整合依赖,防止冲突,方便使用; 自动配置:利用条件注解,推测要使用的bean并自动化配置。使用者直接用这些bean就行了。所以就不用配置bean了; cli:使用groovy写工程,直接cli运行。但是个人感觉大项目好像不太适用,写写小demo倒是很方便; actuator:直接为应用引入一些管理的功能。 ...