Q:

Order of creating @Inject objects

Look at following class (please note, that it is not a singleton):
public MyClass() {

    @Inject private A a;
    @Inject private B b;

}

What object will be created first a or b?  
Is there a possibility of determine the order of creating objects? 

A:

I don't think so and I don't see a reason why it should matter (I am also afraid that order of object instantiation can change from deployment to deployment).  You are guaranteed to have all objects injected in @PostConstruct and that's the most important thing (as far as I am concerned). 

A:

Actually, you can very much control order.   First, assume that they have normal scopes (e.g. @RequestScoped).   Second, make B have a reference to A.  You'll see that A gets instantiated first, then B.  Note that you'll need to track via your @PostConstruct method.