Java 传承的是平台,而不是语言。有超过 200 种语言可以在 JVM 上运行,它们之中不可避免地会有一种语言最终取代 Java 语言,成为编写 JVM 程序的最佳方式。本系列将探讨三种下一代 JVM 语言:Groovy、Scala 和 Clojure,比较并对比新的功能和范例,让 Java 开发人员对自己近期的未来发展有大体的认识。
完美数
数学家尼科马库斯(诞生于公元前 6 世纪)将自然数分为惟一的完美数(perfect number)、过剩数(abundant number) 或亏数(deficient number)。一个完美数等于它的正因数(不包括它本身)之和。例如,6 是一个完美数,因为它的因数是 1、2、3 和 6,28 也是完美数 (28 = 1 + 2 + 4 + 7 + 14)。过剩数的因素之和大于该数,亏数的因数之和小于该数(因数:假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因数。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。 反过来说,我们称n为m的倍数)。
这里使用完美数分类法是为了方便介绍。除非要处理大量数字,是否查找因素对于从并行化中获益而言是一个微不足道的问题。使用更多线程可带来一些益处,但线程之间的切换开销对细粒度的作业而言代价很高。
Java 下一代: 对比并发性
http://www.ibm.com/developerworks/cn/java/j-jn13/index.html