First
let’s see the implementation of Boolean.valueOf method.
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
As
you see the above source code, valueOf method takes one argument ‘b’ and return
TRUE, if the argument ‘b’ is true, else FALSE. TRUE, FALSE are the constants
defined like below.
public static final Boolean TRUE = new
Boolean(true);
public static final Boolean FALSE = new
Boolean(false);
The
variables TRUE, FALSE are defined as static final variable, that is these are
immutable variables. One greatest advantage of immutable variables is that, they
can’t change their state, so we can reuse these variable at any point of time.
Following posts explain about the immutable classes.
In
case of constructor, constructor creates new object on every call. If you are
going to use same variable many times, then go for valueOf method than
constructor. It improves the performance and save space.
Test.java
public class Test { public static void main(String args[]) { long time1 = System.currentTimeMillis(); for (int i = 0; i < 100000000; i++) { Boolean b = Boolean.valueOf(true); } long time2 = System.currentTimeMillis(); for (int i = 0; i < 100000000; i++) { Boolean b = new Boolean(true); } long time3 = System.currentTimeMillis(); System.out.println("Time taken by valueOf method is " + (time2 - time1)); System.out.println("Time taken by constructor is " + (time3 - time2)); } }
Output
Time taken by valueOf method is 37 Time taken by constructor is 1315
You may like
No comments:
Post a Comment