System.aus.println() vs \n in Java
Sagen wir, ich wollte drucken 5 Linien. Welche ist die beste Methode (für die Leistung und Lesbarkeit).
System.out.println();
System.out.println();
System.out.println();
System.out.println();
System.out.println();
oder
System.out.println("\n\n\n\n");
Ist es eine Frage der Präferenz oder ist eine besser als die andere. Es scheint so, als würde eine Menge Zeit sparen, verwenden Sie die zweite Methode.
- Ich würde +2 Ihr Kommentar, wenn ich könnte 🙂
- Ich +1 würden Sie es für Sie 🙂
- Ich bezweifle ernsthaft, es gibt keinen Unterschied in der Leistung, und die Lesbarkeit ist eine persönliche Entscheidung ist (und würde, hängt von der situation ab).
- Ich erinnere mich, als ich anfing, stellte ich fast die gleiche Frage. Als Schüler ist es schwierig zu wissen, was echte computer-Wissenschaftler tun würde. Ich erinnere mich, "\n" sah sehr merkwürdig und immer am günstigsten gelegene extra printlns. Dies ist keine triviale Frage für jemanden, der gerade erst in der informatik. (@pst noch +1, aber ich denke, Sie sollten erklären, warum: das ist eine sehr interessante Frage!)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein funktionale Unterschied zwischen den beiden. Die erste version Ausgänge Zeilenumbrüche, die über die Plattform bevorzugt, line separator. Die zweite version Ausgänge newline-Zeichen, die wahrscheinlich unangemessen für Windows oder Mac OS.
Dies ist wichtiger als jede Reale oder eingebildete performance-Vorteile.
Auf dem Thema performance, und warum jeder scheint zu sagen "jetzt reicht es".
Den Unterschied in der Leistung zwischen den beiden Arten des Schreibens, der code ist wahrscheinlich eine kleine Anzahl von Mikrosekunden oder weniger. In anderen Worten, eine end-Benutzer nicht den Unterschied bemerken ... es sei denn, der code ausgeführt wird millionenfach.
Als eine Allgemeine Regel, professionelle software-Ingenieure sind der Ansicht, dass es sich nicht lohnt, Zeit zu verbringen, um etwas schneller, wenn es nicht werden müssen schneller. Und es ist sicherlich nicht lohnt sich der AUFTRAGGEBER das Geld, dies zu tun.
Sollten Sie nur schwelgen in der Mikro-Optimierung, wenn Sie über klare Beweise, dass es ist, oder wird ein performance-problem, und dass der code, den Sie zu optimieren ist, wo das eigentliche problem ist /sein wird. Zeitaufwand optimieren die falsche bit-code ist Verschwendete Zeit.
So, wie Sie wissen wenn zu optimieren?
Und wie Sie wissen, was zu optimieren?
Leistung ist nicht immer eine unwichtige Frage. In der Tat, für einige Arten von software, design oder Durchführung, die nicht berücksichtigen, performance und Skalierbarkeit-Anforderungen kann eine totale Katastrophe. Aber die meiste software ist nicht so.
Vielleicht besser ist als entweder:
Verwendet den line separator entsprechende Plattform, wo
"\n"
nicht.println()
, aber wahrscheinlich langsamer, wenn man sich die Gemeinkosten der Decodierung der format-string. Auf der anderen Seite, dassDer 2. ist definitiv weniger code, performance-Weise, könnten Sie nicht sehen, einen Unterschied, aber letzterer ist möglicherweise schneller, da Sie nur 1 nennen, aber es wäre vernachlässigbar.
Die zweite option ist sicherlich schneller, da jeder Aufruf von println() bewirkt, dass ein system-Funktion aufgerufen werden. Dieser Sprung in den kernel-code nimmt eine gewisse Zeit. Dies ist die Argumentation hinter Pufferung in C.
Wie Sie sehen können aus den Antworten, dies ist eine Frage der Präferenz. Das Beispiel, das Sie geben, ist eine sehr einfache, wo die performance-Gewinne und die Lesbarkeit Probleme sind minimal. In einigen komplizierten Fällen jedoch, die die Wahl der scheinbar gleichwertige Methoden zu benutzen, kann lähmend sein, um Ihren code, oder könnte es dadurch zu einem Nachbarn.
Wenn der code sieht aus wie es ist irgendwie immer chaotisch, versuchen Sie abstrahiert aus der chaotisch-code und gibt es eine einfache Methode read name.
Also ja, das ist eine Frage der Präferenz.
(Edit: Nein, dies ist offensichtlich nicht eine Frage der Präferenz (^o^ )//)
Für Plattform-abhängigen Zeile Trennzeichen ich verwenden würde:
Diese Arbeit sollte auf win, linux oder mac.
Die zweite option ist die bessere Methode.
Es ist nicht nur einfacher für den Programmierer, aber weniger Funktion overhead.