This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
The accessibility keywords have the same meaning for constructors as they have for regular methods and member variables. So, a protected constructor can be accessed only by subclasses or by classes in the same package.
Sometimes you might want to make a constructor protected to make sure that it can be called only from subclasses, so that the class itself can't be instantiated directly. Often this is appropriate for abstract classes. The fact that the class is abstract already prevents you from instantiating it directly, but making the constructors protected emphasizes this, so that it's more clear for programmers who are going to use your class later.
The default accessibility of a constructor is exactly the same as the default accessibility of regular methods and member variables: if you don't specify public, protected or private, the constructor is only visible in the class itself and in classes in the same package.