Maison >Java >javaDidacticiel >Explication détaillée de plusieurs fonctions courantes de Reference en Java

Explication détaillée de plusieurs fonctions courantes de Reference en Java

怪我咯
怪我咯original
2017-07-02 10:34:051941parcourir

Cet article vous présente principalement des informations pertinentes sur les multiples fonctions de Reference en Java. L'article le présente en détail à travers un exemple de code, qui a une certaine valeur de référence et d'apprentissage pour tous les amis qui en ont besoin peuvent suivre l'éditeur Study. et étudier.

Avant-propos

Plusieurs fonctions de référence en Java sont aussi des questions qui sont souvent posées lors des entretiens. J'avais l'habitude de les mémoriser une fois et de les oublier à nouveau. . Maintenant que j'ai le temps, autant écrire une démo pour la tester. Jetons un coup d'œil à l'introduction détaillée :

Le code spécifique est le suivant :

Paramètres JVM : -Xmx10m -Xms5m -XX:+PrintGC

SoftReference :


weakReference :


StrongReference :

Puisque fort est la valeur par défaut de JVM, je ne le ferai pas ici, mais ne le faites pas je ne le sais pas du tout Recyclé jusqu'à ce que OOM

PhantomReference:

VirtualReference ne change pas le mécanisme de recyclage de la mémoire, il est simplement placé dans la ReferenceQueue pendant le recyclage Informez l'utilisateur d'effectuer certaines opérations supplémentaires, telles que l'impression des journaux, etc.

Le code suivant, en substance, byte[] est toujours une référence forte.

Sortie :


Pour résumer :

  • StrongReference : JVM par défaut, à moins qu'il n'y ait plus de référence objet pendant le GC, même le MOO ne recyclera pas

  • WeakReference : Une fois qu'il n'est pas référencé, il sera recyclé lors du GC

  • SoftReference : Idem que strong, sauf s'il n'y a pas de référence d'objet lors du GC, sinon....avant le MOO le sera recyclé, donc SoftReference peut généralement être utilisé pour la mise en cache

  • sun.nio.ch.Util a un statique ThreadLocal< ;SoftReference > localSelector

  • = new ThreadLocal>();

  • pour le sélecteur temporaire .

  • PhantomReference : La ReferenceQueue du constructeur est utilisée comme notification pour effectuer des opérations supplémentaires lorsque l'objet est recyclé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn