定義:共有オブジェクトを使用して、メモリの使用量を最小限に抑え、できるだけ多くの同様のオブジェクトと情報を共有します。繰り返しのために受け入れられない量のメモリを使用する大きなオブジェクトに適しています。
機能:オブジェクトの作成を大幅に削減し、システムメモリを削減し、効率を向上させます。
エンタープライズレベルの開発と共通フレームワークのアプリケーション:データベース接続プール、文字列定数キャッシュプール
特定のコード例:
import 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 ++){circle circle = new Circle(getColor()); circle.setradius(getradius()); circle.setx(getz()); circle.sety(getz()); circle.draw(); }} public static string getColor(){string [] colors = {"red"、 "orange"、 "yellow"、 "cyan"、 "緑"}; RANDOM RANDOM = new Random(); int index = random.nextint(4); return colors [index]; } public static double getradius(){random = new Random(); return random.nextdouble()*20; } public static int getz(){random = new Random(); return random.nextint(100); }}/***要約百科事典クラス*グラフを描画する例は次のとおりです。たとえば、円を描く、それを修正するために色を追加する、円を描く方法は同じです。例:共有された色と目に見えない円描画方法、非共有半径と座標*/クラスサークルを実装した形状{private int x;プライベートインストY;プライベートダブル半径;プライベートストリングカラー;パブリックサークル(文字列色){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 double getradius(){return radius; } public void setradius(double radius){this.radius = radius; } public string getColor(){return color; } public void setcolor(string color){this.color = color; } public void draw(){system.out.println( ":("+this.x+"、"+this.y+")、および半径は「+this.radius+"、 "+this.color+");}}/*** *** factoryクラス:xiangyuan exmantiment in the chinguanmodemiment emplus in file in file in file in fick ent in the factory clodimentです。属性またはデータが共有されます*円の色が固定されていると仮定して、この例では、対応する共有データは、前述のように、すべてのサークルを描画する方法です。 Circle C = Map(Color);Xiangyuanモードは、主に、多数の類似のオブジェクトが大量のメモリを占めるという現象を解くために使用されます。メモリは貴重なリソースであるため、これらの類似のオブジェクトを分類し、共有するために同じ部分を抽出します。これにより、メモリオーバーヘッドを大幅に節約できます。ただし、1つの前提を覚えておく必要があります。メモリを保存している間、コードの実行時間を前提として増やすため、時間とメモリのオーバーヘッドのバランスを取る必要がある場合があります。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。