Aus der Dokumentation können Sie lesen:
%Vor%Ordnet ein boolesches Objekt zu, das das value-Argument darstellt.
Hinweis: Es ist selten sinnvoll, diesen Konstruktor zu verwenden. Wenn keine neue Instanz benötigt wird, ist die statische Fabrik valueOf (boolean) im Allgemeinen eine bessere Wahl. Es wird wahrscheinlich zu einer wesentlich besseren Raum- und Zeitleistung führen.
In Java ist Boolean (wie String) unveränderlich. Das heißt, wenn Sie
verwenden %Vor%x zeigt nach "x = false" auf ein anderes Objekt als zuvor. Wenn Sie also die Boolean.valueOf () -Methode verwenden, wird Java darauf achten, dass es nur zwei Boolean-Objekte gibt, von denen eines für wahr und das andere für falsch steht. Wenn Sie .valueOf (true) verwenden, wird ein Handle an das true-Objekt zurückgegeben, und wenn Sie .valueOf (false) verwenden, wird ein Handle für das false-Objekt zurückgegeben. Sie erstellen also keine unnötigen Objekte und müssen daher nicht vom Garbage Collector gelöscht werden.
Wenn Sie stattdessen "new Boolean ()" verwenden, funktioniert das nicht und Java erstellt jedes Mal ein neues Objekt. So haben Sie eine Menge unnötiger Objekte, die wahrscheinlich schnell freigegeben werden und vom Müllsammler gereinigt werden müssen. Dies kostet Ihnen mehr Speicher (für alle Objekte), Zeit für die Zuweisung (beim Erstellen neuer Boolescher Werte) und Zeit für die Freigabe (wenn die Objekte vom Garbage Collector erfasst werden), während Sie überhaupt keine Vorteile erhalten. p>
Tags und Links java performance pmd