Unlike methods, a constructor cannot be abstract, static, final, native, strictfp, or synchronized. A constructor is not inherited, so there is no need to declare it final and an abstract constructor could never be implemented. A constructor is always invoked with respect to an object, so it makes no sense for a constructor to be static.
If yout think about it, it makes sense. A static method is a class method is invoked without there having to be an specific object against which it is called. In other words, in an instance method there is a 'this' object that you can use to refer to the object against which the method was invoked. In a static method there is no 'this' because it is a class method not an instance method. A constructor is more like a special case of an instance method, it has a 'this' reference in it, where 'this' refers to the object that is being created. Hope that helps