Maison > Java > Javacommencer > le corps du texte

Introduction aux références fortes et aux références faibles en Java

王林
Libérer: 2020-04-10 15:50:45
avant
2706 Les gens l'ont consulté

Introduction aux références fortes et aux références faibles en Java

1. Référence forte

Nous créons généralement un nouvel objet avec une référence forte, comme

Object obj = new Object();
Copier après la connexion

Même en cas de mémoire insuffisante, la JVM préfère que lancer une erreur OutOfMemory ne récupère pas un tel objet.

(Tutoriel vidéo recommandé : Tutoriel vidéo Java)

2. Référence logicielle

Si un objet n'a qu'une référence logicielle, la mémoire S'il y a suffisamment d'espace, le garbage collector ne le récupérera pas ; si l'espace mémoire est insuffisant, la mémoire de ces objets sera récupérée.

SoftReference<String> softRef=new SoftReference<String>(str);     // 软引用
Copier après la connexion

Utilisation :

Les références logicielles ont des applications importantes en pratique, comme le bouton retour du navigateur. Lorsque vous appuyez en arrière, le contenu de la page Web affichée lorsque vous revenez en arrière sera-t-il de nouveau demandé ou récupéré du cache ? Cela dépend de la stratégie de mise en œuvre spécifique.

(1) Si une page Web recycle son contenu à la fin de la navigation, elle devra être reconstruite lorsque vous appuyez en arrière pour afficher la page précédemment consultée.

(2) Si vous stockez les pages Web consultées en mémoire, cela entraînera beaucoup de gaspillage de mémoire, voire provoquera un débordement de mémoire.

Le code suivant :

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);       // 重新构建
}
Copier après la connexion

Tutoriels associés recommandés : Java Quick Start

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal