static A a =new A();
When this line is written in another class say : class b;
a is accessible without the need for declaring an object of b.
i.e., b.a
Not in the other case.
Many factory classes and methods are accessed this way coz, the classes are private and abstract, so u cannot make an object of that class.
For example:
System.out.println() - here println() is a method, out is an object of some class that is declared static in the class System. if it were'nt static, then we had to make an object of the System class and then access the out object,
hope this helps
let me know