>  기사  >  Java  >  자바의 강한 참조와 약한 참조 소개

자바의 강한 참조와 약한 참조 소개

王林
王林앞으로
2020-04-10 15:50:452713검색

자바의 강한 참조와 약한 참조 소개

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제