The statement newallocates new heap space and calls the constructor. You will always receive a new object this way (if, as others have pointed out, an exception is thrown in the constructor).
The thing is slightly different from static methods that return a link, for example Integer.valueOf(), which, if possible, reuses objects from the internal pool.
source
share