title: What is the difference between getDeclaredConstructors and getConstructors in the Class API?
body: <p>I notice that in the Java Reflection API there are two different methods for invoking constructors: the <code>getDeclaredConstructors</code>/<code>getConstructors</code> method. Although the Java docs are slightly different (<code>getDeclaredConstructors</code> seems to imply that it returns ALL constructors, rather than public ones), its not clear why the API explicitly supports these two different methods.</p>
  
  <p>More importantly, I'm wondering : when would one method be preferable to another if we are invoking classes dynamically ?  For example, what is the purpose of accessing a private constructor?</p>