Définition: il utilise des objets partagés pour minimiser l'utilisation de la mémoire et partager des informations à autant d'objets similaires que possible; Il convient aux grands objets qui utilisent des quantités de mémoire inacceptables dues à la répétition.
Caractéristiques: réduit considérablement la création d'objets, réduit la mémoire du système et améliore l'efficacité.
Applications dans le développement au niveau de l'entreprise et les frameworks communs: pool de connexions de base de données, pool de cache constant de chaîne
Exemple de code spécifique:
Importer java.util.hashmap; import java.util.map; import java.util.random; public class Demo {public static void main (string [] args) {for (int i = 0; i <10; i ++) {cercle Circle = new Circle (getColor ()); Circle.setRadius (getRadius ()); Circle.setx (getz ()); Circle.Sety (getz ()); Circle.Draw (); }} public static String getColor () {String [] couleurs = {"red", "orange", "jaune", "cyan", "vert"}; Aléatoire aléatoire = nouveau aléatoire (); int index = random.nextint (4); RETOUR COLLES [INDEX]; } public static double getRadius () {aléatoire aléatoire = new random (); return random.nextDouble () * 20; } public static int getz () {random random = new random (); return random.nextint (100); }}/** * Abstract Encyclopedia Class* Here is an example of drawing a graph: for example, drawing a circle, adding color to fix it, the way of drawing a circle is the same, the difference is the position of the circle and the radius of the circle*/interface Shape{ public void draw();}/** * Specific Enjoyment Class* Here a specific Enjoyment Class is created, the class contains data that can be shared and data that cannot be shared* For Exemple: couleurs partagées et méthodes de dessin du cercle invisible, rayon et coordonnées non partagées * / CLASS Cercle implémente la forme {private int x; privé int y; rayon double privé; couleur de corde privée; Cercle public (Color de chaîne) {this.color = couleur; } public int getX () {return x; } public void setx (int x) {this.x = x; } public int gety () {return y; } public void sey (int y) {this.y = y; } public double getradius () {Retour Radius; } public void setRadius (double rayon) {this.radius = radius; } public String getColor () {return couleur; } public void setColor (String Color) {this.color = couleur; } public void draw () {System.out.println ("dessiner un cercle avec les coordonnées centrales de: (" + this.x + "," + this.y + "), et le rayon est" + this.radius + "," + this.color + ");}} / ** * Classe de faits: la section spécifique de la section xiangyuan est réellement implémentée dans cette section. Les attributs ou les données sont partagés * Ici, en supposant que la couleur du cercle est fixe, nous ne pouvons dessiner quelques couleurs fixes de cercles * Dans cet exemple, les données partagées correspondantes devraient être les attributs de couleur correspondants et la méthode de restauration invisible {Private Static Map <String, Cercle> Cercle = New Hashmap <>); Circle C = Map.get (couleur);Le mode Xiangyuan est principalement utilisé pour résoudre le phénomène selon lequel un grand nombre d'objets similaires occupent une grande quantité de mémoire. Parce que la mémoire est une ressource précieuse, nous classons ces objets similaires et extrons les mêmes parties pour le partage. Cela peut économiser considérablement les frais généraux de mémoire. Cependant, nous devons nous souvenir d'une prémisse. Lors de l'enregistrement de la mémoire, nous augmentons le temps d'exécution du code comme prémisse, nous devons donc parfois équilibrer le temps et les frais généraux de mémoire.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.