Soweit ich weiß, haben public/protected/private
Keywords keinen Einfluss auf die Erstellungszeit. Aber ich frage mich, ob ein öffentliches Objekt/Klasse zugänglich ist, sollte Kosten verursachen. Hat es Kosten?Haben `public/protected/private` Keywords Auswirkungen auf die Leistung?
Antwort
Nein, tun sie nicht. Sie sind im Wesentlichen Kompilierzeit Konstrukte.
Das heißt, einige OOP-Sprachen (z. B. C++) können Optimierungsentscheidungen basierend auf etwas sein, das private
ist. Aber das ist unwahrscheinlich in Java wegen Reflexion auszunutzen, da in private
seine Unsichtbarkeit zu Sachen außerhalb der Klasse nicht garantiert ist.
ein öffentliches Objekt/Klasse zugänglich zu halten, sollte Kosten verursachen.
Ja, der Compiler muss prüfen, ob das Objekt, auf das Sie zugreifen, privat, geschützt und öffentlich ist. Es entscheidet dann, ob Sie darauf zugreifen dürfen.
Zur Laufzeit muss die Laufzeit jedoch nicht prüfen, ob Sie auf die Variable zugreifen dürfen. Warum? Da ein Programm ausgeführt werden muss, muss es kompiliert werden (es sei denn, Sie verwenden eine interpretierte Sprache wie JS). Wenn Sie versuchen, auf eine Variable zuzugreifen, die Ihnen nicht erlaubt ist, wird sie nicht einmal ausgeführt!
Zur Laufzeit muss sich die Laufzeitumgebung also keine Gedanken darüber machen, ob Sie auf die Variable zugreifen können und somit keine Auswirkungen auf die Leistung haben.
Diese Antwort ist nicht vollständig. Bei der Klassenladezeit - zur Laufzeit - überprüft der Bytecode-Verifizierer, dass Sie nicht auf private, geschützte oder paket-private Methoden, Felder und Klassen aus Code zugreifen, der dieses Recht nicht besitzt. Diese Überprüfung benötigt einige (minimale) Zeit, aber nur einmal während des Ladens der Klasse. –
Dann hat es einen Preis. – ahmetozkok
Ich denke, du solltest das als Antwort schreiben. – ahmetozkok
- 1. Auswirkungen auf die Leistung mit ASP.NET-Steuerelementen
- 2. Log.d und Auswirkungen auf die Leistung
- 3. Spark - Checkpointing Auswirkungen auf die Leistung
- 4. Auswirkungen auf die Leistung von Android Anmerkungen
- 5. Windows-Fehlerbericht Auswirkungen auf die IIS-Leistung?
- 6. Tatsächliche Parameterüberprüfung Leistung Auswirkungen
- 7. Kann das Refactoring negative Auswirkungen auf die Java-Performance haben?
- 8. Hat die Node --inspect-Flagge nennenswerte Auswirkungen auf die Leistung?
- 9. Leistung Auswirkungen von RDD auf JavaRDD Konvertierung
- 10. Auswirkungen auf die Leistung von ORDER BY COALESCE in MySQL
- 11. Haben abgebrochene Sitzungs-IDs Auswirkungen auf die azure Service Bus-Leistung?
- 12. Haben Alias-Tabellennamen in großen Abfragen merkliche Auswirkungen auf die Leistung?
- 13. Unter welchen Umständen kann GCD negative Auswirkungen auf die Leistung älterer Geräte haben?
- 14. Destrukturierung wenn haben identische Keywords
- 15. C++ 03 Nullzeiger gegen Null Objektmuster: Auswirkungen auf die Leistung
- 16. Cassandra Primärschlüssel. Auswirkungen auf die Leistung, wenn Ganzzahl vs Varchar
- 17. Auswirkungen auf die Leistung: Source Bindung vs x: Static
- 18. Auswirkungen auf die Leistung von columnfamily und Version in Hbase
- 19. Hat eine große Klasse Auswirkungen auf die Leistung?
- 20. Wann sollte die Serverwartung Auswirkungen auf die Implementierung haben?
- 21. Varnish: Leistung Auswirkungen große Ban Liste
- 22. Haben Tabellenhinweise in der Ansichtsdefinition Auswirkungen auf die Ansicht?
- 23. Wird die Anzahl der Fragmentbackstack-Einträge Auswirkungen auf onCreateOptionmenu() haben?
- 24. Wird die Minimierung des HTML-Anteils einer PHP-Datei Auswirkungen auf die Leistung und die Bandbreite haben?
- 25. Überlauf versteckt keine Auswirkungen haben
- 26. Welche Auswirkungen haben Speicher und Leistung auf das Importieren eines bestimmten Moduls aus der Python-Standardbibliothek?
- 27. Verwenden von sp_ als Präfix für gespeicherte Benutzerprozeduren in SQL Server, die Auswirkungen auf die Leistung haben
- 28. Hat die Argumentreihenfolge für die C-Aufrufkonvention jemals Auswirkungen auf die Leistung?
- 29. Leistung Auswirkungen der Verwendung von Swashbuckle
- 30. Nested Selektoren Leistung Auswirkungen und weniger
siehe http://stackoverflow.com/questions/7365329/speed-optimizing-private-and-public-variables-java, http://stackoverflow.com/questions/26676200/how-does-access-modifier -impact-the-performance-in-java, http://stackoverflow.com/questions/4279420/does-use-of-final-keyword-in-java-improve-the-performance – Andrew
Hier ist ein [Beispiel] (http://StackOverflow.com/a/23281131/3448419), wie Zugriffsmodifikatoren die Laufzeitleistung beeinflussen können. – apangin