Maven site发布多模块的项目站点
本地生成预览,修改父模块的pom.xml:
1 |
|
执行
1 | mvn clean && mvn site:site && mvn site:stage |
目标站点在target/stage
目录下面
本地生成预览,修改父模块的pom.xml:
1 |
|
执行
1 | mvn clean && mvn site:site && mvn site:stage |
目标站点在target/stage
目录下面
Redis集群分两种模式,一种是Master-Slave模式,就是主从模式,一个master带多个slave, 另外一种是cluster模式,由多组master-slave组成。
前端页面的性能一直都是一个热议的话题,从老早雅虎提出的35条”军规”开始我们就一直在关注页面的性能问题。
在前面巨人们的身后每个人也有自己的一些页面性能的经验,本文主要是介绍页面加载事件和性能评价指标。
有时候在IDEA里面直接点击查看源码,报:cannot download sources
使用Maven命令。经过测试,好用。下载了所有POM里的依赖包的source,这点不是想要的,原来只想下载想看的依赖的source。 参考:IDEA-165800 Can’t download dependency’s source code
在泛型编程时,使用部分限定的形参时,<? super T>
和<? extends T>
的使用场景容易混淆,
PECS原则可以帮助我们很好记住它们:提供者(Provider)使用extends,消费者(Consumer)使用super。
[!NOTE] Provider指的就是该容器从自己的容器里提供T类型或T的子类型的对象供别人使用;
Consumer指的就是该容器把从别处拿到的T类型或T的子类型的对象放到自己的容器。
每次去Oracle官网去下载JDK,就会发现有两个版本,一个基数版本,一个偶数版本。比如最新的jdk-8u191和jdk-8u192。这是咋回事?
这是官方对于奇数版本与偶数版本区别的解释:
从JDK版本7u71以后,JAVA将会在同一时间发布两个版本的JDK,其中:
奇数版本为BUG修正并全部通过检验的版本,官方强烈推荐使用这个版本。
偶数版本包含了奇数版本所有的内容,以及未被验证的BUG修复,Oracle官方表示:除非你深受BUG困扰,否则不推荐您使用这个奇数版本。
初次使用NodeJS的时候,被package.json中的版本规则搞晕,现在记录一下。
上一篇介绍了Unix系统支持的I/O模型,以及相应的在Java中的实现方式。本篇重点讲解一下Reactor模型原理和实现机制。
I/O多路复用又被称为”事件驱动”,就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪), 能够通知程序进行相应的读写操作,技术上是通过调用操作系统的select、pselect、poll、epoll来实现。
与多进程和多线程技术相比,I/O多路复用技术的最大优势是系统开销小,系统不必创建进程/线程,也不必维护这些进程/线程,从而大大减小了系统的开销。
Reactor是一种应用在服务器端的开发模式,目的是提高服务端程序的并发能力,其实就是实现了I/O多路复用这种I/O模型。
同步、异步、阻塞、非阻塞都是和I/O(输入输出)有关的概念,最简单的文件读取就是I/O操作。而在文件读取这件事儿上,可以有多种方式。
本篇会先介绍一下I/O的基本概念,通过一个生活例子来分别解释下这几种I/O模型,以及Java支持的I/O模型。
在解释I/O模型之前,我先说明一下几个操作系统的概念