Whether you use Java or C is not always as important as the algorithm you use. Being smarter can make more difference.
You might not see this as a fair test of Java vs C, but in the real world human factors are matter. There is no point saying C is faster in theory but there isn't anyone available to make it so. Its like getting a very cheap price on an item which is not in stock. ;)
Benchmark ShootoutJava is temporarily the fastest for this particular knucleotide benchmark. It is quite likely that if the algorithm I used is translated to C it would be faster again. But for the moment Java is fastest because it uses a different approach in a number of key places.
Benchmark results at Wed 31st August 2011.
If anyone is interested in translating it to C, I would like to know how much faster it is. ;)
Making it faster againOn my home PC it only takes 0.684 ms, a gain of 2.5x. My PC uses newer hardware (and an over clocked CPU)