https://dzone.com/articles/escape-analysis //Java문법 public String getCarDescription() { Car car = new Car(); String description = car.generateDescription(); return description; } //아래예제는 java의 Escape에 대한 설명을 위하여 C++로 작성된 코드이다. //일반적이 자바에서 객체의 할당이라면? //만약 Car클래스가 내부에서만 접근되지않다면 다음과같이 가비지에 대상에 포함되지않아, Car클래스는 할당상태가 유지된다. public String* getCarDescription() { Car* car = new Car(); String* description = car.generateDescription(); return description; } //선택적 escape? //다음과 같이컴파일 최적화가 되어 자동차클래스는 객체 정적할당되고.(NoEscape) //자동차안에 객체는 복사되어 string객체만 복사카피되어 동적할당된다.(ArgEscape?) //이경우 굳이 필요하지않은 가비지가 필요한 메모리만 선택적으로 동적할당하여 관리된다. public String* getCarDescription() { Car car; String* pCarString = car.generateDescription(); String* description = new String(pCarString->size()); strcpy( description, car.generateDescription()); return description; }