Get the App
SLTechnology News&Howtos  ›  Development  › 

How to solve the logic errors caused by JVM optimization

Shulou Source: shulou.com Published: 2022-06-03 01:16:24 09月12日 Update

In this issue, the editor will bring you how to solve the logic errors caused by JVM optimization. The article is rich in content and analyzes and narrates it from a professional point of view. I hope you can get something after reading this article.

Public class Test2 {public static void main (String [] args) {Integer i1 = 100; Integer i2 = 100; if (i1 = = i2) System.out.println ("equal!"); else System.out.println ("unequal!");}}

As in the code above, what do you think will be output?

The result is "equal", , the comparison of objects pointing to different addresses, how can they be equal?

If the value is changed to 256, a miracle occurs and the output is "unequal".

This is because jvm optimizes the code during autoboxing, using an instance for values between-128and 127during autoboxing.

This leads to logical errors. It's impossible to guard against!

To be reliable, use the following initialization object method, so that the result is always logical.

Public class Test2 {public static void main (String [] args) {Integer i1 = new Integer; Integer i2 = new Integer; if (i1 = = i2) System.out.println ("equal!"); else System.out.println ("not equal!");}}

If you have been developing java for a long time, you will have a headache for logic that seems to be completely normal, and you will get weird results after compilation, which depends entirely on your experience with jvm.

The above is how to solve the logic errors caused by the JVM optimization shared by the editor. If you happen to have similar doubts, you might as well refer to the above analysis to understand. If you want to know more about it, you are welcome to follow the industry information channel.

Tags: Logic errors results code content objects analysis packing output differences headaches weird unpreventable professional small and medium between rich in content addresses miracles as above Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Huawei macOS NVidia Shulou Technology MariaDB