자바 에서 강 한 인용,소프트 인용,약 한 인용 개념 해석

1.개념 해석 강 인용 은 가장 보편적 인 인용 을 사용 하 는 것 이다.Object o=new Object().특징:GC 에
대상 의 인용 을 null:o=null 로 표시 합 니 다./쓰레기 수집 기 가 이 대상 을 회수 하도록 돕 기
예 를 들 어 ArrayList 의 실현 소스 코드:
<img src="https://pic2.zhimg.com/50/dd6f826c4e0c045f3701978f311636e1_hd.png" data-rawwidth="361" data-rawheight="159">
소프트 인용 은 일부 유용 하지만 필요 한 대상 이 아니 라 자바 에서 자바.lang.ref.softReference 류 로 표시 합 니 다.소프트 인용 과 연 결 된 대상 에 대해 서 는 메모리 가 부족 할 때 만 JVM 이 이 대상 을 회수 합 니 다.따라서 이 점 은 OOM 문 제 를 잘 해결 할 수 있 고 이 기능 은 캐 시 를 실현 하 는 데 적합 하 다.예 를 들 어 웹 캐 시,이미지 캐 시 등 이다.
브 라 우 저 웹 캐 시 인 스 턴 스:
<img src="https://pic4.zhimg.com/50/34a44802709c83869b50c5e16b8256db_hd.png" data-rawwidth="738" data-rawheight="143">
소프트 인용 은 인용 대기 열(Reference Queue)과 공동으로 사용 할 수 있 습 니 다.소프트 인용 대상 이 쓰레기 회수 기 에 의 해 회수 되면 자바 가상 기 는 이 소프트 인용 을 관련 인용 대기 열 에 추가 합 니 다.
약 한 인용 과 부 드 러 운 인용 의 차 이 는 약 한 인용 대상 만 더 짧 은 생명 주 기 를 가 진 다 는 것 이다.쓰레기 회수 기 스 레 드 가 관할 하 는 메모리 영역 을 스 캔 하 는 과정 에서 약 한 인용 대상 만 발견 되면 현재 메모리 공간 이 충분 하 든 그렇지 않 든 메모 리 를 회수 합 니 다.그러나 쓰레기 수 거 기 는 우선 순위 가 낮은 스 레 드 이기 때문에 약 한 인용 만 있 는 대상 을 빨리 발견 할 수 있 는 것 은 아니다.이 대상 이 가끔 사용 되 고 사용 할 때 언제든지 얻 을 수 있 기 를 원 하지만 이 대상 의 쓰레기 수집 에 영향 을 주 고 싶 지 않다 면 Weak Reference 로 이 대상 을 기억 해 야 한다.
실례:
<img src="https://pic4.zhimg.com/50/5000607cf6d43abd0533624cadea18bb_hd.png" data-rawwidth="743" data-rawheight="463">
가상 인용 은 환영 인용 이 라 고도 한다.한 대상 은 모두 가상 인용 이 있 는 존재 로 생존 시간 에 영향 을 주지 않 고 가상 인용 을 통 해 한 대상 에 대한 진실 한 인용 을 얻 을 수 없다.유일한 용도:대상 이 GC 에 의 해 시스템 알림 을 받 을 수 있 고 JAVA 에 서 는 Phantom Reference 로 허위 인용 을 실현 할 수 있 습 니 다.
2.대비 가 다르다.
<img src="https://pic3.zhimg.com/50/65b7abe9bf2fcd249c789024d95bb67a_hd.jpg" data-rawwidth="858" data-rawheight="378">

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기