SoftReference 클래스

정의

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

[Android.Runtime.Register("java/lang/ref/SoftReference", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public class SoftReference : Java.Lang.Ref.Reference
[<Android.Runtime.Register("java/lang/ref/SoftReference", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type SoftReference = class
    inherit Reference
상속
SoftReference
특성

설명

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

가비지 수집기가 특정 시점에 개체에 부드럽게 연결할 수 있다고 판단한다고 가정합니다. 이때 해당 개체에 대한 모든 소프트 참조와 강력한 참조 체인을 통해 해당 개체에 연결할 수 있는 다른 부드러운 연결 가능한 개체에 대한 모든 소프트 참조를 원자성으로 지우도록 선택할 수 있습니다. 동시에 또는 나중에 참조 큐에 등록된 새로 지워진 소프트 참조를 큐에 넣기합니다.

부드러운 연결 가능한 개체에 대한 모든 소프트 참조는 가상 머신이 throw되기 전에 지워지도록 보장됩니다 OutOfMemoryError. 그렇지 않으면 소프트 참조가 지워지는 시간 또는 다른 개체에 대한 이러한 참조 집합이 지워지는 순서에 제약 조건이 없습니다. 그러나 가상 머신 구현은 최근에 만든 소프트 참조 또는 최근에 사용한 소프트 참조를 지우지 않도록 하는 것이 좋습니다.

<h3>캐싱</h3> 에 대한 소프트 참조를 피합니다. 실제로 소프트 참조는 캐싱에 비효율적입니다. 런타임에는 지울 참조와 유지할 참조에 대한 정보가 충분하지 않습니다. 가장 치명적으로, 소프트 참조를 지우고 힙을 늘리는 것 중에서 선택할 수 있는 경우 어떻게 해야 할지 모릅니다.

각 참조의 애플리케이션에 대한 값에 대한 정보가 부족하면 소프트 참조의 유용성이 제한됩니다. 너무 일찍 지워진 참조로 인해 불필요한 작업이 발생합니다. 메모리가 너무 늦게 지워지는 경우

대부분의 애플리케이션은 소프트 참조 대신 사용해야 android.util.LruCache 합니다. LruCache에는 효과적인 제거 정책이 있으며 사용자가 할당된 메모리 양을 조정할 수 있습니다.

1.2에 추가되었습니다.

에 대한 java.lang.ref.SoftReferenceJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

생성자

SoftReference(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

SoftReference(Object)

지정된 개체를 참조하는 새 소프트 참조를 만듭니다.

SoftReference(Object, ReferenceQueue)

지정된 개체를 참조하고 지정된 큐에 등록되는 새 소프트 참조를 만듭니다.

속성

Class

Object런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
IsEnqueued

이 참조 개체가 연결된 큐에 있는지 테스트합니다(있는 경우).

(다음에서 상속됨 Reference)
JniIdentityHashCode

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
JniPeerMembers

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

PeerReference

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

Clear()

이 참조 개체를 지웁니다.

(다음에서 상속됨 Reference)
Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Dispose()

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
Enqueue()

등록된 큐에 이 참조 개체를 추가합니다(있는 경우).

(다음에서 상속됨 Reference)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
Get()

이 참조 개체의 참조를 반환합니다.

(다음에서 상속됨 Reference)
GetHashCode()

개체에 대한 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
RefersTo(Object)

이 참조 개체의 참조가 .인지 테스트합니다 obj.

(다음에서 상속됨 Reference)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
ToArray<T>()

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.>

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

GetJniTypeName(IJavaPeerable)

일시 참조 개체는 메모리 수요에 따라 가비지 수집기의 재량에 따라 지워집니다.

적용 대상