title: Is the `new` keyword in java redundant?
body: <p>I am coming from C++ so there is one feature of java that I don't quite understand. I have read that all objects must be created using the keyword <code>new</code>, with the exception of primitives. Now, if the compiler can recognise a primitive type, and doesn't allow you to create an object calling its constructor without <code>new</code>, what is the reason to have the keyword <code>new</code> at all? Could someone provide an example when two lines of code, identical except for the presence of <code>new</code>, compile and have different meaning/results? </p>
  
  <p>Just to clarify what I mean by redundant, and hopefully make my question clearer. Does <code>new</code> add anything? Could the language have been expressed without <code>new</code> for instantiation of objects via a constructor? </p>