Can "exactly the same programs" always be written in different languages?
Yes, if all languages agree not to use their libraries and/or managed types (e.g. strings).
From scientific point of view, the Java program was faster.
No, that's practical point of view. As already said before, the implementation of the program differs. The data structure, algorithms behind it, implemented algorithms for the problem itself, etc.
Since J2SE 1.3 (May 8, 2000) the default HotSpot Java VM has compiled bytecode to native code
Doesn't mean it's faster than native code. JIT-ing takes time (and memory, and huge memory usage in turns causes slow down due to page faults), and that's even the actual bottleneck of bytecode interpreted implementations.