>  기사  >  Java  >  Java에서 참조의 몇 가지 일반적인 기능에 대한 자세한 설명

Java에서 참조의 몇 가지 일반적인 기능에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-02 10:34:051878검색

이 글에서는 주로 Java에서 Reference의 다양한 기능에 대한 관련 정보를 소개합니다. 이 글에서는 예제 코드를 통해 자세히 소개하고 있으며, 필요한 친구들은 모두가 함께 배울 수 있습니다. . 술집.

머리말

Java의 여러 참조 기능도 면접에서 자주 묻는 질문이기도 합니다. 예전에는 기억하고 잊어버리곤 했는데, 이제는 시간이 나서 테스트해 보기 위해 간단하게 데모를 작성했습니다. 자세한 소개를 살펴보겠습니다.

구체 코드는 다음과 같습니다.

JVM 매개변수: -Xmx10m -Xms5m -XX:+PrintGC

SoftReference:


약함 다음을 언급할 때:


StrongReference:

JVM의 기본값이므로 여기서는 이를 수행하지 않습니다. OOM

PhantomReference:

virtualreference이 완료될 때까지는 전혀 재활용되지 않습니다. 메모리 재활용 메커니즘을 변경하지 말고 재활용 중에 ReferenceQueue에 넣어 사용자에게 로그 인쇄 등과 같은 추가 작업을 수행하도록 알리십시오. 본질적으로 다음 코드 byte[]는 여전히 강력한 참조입니다.

출력:


요약:

StrongReference: JVM 기본값, GC 중에
    object
  • 참조가 없으면 OOM도 재활용되지 않습니다.

    약한 참조 : 참조되지 않으면 GC 중에 재활용됩니다
  • SoftReference: GC 중에 객체 참조가 없으면 Strong과 동일합니다. 그렇지 않으면... OOM까지 재활용되지 않으므로 SoftReference는 일반적으로 가능합니다.
  • caching
  • sun.nio.ch.Util에 사용됩니다. 비공개
  • static
  • ThreadLocal> localSelector

    = new ThreadLocal>()이 있습니다.
  • 임시 선택자용.
  • PhantomReference:
  • constructor
  • 를 통해 전달된 ReferenceQueue는 객체가 재활용될 때 추가 작업을 수행하라는 알림 역할을 합니다.

위 내용은 Java에서 참조의 몇 가지 일반적인 기능에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.