Skip to end of metadata
Go to start of metadata

Quick start

Getting Started

  • Bruce Eckel's free book "Thinking in Java" is a reasonably good place to start http://www.mindview.net/Books/TIJ/
  • The Sun Java tutorial is also good at http://java.sun.com/tutorial
  • Pay particular attention to 'Your First Cup of Java' and 'Essential Java Classes' although it's a good idea to eventually have read the entire tutorial.

Getting Started in Swing

To effectively use the Java Swing API you probably need to read at least the following trails from the Sun tutorial:

Here is a good free Swing book when you get to more advanced topics:

In general, the API is easy to learn and easy to use, but difficult to use correctly, if that makes sense. It helps to understand MVC and the design patterns that went into making Swing as flexible and powerful as it is (with so few classes).

Getting Started in Servlets/JSP

I'm a big fan of Martin Fowler's "More Servlets" book as an introduction to web application programming using the Java Servlets/JSP technologies. The book is now available as a free PDF. His first book, "Core Servlets", is also available.

Tools

Javadoc

Libraries

Native Access

JNA

XML data binding

Data binding in Castor, Part 1

  • This is the first part in a four part series of articles by Brett McLaughlin on Castor. Highly recommended.

XML and Java data binding articles, Part 1

  • This is also part one in a four part series, with an article comparing performance across available libraries.

Charting

What libraries are available for drawing plots?

This list is from http://java.sun.com/developer/community/askxprt/2006/jl1016.html.
JGraph
JFreeChart
yFiles
JUNG
LGL (Large Graph Layout)
Monarch Graph
MagPlot
JSynoptic

JFreeChart

Quick Start

  • The API for this library is documented reasonably well in the Javadocs and in the developer guide.
    • We have purchased this guide in the past and found it helpful for more complicated plots. Please see Jelai for more info.
  • This library requires practice to master as it has a simple API, but not a particularly orthogonal, or well-designed, one. I suggest trying the following navigation for practice:
    • Try a few of the simple plots, straight out of the manual or demo to get a feel for the JFreeChart, ChartFactory, and ChartUtilities classes.
    • Create a histogram.
    • Create a mix-o-matic histogram look-a-like (to learn overload plots).
    • Create a mix-o-matic power plot look-a-like (to learn more about drawing faux-curves).
    • Create a multi-axis plot.
    • If you can master these kinds of plots, you should be in good shape to tackle most requests.
  • The forums are helpful when you get in a pinch.

Java Numerical Libraries

Accuracy

As part of the paper "How accurate are extremely small p-values used in genomic research:An evaluation of numerical libraries" JW and SS identified and evaluated several Java and C numerical libraries on the accuracy of their CDF methods.

  • Gold Standard:
    The numerical libraries were evaluated by comparing values obtained from two gold standards.
    • ELV tool is free DOS executable tool developed by Leo Knusel. Original source is not provided with the package and it is challenging to extract p-values using shell re-direction.
      ELV
    • DCDFLIB is a free C numerical library obtained by converting original FORTRAN routines. The package can be downloaded with source code in C. The tail areas of distributions obtained form DCDFLIB were compared with ELV tool and were found to accurate for the distributions tested.
      DCDFLIB
      Original version of dcdflib from netlib

Numerical Libraries Evaluated in the Paper for CDF Accuracy:
JMSL: Ver 4.0
SSJ:A Framework for Stochastic Simulation in Java
JSci.math.statistics API
R tool:Ver 2.6.2
Statistics Online Computational Resource(SOCR)
Jakarta Commons Math(Apache Software Foundation), 2007
Colt:Ver 1.2.0

Reading and writing Microsoft Office file formats

Jakarta POI

Matrix math

JAMA, JAMPACK, JAVA3D javax.vecmath, JMSL, JMP, jterm, JNL

Pseudorandom Number Generation
Labels
  • None