1. 강력한 참조
일반적으로 새 객체를 생성할 때 이는 강력한 참조입니다. 예를 들어
Object obj = new Object();
메모리가 부족하더라도 JVM은 이러한 객체를 재활용하는 것보다 OutOfMemory 오류를 발생시킵니다. .
(추천 비디오 튜토리얼: java 비디오 튜토리얼)
2. 소프트 참조
객체에 소프트 참조만 있는 경우 메모리 공간이 충분하며 메모리가 부족하면 가비지 수집기가 이를 재활용하지 않습니다. 공간, 이러한 개체의 메모리가 회수됩니다.
SoftReference<String> softRef=new SoftReference<String>(str); // 软引用
용도:
소프트 참조에는 실제로 브라우저의 뒤로 버튼과 같은 중요한 응용 프로그램이 있습니다. 뒤로 버튼을 누르면 돌아갈 때 표시되는 웹페이지의 콘텐츠를 다시 요청하게 되나요, 아니면 캐시에서 가져오나요? 이는 구체적인 구현 전략에 따라 다릅니다.
(1) 탐색이 끝난 후 웹페이지의 콘텐츠가 재활용되는 경우 이전에 탐색한 페이지를 보기 위해 뒤로를 누르면 웹페이지를 다시 작성해야 합니다.
(2) 탐색한 웹 페이지를 메모리에 저장하면 많은 메모리 낭비가 발생하고 심지어 메모리 오버플로도 발생합니다.
다음 코드:
Browser prev = new Browser(); // 获取页面进行浏览 SoftReference sr = new SoftReference(prev); // 浏览完毕后置为软引用 if(sr.get()!=null){ rev = (Browser) sr.get(); // 还没有被回收器回收,直接获取 }else{ prev = new Browser(); // 由于内存吃紧,所以对软引用的对象回收了 sr = new SoftReference(prev); // 重新构建 }
추천 튜토리얼: java 빠른 시작
위 내용은 자바의 강한 참조와 약한 참조 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!