鲜为人知的但很有用的 Java 类

作者:Dustin Marx 发表日期:Fri, 03/02/2012 - 23:10.

Reddit Java 网站最近有一个题目为“分享 Java 标准类库中一些有用的类”的讨论话题,注解栏为“有很多平常我们没有认识到的类,分享一些你经常使用而我们可能没有意识到的类吧!”。在这篇文章中,我看到下面回复超过 40 的一些类(大部分是 JDK 中的)。

有一些回复者分享的是与并发相关的 Java 类,如 Executors, java.util.concurrent.CountDownLatch, java.util.concurrent.atomic.AtomicInteger, ThreadLocal, java.util.concurrent 以及包下的所有类以及java.util.concurrent.atomic.

还有一些与 String 处理相关的类也被提到了,包括 StringBuffer, 和 StringBuilder. 我在博文 String, StringBuffer, and StringBuilder: There Is A Performance Difference 中也提到了这些与 String 相关的类。其他与 String 相关并被提到的包括java.util.StringTokenizerApache Commons‘ StringUtils (在我的文章 Checking for Null or Empty or White Space Only String in Java 中也有提到). java.util.Scanner 类也可以让简化文本解析。

在用户界面上, java.awt.geom 包, java.awt.Desktop 以及 javax.swing.SwingUtilities 被提到。 java.awt.Point 被高亮显示,原因总结为:”任何两个 int 值对可以很简单的被用来代替数组传递给函数,或者从函数中返回,都可以使用 Point 类”。java.awt.Robot 类也在文中被提到,我之前也在我的一篇文章Screen Snapshots with Java’s Robot 中提到。

不出所料,一些 Java 集合类也在列在其中。包括 java.util.EnumSetEnumMap (参考我的文章The Sleek EnumMap and EnumSet), java.util.ArrayDeque (参考我的文章The Java SE 6 Deque), java.util.PriorityQueue,java.util.Arrays, 以及 java.util.Collections (参考我的文章 The Java Collections Class).

以我之见,java.lang.ClassLoader, java.util.ServiceLoaderjava.nio.file.FileVisitor 是 Reddit Java 话题中提到的更精心构思和特别的类。我们大部分的情况下都是用强引用(strong reference),但java.lang.ref.WeakReference (弱引用)和 java.lang.ref.SoftReference (软引用)也在讨论中被提到。

最后,我经常使用的一个类和一个方法分别是 BigDecimal 类(我的一边文章中顺便提到了该类: Caution: Double to BigDecimal in Java )和 System.nanoTime()

结论:

我喜欢列表中的很多类,也能想到一些其他的例子。特别的,我想 JDK7 中的 Objects 类也能称得上很有用但鲜为人知的一个类把。我同样同意其中一个评论的说法:“把 Google guava 库添加进来吧!”,我也写过 一些博文 关于 Guava

原文:http://marxsoftware.blogspot.com/

翻译自:http://www.javaworld.com/community/node/8335