A: It's a lot easier (for me) to correctly implement an algorithm (and the program that wraps it) in Java. That's because there's less complexity to memory management, and also because the tools available for writing and testing Java programs provide (in my opinion) vastly superior support to the coder.
Java is portable. C isn't. It's possible to write portable code in C, by either resticting what parts of the language spec you use, or playing makefile games. But that's all unnecessary in Java (exceptions exist, but that's true more often than not).
A: What I'm thinking is that it's not soooo sloooow, after all.
Before going down this path, I found that there's plenty of evidence that Java programs written with speed in mind (read: not using a ton of objects) can compete quite nicely with the speed of programs written in C, thank you very much.
For a hint of the evidence that convinced me to give it a try, see:
I omit all details here, and hope you'll believe that the test was as fair as I could make it. The C program was built to be as fast as possible, given algorithmic constraints (e.g. using memory pools to avoid malloc overhead). It was compiled using GCC, optimized for speed with -O4 (which slightly outperformed -O2). Perhaps I'll get around to posting details of the tests some time ... but don't hold your breath.
With esentially identical algorithms, the Java implementation runs about 10% slower than the C implementation (on average) over a wide range of inputs and several computers. 10% slower? Given the implementation and portability benefits that come with using Java, that's close enough for me. That's what I'm thinking.