- 博客(16)
- 资源 (33)
- 收藏
- 关注
原创 Java 8 可重复注解的理解与应用
Java 8 之前如何重复使用注解在 Java 8 之前我们不能在一个类型重复使用同一个注解,例如 Spring 的注解 @PropertySource 不能下面那样来引入多个属性文件@PropertySource("classpath:config.properties")@PropertySource("file:application.properties")pu
2017-02-26 12:11:19 3372
原创 Mockito 如何 mock 返回值为 void 的方法
最初接触 Mockito 还思考并尝试过如何用它来 mock 返回值为 void 的方法,然而 Google 查找到的一般都会说用 doThrow() 的办法doThrow(new RuntimeException()).when(mockObject).methodWithVoidReturn();因为无法使用常规的 when(mockObject.foo()).then
2017-02-26 12:09:57 35553 1
原创 Mockito 中捕获 mock 对象方法的调用参数
Mockito 可以帮助我们创建 Mock 对象,mock 被调用的方法,断言调用次数,在方法参数不易确定的情况下还能帮我们捕获参数。下面是我们第一个问题:为什么要捕获调用参数在被 mocker 方法调用参数明确的情况下可无需捕获参数,例如,下面的情景:01020304050607080
2017-02-26 12:06:48 12717
原创 5 个最好的 Vim 速查卡 (Cheat Sheet)
Vim(Vi Improved) 早已替代了 Vi, 它存在于大多数的 Linux 发行版中。所以基本上 Vi 和 Vim 在你的系统中就是同一个程序,我用的 Mac, vi 命令就是一个指向到 vim 的链接ls -l $(which vi)lrwxr-xr-x 1 root wheel 3 Sep 20 23:47 /usr/bin/vi -> vimmacOS S
2017-02-26 12:04:33 986
原创 Vim 中 Java 代码自动完成 - vim-javacomplete2
用 Java 进行编码基本还是离不开 IntelliJ IDEA 或 Eclipse, 看别人完全用 Vim 进行 Javascript 项目编程很是眼红,估摸着能不能把 Vim 打造成一个更强的 Java IDE。语法高亮是不在话下,最主要是给它加上自动完成功能,不光对当前类,项目中的方法或变能能提示,而且必须像 Java IDE 那样理解所有的项目依赖。这就是今天试用的一个 Vim 插件 vi
2017-02-21 04:23:39 6879
原创 CompletableFuture 的并发性能研究
今天继续探讨 CompletableFuture 的特性,它并发时的性能如何呢?我们知道集合的 stream() 后的操作是序列化进行的,parallelStream()是能够并发执行的,而用 CompletableFuture 可以更灵活的控制并发。我们先可以对比一下 parallelStream() 与 CompletableFuture 的性能差异假设一个这样的耗时 1000
2017-02-21 04:21:15 3133
原创 理解 CompletableFuture 的任务与回调函数的线程
继续对 CompletableFuture 的学习,本然依然不对它的众多方法的介绍,其实也不容易通过一篇述说完所有 CompletableFuture 的操作。此处重点了解下 CompletableFuture 几类操作时所使用的线程,CompletableFuture 的方法重点在它的静态方法以及实现自 CompletionStage 接口的方法,如果是意图异步化编程,反而自我标榜的 Fut
2017-02-21 04:20:47 5860
原创 Java 8 CompletableFuture 浅入
Java 1.5 有了 Future, 可谓是跨了一大步,继而 Java 1.8 新加入一个 Future 的实现 CompletableFuture, 从此线程与线程之间可以愉快的对话了。最初两个线程间的协调我采用过 Object 的 wait() 和 notify() , Thread 的 join() 方法,那可算是很低级的 API 了,是否很多 Java 程序都不知道它们的存
2017-02-21 04:20:21 938
原创 巩固 Java Future 的使用
Future 还是一 Java 1.5 带进来的产物,但过去那么多年实际代码中却很少有直接接触, 大约它多是隐匿在各种现成框架中默默的为我们服务。Future 本身不代表着多线程,而是代表着需异步计算的结果, 将来的一个期待,至于后来真正的结果不可知。在此之前想要获得一个 Runnable 在其他线程中的计算结果颇费波折,有了 Future 加之它身后的 Callable 一切就变得简单了
2017-02-21 04:19:24 635
原创 Hibernate 映射枚举(Enum) 类型的属性
在数据库中我们一般用整数或字符串来表示枚举值(有些数据库(如 MySQL)本身带有枚举类型), 而在使用 Hibernate 时实体对象中也用 Integer 或 String 来表示枚举就不那么友好了。试想来我们这样定义实体对象的两个属性@Entitypublic class User { .... public Integer type; //0: Indiv
2017-02-09 14:17:20 3084
原创 Java 的参数检查与断言 - Guava Preconditions
在前一篇 Scala 的参数检查与断言: require, assert, assume 和 ensuring,捉摸 Scala 的断言时提到了 JDK 内置对断言的粗略支持,也就是 assert 语句,并且默认该特性是被关掉,需 -ea 开启。assert object != null;assert object != null : "object can't be null
2017-02-09 14:16:23 1855
原创 Scala 的参数检查与断言: require, assert, assume 和 ensuring
似乎 C/C++ 的编程人员相比于 Java 更偏爱于断言,JDK 1.4 才开始引入 assert 的支持,但默认是关闭的,需要用 -ea 编译选项打开,否则代码中的 assert 语句全被忽略,一般会在单元测试中开启该选项。简单回顾一下 JDK 自带的断言,它用两种写法assert object != null;assert object != null : "object
2017-02-09 14:15:38 5971
原创 SQL Server 和 HSQLDB 中使用 merge into 完成 saveOrUpdate 操作
当我们调用 Hibernate 的 saveOrUpdate() 或 JPA 的 save() 方法的 Hibernate 实现时,都会做两步操作:1)按 ID 查询记录是否已存在,2)不存在插入新记录,存在则更新原记录。这种两步操作其实可以在 SQL Server 和 HSQLDB 中一条语句完成,这就是本文要介绍的 merge into 语句。感觉到用数据库自己的特性,并且一条语句会比
2017-02-09 14:14:41 1076
原创 Spring 如何初始化泛型类实例
在 Java 中对于泛型类型,比如这样简单的类定义class Processor {}如果直接初始化时要指定具体类型的话,我们可以这么写Processor processor = new ProcessorSpring 对基本泛型的初始化如果我们要用 Spring 容器来初始化这个类,比如给上面那个类加个 @Named 注解@Na
2017-02-02 14:24:58 4019
原创 Spring 项目中把 SQL 语句写在 .sql 文件中
我们在使用 JDBC 时, 如果把所有的 SQL 语句全写在 Java 文件中, 由于 Java 不支持 Here Document, 多行字符串要么用加号, 要么用 Java 8 的 String.join() 方法来连接, 同时不能对 SQL 语句进行语法加亮, 所以这样的 SQL 字符串阅读性很差. 别说为何不用 Hibernate 之类的而不直接写原始的 SQL 语句, 在操作复杂的系
2017-02-02 14:24:01 3355
原创 Java 单元测试如何断言(检查)控制台输出
关于在 JUnit 单元测试中如何断言某个函数的控制台输出已是我一个长久的问题. 虽然有控制台输出的函数有了副作用, 不能称之为一个纯函数, 在讲求函数式编程的今天, 纯函数是最好测试的, 所谓的 Data In, Data Out. 但总还是有这样的需求, 比如自己实现的某个日志框架的 Appender, 需要验证它向控制台的输出内容.我先前在项目中的办法是, 先把把标准输出定向到一个
2017-02-02 14:23:08 6715
Play for Scala.pdf
2014-04-04
Play.for.Java.Covers.Play.2
2014-04-04
Quartz Job Scheduling Framework 中文版 V1.0.0.pdf
2010-10-13
Quartz Job Scheduling Framework 中文版 V1.0.0.chm
2010-10-11
远程桌面批量登陆器,3389 RemoteDeskTop
2010-06-07
nantpad.2.0_with_Crack
2010-06-04
Quartz_Job_Scheduling_Framework_V0.9.5_中文版.pdf
2009-10-08
Quartz Job Scheduling Framework 中文版 V0.9.5.chm
2009-02-05
Quartz Job Scheduling Framework 中文版 V0.9.2.chm
2008-10-07
精通 Groovy.chm
2008-09-09
Quartz Job Scheduling Framework 中文版 V0.9.1.chm
2008-08-26
Quartz Job Scheduling Framework 中文版 V0.8.2.chm
2008-08-25
程序开发技巧集(Unmi整理)
2008-05-02
Visual.Assist.X.10.4.1619 + Crack
2007-12-01
华为代码统计工具CCT V2.0
2007-11-22
Perl 语言编程.chm
2007-11-15
CN-DOS批处理精华贴(2007-A)(IE6)
2007-10-16
DOS批处理经典入门教程
2007-10-16
APort
2007-10-15
fport
2007-10-15
Quartz Job Scheduling Framework
2007-10-11
JavaDOCHelper1.5.1_Viewer
2007-10-11
reilly.jboss.a.developers.notebook.jun.2005
2007-10-09
Spring程序高手秘笈--英文原版
2007-10-09
SWT程序高手秘笈--英文原版
2007-10-09
Hibernate:程序高手秘笈--英文原版
2007-10-09
Java 5.0 Tiger程序高手秘笈--英文原版
2007-10-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人