Depuis sa création, l'ambition du langage Java est d'être un langage portable. Cette volonté a eu des conséquences importantes sur les spécifications concernant la façon dont sont menés les calculs. Alors qu'en C ou en C++ il n'est pas rare que des options d'optimisation du compilateur fassent légèrement varier le résultat d'une opération en virgule flottante, ce genre d'artefact est interdit par la norme Java. Une même opération, quelqu'elle soit, donne toujours le même résultat, y compris sur des processeurs différents.