2011-09-06 3 views
1

특정 객체가 여전히 메모리에 있는지 아닌지 확인할 수있는 방법이 있습니까? 예를 들어, GuiSearch이라고하는 JFrame이 있습니다. 나가 어떤 방법을 불렀을 때 그것은 처형 될 것이다. 나는 그것이 여전히 기억 속에 있는지, 아니면 처분되고 있는지 찾아야한다. 나는 자바를 처음 사용합니다. 도와주세요.메모리에있는 객체를 찾는 방법

편집 : 특정 개체가 여전히 메모리에 있는지 확인하고 메모리에있는 경우 메서드를 호출하고 싶지 않은 경우 다른 메서드를 호출합니다.

+0

왜 그런 것이 필요합니까? 주위에 참조를 유지하고 완료하십시오. 또한 시간이 매우 복잡하다는 점을 고려하십시오. – delnan

+0

내 주요 대상은 특정 개체가 여전히 메모리에 있는지 확인하는 것이고 메모리에있는 경우 다른 메서드를 호출하지 않으면 한 메서드를 호출하려고합니다. 그것이 내가하고 싶은 일입니다. –

+2

그것은 끔찍한 생각입니다. (1) 객체가 도달 할 수 없게되면 메모리에 잘 남아있을 수 있습니다. 그것에 따라 (특정 버전 및 종류) 가비지 수집기의 변덕에 따라 코드가 실행됩니다. (2) 이것 없이는 할 수있는 것이 완전히 가능합니다. 부정한 개를 느리게 해킹하는 대신 디자인을 수정하십시오. – delnan

답변

1

disposed은 개체에 의해 숨겨진 리소스를 정리한다고 가정합니다.

참조가있는 한 객체는 여전히 메모리에 있습니다. 처리 된 내용에 따라 개체를 "처분"하고 여전히 참조 할 수 있도록 메모리에 남아있을 수 있습니다.

+1

그리고 비록 객체에 대한 참조가 없다고해도 꽤 오랫동안 메모리에 남아있을 수 있습니다. – delnan

1

코드를 통하지 않고 디버깅을 위해이 작업을 수행한다고 가정합니다. 그렇다면 힙 메모리를 덤프하고 Eclipse Memory Analyzer과 같은 도구를 통해 확인하십시오.

1

이것은 나쁜 프로그래밍 습관이며 절대 수행하지 않습니다. 메모리에있는 객체를 보려면 jvisualvm을 사용할 수 있습니다. Sun JDK에서는 자체 객체를 제공합니다. Java 가상 머신에서 실행되는 동안 Java 애플리케이션에 대한 자세한 정보를 볼 수있는 시각적 인터페이스를 제공합니다.

관련 문제