제6 조:만 료 된 인용 변 수 를 제거 합 니 다.
JAVA 는 쓰레기 수 거 메커니즘 으로 메모 리 를 수 거 했 기 때문이다.
변수 가 어떤 종류 에 도 사용 되 지 않 은 상태 에서 만 회수 된다.그러나 우리 가 프로그램 을 만 들 때 는 무의식적으로 대상 을 유지 하 는 경우 가 많다.
쓰레기 회수 메커니즘 을 회수 할 수 없 게 하여 메모리 누 출 을 야기 하 다.
1.인용 변 수 를 제거 하지 않 은 예
배열 로 스 택 을 만 듭 니 다.
4.567913.문 제 는 pop()방법 에서 스 택 을 나 올 때 우리 가 얻 은 test 인 스 턴 스 를 되 돌려 줍 니 다.하지만 사실 Test 의 인용 은 STACK 배열 에 남아 있 습 니 다.
STACK 배열 에 남아 있 는 변 수 를 만 료 변수 라 고 합 니 다.배열 은 이러한 만 료 변 수 를 유지 할 것 이다.쓰레기 회수 메커니즘 을 회수 할 수 없 게 하 다.
2.해결 방법.
배열 이 이 변수의 인용 을 가지 지 못 하 게 합 니 다.
그 러 니까
STACK[loc] = null;//인용 제로.
3.흔히 볼 수 있 는 메모리 누 출 문제
데 이 터 를 캐 시 에 저장 합 니 다.그리고 캐 시 된 데 이 터 는 더 이상 사용 되 지 않 습 니 다.캐 시가 회수 되 지 않 아 누 출 되 었 습 니 다.
캐 시 수명 주기 가 키 값 에 따라 온다 면 Weak HashMap 을 사용 할 수 있 습 니 다.
Weak HashMap:key 가 회수 되면 value 도 회수 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.