I see this idiom of initializing instance variables quite a bit
public class Test{ private Long l = 1l; private MyClass mc = new MyClass(); public Test(){} ... } But I would prefer
public class Test{ private Long l; private MyClass mc; public Test(){ l = 1l; mc = new MyClass(); } ... } Considering that these are non-final variables, are the 2 approaches equivalent or is one "more" correct than the other in terms of thread safety?