JSON库之性能比较:JSON.simple VS GSON VS Jackson VS JSONP

Java中哪个JSON库的解析速度是最快的?

Published: 15 Jun 2015

如何在finally块中访问返回值

尽管JVM是基于栈的虚拟机,但Java语言却不允许你去访问这个栈。但其实在某些场景下(尽管是不太常见),这个功能是非常实用的。

Published: 11 Jun 2015

什么是垃圾回收

本文摘自我们几周后即将出版的Garbage Collection Handbook一书的样章。同时也让你能熟悉下垃圾回收的基础知识——这选自该书的第一章。

Published: 02 Jun 2015

通过JVM日志来进行安全点分析

许多事件都可能会导致JVM暂停所有的应用线程。这类暂停又被称为"stop-the-world"(STW)暂停。触发STW暂停最常见的原因就是垃圾回收了(github中的一个例子),但不同的JIT优化(例子),偏向锁擦除(例子),特定的JVMTI操作,以及许多场景都可能会导致应用程序暂停。

Published: 25 May 2015

泛型方法的反模式

我承认,我自己也忍不住用过这项技术。它简直太方便了,可以省去一次不必要的类型转化。这就是:

Published: 07 May 2015

Google Guava的5个鲜为人知的特性

image

Published: 27 Mar 2015

Java 8新的时间日期库的20个使用示例

除了lambda表达式stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全的。看来Java已经意识到需要为时间及日期功能提供更好的支持了,这对已经习惯使用Joda时间日期库的社区而言也是件好事。关于这个新的时间日期库的最大的优点就在于它定义清楚了时间日期相关的一些概念,比方说,瞬时时间(Instant),持续时间(duration),日期(date),时间(time),时区(time-zone)以及时间段(Period)。同时它也借鉴了Joda库的一些优点,比如将人和机器对时间日期的理解区分开的。Java 8仍然延用了ISO的日历体系,并且与它的前辈们不同,java.time包中的类是不可变且线程安全的。新的时间及日期API位于java.time包中,下面是里面的一些关键的类:

Published: 17 Mar 2015

类加载与锁

Published: 04 Mar 2015

Full GC是否真的存在

在Plumbr这和GC暂停检测打交道的这段日子里,我查阅了与这个主题相关的大量文章,书籍以及资料。在这当中,我经常会对新生代GC, 年老代GC以及Full GC的事件的使用(滥用)感到困惑。于是便有了这篇文章,希望能够清除一些困惑。

Published: 03 Mar 2015

遗失的JVM堆内存

“HI,你能不能过来帮我看下这个奇怪的现象?”我之所以会写这篇文章是因为我在一个技术支持的案例中遇到了这么一个情况。这个问题是由于不同的JVM工具所检测出来的可用内存的大小不一致所产生的。

Published: 13 Feb 2015