title: Relying on default field initialisation - is bad programming style?
body: <p>I was given a link to the official oracle documentation: <a href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html" rel="noreferrer">https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html</a></p>
  
  <p>where it is said:</p>
  
  <blockquote>
    <p>Default Values </p>
    
    <p>It's not always necessary to assign a value when a
    field is declared. Fields that are declared but not initialized will
    be set to a reasonable default by the compiler. Generally speaking,
    this default will be zero or null, depending on the data type. Relying
    on such default values, however, is generally considered bad
    programming style.</p>
  </blockquote>
  
  <p>I want to emphasis this part: </p>
  
  <blockquote>
    <p>Relying on such default values, however, is generally considered bad programming style.</p>
  </blockquote>
  
  <p>But, oh boy, this is, I would say, a fundamental part of the language specification knowing that instance variables have default values. Why on earth this is a <em>bad programming practice</em> if it is widely used even in Java SE libraries source code?</p>