Micro Benchmark Framework 框架主要是method 层面上的 benchmark,精度可以精确到微秒级 比较典型的使用场景还有: 想定量地知道某个函数需要执行多长时间,以及执行时间和输入 n 的相关性 一个函数有两种不同实现,不知道哪种实现性能更好 简单demo 创建项目   mvn archetype:generate \ -DinteractiveMode=false \ -DarchetypeGroupId=org.openjdk.jmh \ -Darchetype…
Measure, don’t guess! JMH适用场景 JMH只适合细粒度的方法测试 原理 编译时会生成一些测试代码,一般都会继承你的类 maven依赖 <dependencies> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>${jmh.version}</version&g…
健壮的 Java 基准测试 健壮的 Java 基准测试,第 1 部分: 问题 了解 Java 代码基准测试的问题 Brent Boyer, 程序员, Elliptic Group, Inc. 简介:程序性能一直是受到关注的问题,即使在现在这样的高性能硬件时代,也是如此.本文是分两部分的文章系列的第一篇,讨论与 Java™ 代码基准测试相关的许多问题.第 2 部分讨论基准测试的统计并提供一个执行 Java 基准测试的框架.因为几乎所有新语言都是基于虚拟机的,所以本文讨论的基本原则适用于许多编程语言…
Java第三方library ecosystem是一个很广阔的范畴.不久前有人撰文:每个项目中,你必须知道的11个Java第三方类库. 单元测试 1.DBUnit DBunit是一个基于junit扩展的数据库测试框架.它提供了大量的类对与数据库相关的操作进行了抽象和封装. 2.MOckito Mockito是一个针对Java的mocking框架.你可以使用简洁的API编写出漂亮的测试. 3.Hamcrest Matchers Hamcrest 是一个测试辅助工具,提供了一套通用的匹配符 Matc…
项目中你不得不知的11个Java第三方类库 博客分类: Java综合 JavaGoogle框架单元测试Hibernate Java第三方library ecosystem是一个很广阔的范畴.不久前有人撰文:每个项目中,你必须知道的11个Java第三方类库.  单元测试  1.DBUnit  DBunit是一个基于junit扩展的数据库测试框架.它提供了大量的类对与数据库相关的操作进行了抽象和封装. 2.MOckito  Mockito是一个针对Java的mocking框架.你可以使用简洁的API…
背景 最近一口气看完了Joshua Bloch大神的Effective Java(下文简称EJ).书中以tips的形式罗列了Java开发中的最佳实践,每个tip都将其意图和要点压缩在了标题里,这种做法我很喜欢:一来比较亲切,比起难啃的系统书,EJ就像是一本Java的<俚语指南>:二来记忆起来十分方便,整本书过一遍就能望标题生义. 在通读这本书时,我发现作者多次列举现有类库中的实现的设计模式,我有意将其收集起来,这些实现相当经典,我觉得有必要落成一篇文章.随着以后对类库的理解越来越深,我也会持续…
java的人应该都知道Apache commons的java常用类库吧,这个Guava和commons一样,封装出一套比jdk本身提供的常用类库强大.既然有了这个这么强大的类库,我们就没必要重复造轮子了.这东西怎么用,看看官网的文档和API.英文不好的,也有网上翻译出来共享的.开始Guava之旅猛击下面的链接 官方地址:http://code.google.com/p/guava-libraries/  [大家都知道这个要FQ哦,windows下推荐ziyoumen软件] 官方翻译文档:http…
我们曾经讲过,Java已经为编程者编制了许多类,这些类已经经过测试,基本上不存在错误,这些类都是我们编程的基础.如果不利用这些已存在的类,我们的 编程工作将变得异常复杂,所以我们应尽可能多的掌握Java基本类库的内容.这一章和下一章将向读者介绍Java基本类库的结构和一些常用类以及如何参考 Java技术文档,让读者能进一步提高自己 学习重点 ● 包的概念 ● java.lang中的几个基本类 ● 如何查阅Java技术文档 ● 常用工具类       第八章    JAVA基本类库介绍 8.1 包…
最近CMS系统为了增加查询的匹配率,需要增加拼音检索字段,在网上找到了pinyin4j的java开源类库,提供中文转汉语拼音(并且支持多音字), 呵呵,看了看他的demo,决定就用它了,因为我在实际使用的时候,需要考虑多音字的不同排列组合,下面的代码就是支持多音字的. pinyin4j官方网址:http://pinyin4j.sourceforge.net/ maven依赖 <dependency> <groupId>com.belerweb</groupId> <…
JAVA IO类库详解 一.InputStream类 1.表示字节输入流的所有类的超类,是一个抽象类. 2.类的方法 方法 参数 功能详述 InputStream 构造方法 available 如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调用这个函数是在下载文件或者对文件进行其他处理时获取文件的总大小. read 从输入流中读取数据的下一个字节 mark (int readlimit) 在输入流中标记当前的位置 markSupported 判断输…