Constant folding is a compiler optimization technique, where recognizing and evaluating constant expressions is done at compile time rather than computing them at runtime.
For example,
double d1 = (10 * 87.8654 * 123) - 98;
Java compiler evaluate the above constant expression while generating the byte code, and interpreted as ‘double d1 = 107976.442;’
ConstantFoldingDemo.java
public class ConstantFoldingDemo {
private static void dummyCalc() {
double d1 = (10 * 87.8654 * 123) - 98;
double d2 = (11 * 88.8654 * 124) - 99;
double d3 = (12 * 89.8654 * 125) - 100;
System.out.println("d1 : " + d1);
System.out.println("d2 : " + d2);
System.out.println("d3 : " + d3);
}
public static void main(String[] args) {
dummyCalc();
}
}
In the above snippet, values of d1, d2 and d3 are evaluated at compile time. To confirm the same, I decompiled the ConstantFoldingDemo.class file, you can observe the findings in following image.
You may like
How to check two float values equality?
How to check whether a class is loaded or not in Java?
How to get a random element from Set?
Extract the elements of specific type in a collection
No comments:
Post a Comment