객체 생성할때 선언부분
조회수 823회
자바 스레드 쪽 공부를 하다가 객체 생성을 하는데
SoloThread s = new SoloThread(10);
s.start();
라는 부분을 축약해서
new SoloThread(10).start();
만 쓰거나 하는 경우를 봤습니다.
위 예제가 아니더라도 몇개 더 보긴 했는데
선언없이 바로 new해서 할당을 할 수 있나요?
어떤방식으로 되어서 위의 코드가 가능한지 궁금해서 질문드립니다!
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
변수는 단지 객체의 주소(레퍼런스) 를 가리키는 심볼일 뿐입니다. 변수는 가리키고 있는 주소를 편히 가져오기 위한 용도로 사용됩니다.
변수를 통해 객체의 주소를 가져오지 않아도, 주소를 조달할 수 있는 방법이 있다면 무리 없이 객체에 접근할 수 있습니다.
new
는 객체를 생성해서 그 주소를 반환하는 역할을 합니다.따라서
new SoloThread(10)
를 하면 SoloThread 가 메모리에 생성되어 그 주소가 반환됩니다.이때 주소를 변수에 저장하지 않고 바로 접근할 수 있기 때문에
new SoloThread(10).start();
처럼 생성된 객체를 바로 사용할 수 있는 것입니다.C++ 와 같은 언어는
new
로 생성한 객체를delete
로 해제를 해주어야 하지만, Java 같은 경우 GC(Garbage Collector) 가 존재하기 때문에 알아서 해제가 됩니다.
댓글 입력