Definição: usa objetos compartilhados para minimizar o uso da memória e compartilhar informações para o maior número possível de objetos semelhantes; É adequado para objetos grandes que usam quantidades inaceitáveis de memória devido à repetição.
Recursos: reduz bastante a criação de objetos, reduz a memória do sistema e melhora a eficiência.
Aplicações no desenvolvimento de nível corporativo e estruturas comuns: pool de conexão de banco de dados, pool de cache constante de strings
Exemplo de código específico:
importar java.util.hashmap; importar java.util.map; importar java.util.random; public class Demo {public static void main (string [] args) {for (int i = 0; i <10; i ++) {círculo círculo = novo círculo (getColor ()); circ.setRadius (getRadius ()); circ.setx (getz ()); circ.sety (getz ()); circ.draw (); }} public static string getColor () {string [] colors = {"vermelho", "laranja", "amarelo", "ciano", "verde"}; Aleatório aleatório = novo aleatório (); int index = random.nextInt (4); retornar cores [índice]; } public static duplo getRadius () {aleatório = novo aleatório (); retornar aleatoriamente.nextDouble ()*20; } public static int getz () {aleather aleatória = new Random (); retornar aleatório.nextint (100); }}/** Exemplo: cores compartilhadas e métodos de desenho de círculo invisíveis, raio não compartilhado e coordenadas*/classe Circle implementa a forma {private int x; private int y; raio duplo privado; cor de corda privada; public círculo (cor da corda) {this.color = color; } public int getx () {return x; } public void setx (int x) {this.x = x; } public int gety () {return y; } public void Sety (int y) {this.y = y; } public duplo getRadius () {retornar raio; } public void setRadius (raio duplo) {this.radius = raio; } public string getColor () {return color; } public void setColor (cor da string) {this.color = color; } public void draw () {System.out.println ("Desenhe um círculo com as coordenadas centrais de: ("+this.x+","+this.y+"), e o raio é"+this.radius+"," this.color+");}}/*** Atributos ou dados são compartilhados* aqui assumindo que a cor do círculo é corrigida, só podemos desenhar algumas cores fixas de círculos* neste exemplo, os dados compartilhados correspondentes devem ser os atributos de cores correspondentes e o método de restauração invisível), conforme o STRATM), como o STATM), o que é o mesmo círculo) e o mesmo círculo). Círculo c = mapa.get (cor);O modo Xiangyuan é usado principalmente para resolver o fenômeno de que um grande número de objetos semelhantes ocupam uma grande quantidade de memória. Como a memória é um recurso precioso, classificamos esses objetos semelhantes e extraímos as mesmas partes para compartilhar. Isso pode salvar significativamente a sobrecarga da memória. No entanto, devemos lembrar uma premissa. Ao economizar memória, aumentamos o tempo de execução do código como premissa, então às vezes precisamos equilibrar o tempo e a sobrecarga da memória.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.