스칼라 수준에서 어떤 객체에 도달할 수 없게 될 수 있음
이런 경우 해당 객체가 차지하고 있는 메모리는 런타임이 회수할 수 있음
도달할 수 없는지 여부를 꼭 참조 여부만으로 결정하는 것은 아님
모든 참조 타입 (AnyRef의 인스턴스)은 JVM 힙 heap에 있는 객체로 구현
어떤 차조 타입의 인스턴스가 도달할 수 없는 상태가 되면, 실제로도 그 객체에 대한 참조가 없는 상태여야 하며, 쓰레기 수집기가 수집 할 수 있음
값 타입 AnyVal 은 원시 타입 값이나 힙에 있는 자바 래퍼 Wrapper 타입이 인스턴스로 구현할 수 있음 (java.lang.Integer)
값 타입 인스턴스는 그 인스턴스를 의미하는 변수의 전체 생명주기 동안에 때때로 박스에 들어갈 수도 있고(원시 값에서 래퍼 객체로 변환), 박스에서 나올 수도 있음(래퍼 객체에서 원시 타입 값으로 변환)
어느 순간 래퍼 객체로 JVM 힙에 있는 값 타입 인스턴스가 도달할 수 없게 되려면, 실제로도 그 인스턴스를 참조하는 것이 없어야 함
이런 경우 쓰레긱 수집기가 처리할 수 있음
원시 값으로 구현한 값 타입 인스턴스에 도달할 수 없는 경우라면, 참조가 없는 상태가 되지 않음
해당 객체는 실행 지점에 JVM 힙에 존재하지 않기 때문
런타임이 이런 도달할 수 없는 값이 차지하는 메모리를 회수할 수 있는 경우도 있음
실행 시점에 자바 원시 타입인 int로 구현한 Int 타입의 인스턴스는 실행 중에 메소드의 스택 프레임상에 존재할 것임
그 메모리는 메소드가 끝나고 스택 프레임을 팝pop 할 때 '회수' 하는 셈
String 같은 참조 타입의 메모리는 도달할 수 없는 상태가 된 후, JVM 의 쓰레기 수집기가 회수할 것임