> Java > Java시작하기 > 자바의 강한 참조와 약한 참조 소개

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

王林
풀어 주다: 2020-04-10 15:50:45
앞으로
2748명이 탐색했습니다.

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

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿