변수를 선언하고 초기화 한 다음 나중에 다른 값으로 다시 초기화 할 때 내 프로그램에서 어떤 일이 발생하는지 알고 싶었습니다. ArrayList 또는 비슷한.Java 변수 -> 바꾸기? RAM 최적화
예를 들어 말씀 드리면 내 RAM에서 어떤 일이 발생합니까? 이 :
ArrayList<String> al = new ArrayList<String>();
...add values, work with it and so on....
al = new ArrayList<String>();
내 첫 번째 ArrayList가 RAM에 저장되었거나 두 번째 ArrayList가 첫 번째 ArrayList와 동일한 위치에 저장됩니까? 아니면 그냥 "알"의 참조를 바꿀 것인가?
교체되지 않으면 수동으로 첫 번째 arraylist가 차지하고 있던 RAM을 해제 할 수 있습니까? (가비지 컬렉터를 기다리지 않고) 먼저 설정하는 것이 도움이 되겠습니까?
니스 인사, 힙에
+1 : 초기 최적화는 ... –
ArrayList.clear()를 호출해도 포함되지 않은 배열의 모든 요소가 null로 설정되므로 (구현 세부 사항 임에도 불구하고) ArrayList.clear()를 호출해도 사용 가능하지 않습니다. 이전 배열의 요소를 지우는 것보다 새 ArrayList를 할당하는 것이 더 빠를 수 있습니다. 그러나 이들과 같은 것들은 프로파일 링되어야하며 더 빠른 것을 조기에 발견 할 수 있습니다 - 조숙 한 최적화는 ... –
... 마이크로 벤치마킹의 악의적인 의붓 자식? – mdma