java 에서 list 의 일부분을 가져오고 싶을때 흔히 list.subList 를 많이 사용한다 기존 list 의 일부분을 잘라 새로 생성하는 메서드로 생각하고 크게 신경쓰지 않고 사용해왔다. 하지만 잘못 사용하면 메모리 누수의 위험이 있다. 많이 사용하는 ArrayList.subList 의 코드 구현부를 보자 public List subList(int fromIndex, int toIndex) { subListRangeCheck(fromIndex, toIndex, this.size); return new SubList(this, fromIndex, toIndex); } private static class SubList extends AbstractList implements RandomAccess ..