I've been playing around with some database engines based purely on Java recently (H2, HSQLDB and Apache Derby) and I've been pleasantly surprised. The one I'd like to concentrate on here is H2.
It lists an impressive set of features especially compared to other databases. There is also a more detailed comparison on the H2 website
However what I most like is its size. The whole distribution is less than 1.2 MB and that includes a reasonably sophisticated web front end for running queries and inspecting the databases. Its also seems incredibly fast (considering its written in Java) and especially so when compared to Derby though I only have anecdotal evidence for this from my experience building a couple of sample projects.
If you haven't tried it already, I really recommend giving it a go as its incredibly easy to get applications up and running with especially in Java.