2018-03-10
PECS

什么是PECS?

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

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

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

阅读此文

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主体
阅读此文

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

compareTo 方法

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

阅读此文