TL;DR - No it won't.
The native code generated by the JIT compiler from identical bytecodes, by an identical Java release, and on the same OS could still be different.
The generated code could depend on the physical hardware that the JVM is running on; e.g. the number of cores, the chipset, etcetera.
The generated code could even depend on the inputs to the program. Before JIT compiling, the JVM uses a bytecode interpreter to run the code. This self-profiling gathers stats about branch probabilities, etcetera. These stats are used by the JIT optimizer. Since the code paths taken while running a program can depend on program inputs, different runs of the same program on the same machine may end up with the JIT compiler generating different native code.
Since non-deterministic behavior during the JVM warmup can affect the stats gathered during self-profiling, it is even possible for the generated code to differ between runs of identical code on identical platforms with identical inputs.
That's the nice thing about HotSpot JIT compilation. It adapts to the environment, and what the application does. But this can be a problem if your primary goal is to get reproducible native code and reproducible performance characteristics.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…