Migration - Other Considerations - JVM Implmentations
diffeRenCes in JaVa ViRtual maCHine implementations In theory, various implementations of the JVM follow the same specifications and therefore an application or an application server that has been developed and tested against one JVM seamlessly works with other JVM implementations as well. While this is largely true, there are exceptions and circumstances where differences in implementations cause problems. These problems are sometimes the result of misinterpretation of the specification by a vendor, or at other times simply a defect that has not been uncovered and resolved. Most relate to assumptions made by developers that are not backed by the specification. When faced with uncertainty about the correct JVM behavior, more often than not, developers test the actual behavior and make assumptions based on their observations. Unfortunately such assumptions are only valid for the current JVM vendor and version and may not be part of the explicitly stated specifications. As such, a change in the JVM implementation may often negate such assumptions and lead to the misbehavior of the application.