Vorteil der Verwendung von statischen Variablen in Java

Sagen, ich habe zwei Klassen, wie diese:

class A{  
    private static Random random = new Random();  

    public A(){  
        //Do something.
    }

    public Integer methodGetsCalledQuiteOften(){
        return random.nextInt();
    }
}

class B{  
     private Random random;  

     public A(){  
         random = new Random();
         //Do something.
     }

     public Integer methodGetsCalledQuiteOften(){
         return random.nextInt();
     }
}

In einem Szenario, wo beide von Ihnen mehrfach instanziert und die beiden Klassen' Instanzen' Methode methodGetsCalledQuiteOften aufgerufen wird, eine Menge, ist es real Vorteil/Nachteil (Zeit, Speicher) in eine statische variable, die hält Random() in der Klasse A im Gegensatz zum erstellen einer neuen Random() Objekt in jedem einzelnen Fall, wie in der Klasse B?

Die Anwendung ist multithreaded und ein höheres Maß an Zufälligkeit ist, so dass ich denke, ich werde mit statischen SecureRandom. Wenn, dass wird ein echter Geschwindigkeits-Faktor nach Profilierung, die ich wählen könnte, etwas anderes.

InformationsquelleAutor Nikita | 2010-09-28
Schreibe einen Kommentar