Maison >Java >Javacommencer >Introduction aux références fortes et aux références faibles en Java

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

王林
王林avant
2020-04-10 15:50:452753parcourir

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();

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);     // 软引用

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);       // 重新构建
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer