사용자 정의 객체 타입 또는 내장 객체 타입의 인스턴스를 생성
new 연산자는 인스턴스를 만들고, 그것의 참조값을 반환한다.
다만 인스턴스를 만드는 것과, 인스턴스를 할당하는 것은 다른 개념다.
MyClass a; // declaration
a = new MyClass(); // assignment
new 연산자는 인스턴스를 선언하는 것이 아니다. 인스턴스를 생성하고, 그것의 참조값(주소값)을 리턴할 뿐이다. 이것을 명확히 구분할 수 있어야 new 연산자가 책임을 지는 범위를 명확히 이해할 수 있을 것이다.
아래의 포스트를 참고하면 더 깊은 이해가 가능하다.
https://velog.io/@black-snake/%EA%B0%9D%EC%B2%B4-vs-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4