自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

aty

虽有嘉肴,弗食,不知其旨也;虽有至道,弗学,不知其善也。是故学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。

  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 JDK8新特性:使用Method References实现方法复用,简化lambda表达式

之前的文章已经介绍了函数式接口与lambda表达式,这篇文章主要学习下方法引用。使用方法引用,可以减少lambda表达式的书写,在Stream API中很常用。我们想实现整数list的排序,使用lambda我们还得自己编写一个Comparator对象(虽然也很简单),实际上JDK类库已经提供了类似的实现,我们通过Integer::compare就可以引用已经存在的方法。

2017-01-18 10:36:19 1908 1

原创 JDK8新特性:使用Optional避免null导致的NullPointerException

Optional实际上是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。

2017-01-15 20:00:13 113168 9

原创 消息摘要、MAC(消息认证码)、数字签名扫盲贴

消息摘要与MAC的区别,消息摘要只能保证消息的完整性,MAC不仅能够保证完整性,还能够保证真实性。MAC不能保证消息的不可抵赖性,而数字签名可以保证。

2017-01-14 15:56:50 16596

原创 SimpleDateFormat不是线程安全的类

SimpleDateFormat不是线程安全的类,可能报各种异常

2017-01-13 09:24:32 817

原创 JDK8新特性:编译器保留方法参数名字

很长一段时间里,Java程序员一直在发明不同的方式使得方法参数的名字能保留在Java字节码中,并且能够在运行时获取它们(比如Paranamer类库)。最终,在Java 8中把这个强烈要求的功能添加到语言层面(通过反射API与Parameter.getName()方法)与字节码文件(通过新版的javac的–parameters选项)中。

2017-01-12 13:19:34 7814 1

原创 JDK8新特性:重复注解Repeating Annotations

注解并不是什么新鲜东西了,比如spring中存在大量注解简化我们的配置。但是在JDK8之前,我们是不能使用重复注解的,即某个位置相同注解只能出现一次。这里有个使用@Repeatable( Schedules.class )的注解类Schedule,Schedules仅仅是Schedule注解的数组,但Java编译器并不想让程序员意识到Schedules的存在。这样对使用者而言,Target就拥有了两个Schedule注解,而不是1个Schedules注解。同时,反射相关的API提供了新的函数getAnnot

2017-01-12 09:20:28 3144

原创 JDK8新特性:lambda入门

lambda其实就是为@FunctionalInterface服务的,能够用一种全新的、简洁的语法创建函数式接口的对象。当然如果一个接口不符合函数式接口的定义,是不能通过lambda表达式来创建其对象的。lambda其实就是定义入参、函数体、返回值,然后可以生成任意一个接口(符合该函数入参和返回值的函数式接口)的对象。

2017-01-11 09:26:39 2180

原创 maven项目构建:maven-antrun-plugin插件实现文件内容拷贝和文件重命名

maven-antrun-plugin插件实现文件内容拷贝和文件重命名

2017-01-10 20:07:32 9180

原创 JDK8新特性:函数式接口@FunctionalInterface的使用说明

通过JDK8源码javadoc,可以知道这个注解有以下特点:1、该注解只能标记在"有且仅有一个抽象方法"的接口上。2、JDK8接口中的静态方法和默认方法,都不算是抽象方法。3、接口默认继承java.lang.Object,所以如果接口显示声明覆盖了Object中方法,那么也不算抽象方法。4、该注解不是必须的,如果一个接口符合"函数式接口"定义,那么加不加该注解都没有影响。加上该注解能够更好地让编译器进行检查。如果编写的不是函数式接口,但是加上了@FunctionInterface,那么编译器会报错。

2017-01-06 14:03:29 120321 18

原创 JDK8新特性:接口的静态方法和默认方法

在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的。JDK8及以后,允许我们在接口中定义static方法和default方法。静态方法,只能通过接口名调用,不可以通过实现类的类名或者实现类的对象调用。default方法,只能通过接口实现类的对象来调用。

2017-01-06 10:46:53 36809 21

原创 Guava库:Preconditions实现优雅校验

实际开发中需要做入参校验的情况比比皆是,比如开发一个rest接口,肯定要对参数各种校验,防止错误的输入导致程序出错。我们可以使用Preconditions(前置条件),这样我们自己代码中就不会出现大段的if代码了。Preconditions类似我们写junit单元测试或者spring中的assert。

2017-01-05 09:58:30 8368

eclipse最常用的快捷键

这是我个人从网上整理出来的快捷键,日常很常用的列在这里。而且比较清晰,欢迎大家下载。在eclipse提高开发效率

2012-10-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除