First proposed as a mechanism for enhancing Web content the Java(TM) langua
ge has taken off as a serious general-purpose programming language. Industr
y and academia alike have expressed great interest in using the Java langua
ge as a programming language for scientific and engineering computations. A
pplications in these domains are characterized by intensive numerical compu
ting and often have very high performance requirements, in this paper we di
scuss programming techniques that lead to Java numerical codes with perform
ance comparable to FORTRAN or C, the more traditional languages for this fi
eld. The techniques are centered around the use of a high-performance numer
ical library, written entirely in the Java language, and on compiler techno
logy. The numerical library takes the form of the Array package for Java. P
roper use of this package, and of other appropriate tools for compiling and
running a Java application, results in code that is clean, portable, and f
ast We illustrate the programming and performance issues through case studi
es in data mining and electromagnetism.