如何利用CompletableFuture实现“旅游平台”问题?

旅游平台问题

什么是旅游平台问题呢?如果想要搭建一个旅游平台,经常会有这样的需求,那就是用户想同时获取多家航空公司的航班信息。比如,从北京到上海的机票钱是多少?有很多家航空公司都有这样的航班信息,所以应该把所有航空公司的航班、票价等信息都获取到,然后再聚合。由于每个航空公司都有自己的服务器,所以分别去请求它们的服务器就可以了,比如请求国航、海航、东航等,如下图所示:

Read More

MyBatis-Plus - 字段类型处理器之泛型擦除解决方案

Java语言的泛型采用的是擦除法实现的伪泛型,泛型信息(类型变量、参数化类型)编译之后通通被除掉了。使用擦除法的好处就是实现简单、非常容易Backport,运行期也能够节省一些类型所占的内存空间。而擦除法的坏处就是,通过这种机制实现的泛型远不如真泛型灵活和强大。Java选取这种方法是一种折中,因为Java最开始的版本是不支持泛型的,为了兼容以前的库而不得不使用擦除法。

Read More

Java中各种类型数值的大小比较

概述

java中的数据类型,可分为两种:

  1. 基本数据类型,也称原始数据类型。byte,shrot,char,int,long,float,double,boolean(存储在内存中的堆栈(以后简称栈))

    • 他们之间的比较,应用双等号(==),比较 的是他们的值
  2. 引用类型(类,复合数据类型)(在栈中仅仅是存储引用类型的变量的地址,而其本身则存储在堆中)

    • 当他们用(==)进行比较的,比较的是他们在内存中的存放地址,(即栈中的内容是否相等)所以,除非是同一个new出来的对象,他们的比较后的 结果为true,否则比较后的结果为false。重写后的equals操作表示的两个变量是否是对同一个对象的引用(即堆中的内容是否相等)

Read More