Java is always 'layered' ontop of whatever platform you are running, and will always be slower than the base system. That is the trade-off for 'compile once, run almost anywhere' for many applications the trade-off pays off, for others it doesn't.