static field initiate optimize
src | + -- jp.ymatsukawa | + -- constructor | | | + -- InstanceAble.java + -- Main.java
jp.ymatsukawa/Main.java
package jp.ymatsukawa; import jp.ymatsukawa.constructor.InstantiateAble; import java.util.Calendar; public class Main { public static void main(String[] args) { InstantiateAble instantiateAble = new InstantiateAble(); } }
jp.ymatsukawa/constructor/InstantiateAble.java
package jp.ymatsukawa.constructor; public class InstantiateAble { private int someIntValue; private static int classConstantX; private static int classConstantY; static { // instantiate static field // only the first time the class instantiated classConstantX = 80; classConstantY = 5; } public InstantiateAble() { // when called constructor, static field is already instantiated upon this.someIntValue = (classConstantX + classConstantY); } }
when use constant value, consider also utility class