keep move.

2018-04-17
Nagle's Algorithm

1 Nagle’s Algorithm

Nagle’s Algorithm 是为了提高带宽利用率设计的算法,其做法是合并小的TCP 包为一个,避免了过多的小报文的 TCP 头所浪费的带宽。如果开启了这个算法 (默认开启),则协议栈会累积数据直到以下两个条件之一满足的时候才真正发送出去:

阅读此文

2018-04-17
RPC接口与消息MQ对比

RPC接口(Remote Procedure Call,远程过程调用)

MQ消息(Message Queue)

两种方式都可以用于数据的传递,这方面两者达到效果相同,区别在于使用方式、技术指标:同步异步、数据暂存等.

阅读此文

2018-03-10
PECS

什么是PECS?

PECS:Producer Extends,Consumer Super。泛型的本质是参数化类型

意思是,如果参数化类型表示一个生产者,就使用<? extends T>,用于灵活读取,使得方法可以读取 E 或 E 的任意子类型的容器对象;

如果它表示一个消费者,就使用<? super T>,用于灵活写入,使得对象可以写入父类型的容器,使得父类型的比较方法可以应用于子类对象。

阅读此文

2018-03-01
Mybatis批量插入返回自增ID

首先查了官网文档,说明如下:详情在http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#insert_update_and_delete

mybatis 3.3.1以上的版本已经支持批量返回了,支持注解和mapper文件两种方式,mybatis在执行完insert语句后会专门针对主键生成进行处理,在sql插入后再将自增的值赋值到实体上。代码pr链接:https://github.com/mybatis/mybatis-3/pull/547/files

然而!!按官网操作,不能自动生成,mybatis 版本3.4.6

阅读此文

2018-02-01
Git清理无效分支

删除在本地有但在远程库中已经不存在的分支

1.先查看库信息

可以查看远程库的一些信息,及与本地分支的信息。

git remote show origin

可能显示如下

阅读此文

2018-02-01
lombok

1 lombok是什么

Lombok通过注解简化和消除一些必须有但很臃肿冗余的Java代码(如setter,getter…)的工具,通过使用对应的注解,在编译源码时生成对应方法。官方地址:https://projectlombok.org/,github地址:https://github.com/rzwitserloot/lombok。

lombok是一个IDE插件,也是一个项目需要依赖的jar包.lombok是依赖jar包的原因是因为编译时要用它的注解.是插件的原因是lombok要在编译时通过操作AST(abstract syntax tree.抽象语法树)改变字节码生成.也就是说可以改变java语法. 不像spring的依赖注入或者hibernate的orm一样是运行时的特性,lombok是编译时的特性.编译后的.class中lombok的注解被消除.

阅读此文

2018-01-05
Java8新特性

参考https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html

LTS版本

1 lambda函数式编程


可以看出,lambda表达式由三部分组成:

  • 参数列表:主体需要的参数
  • 箭头:把参数和主体分隔开
  • lambda主体
阅读此文

2018-01-04
binlog复制的三种模式

mysql复制主要有三种方式:基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)。

对应地,binlog的格式也有三种:STATEMENT,ROW,MIXED

阅读此文

2016-03-17
进程与线程的区别与关系

定义

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是个动态的概念,区别于程序,程序就是一块代码,是一个静态的概念,进程是系统进行资源分配的基本单位
线程,是进程的一部分,线程有时又被称为轻权进程或轻量级进程,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。

阅读此文

2016-02-27
Java自定义比较器实现中文排序

compareTo 方法

  compareTo()是两个字符串对象比较大小,返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数。相等则返回0。compareTo()是两个字符串对象按ASCII比较大小(汉字是Unicode),返回一个整数值,如果调用字符串对象大,返回正整数,反之,返回负整数。相等则返回0。

阅读此文