1. Strings == und equal()
Bei der Gleichheitsbeurteilung von Zeichenfolgen beurteilt ==, ob die Adressen gleich sind, und equal() beurteilt, ob die Zeichenwerte gleich sind. Meistens sind die Ergebnisse von == und equal() gleich. Dies liegt daran, dass sich das String-Objekt im unveränderlichen Modus befindet. Wenn Sie kein neues String-Objekt erstellen, speichert Java standardmäßig das neu generierte String-Objekt in einem Puffer und bestimmt dann den Puffer Dieses Objekt ist bereits vorhanden. Wenn dies der Fall ist, zeigt das später erstellte String-Objekt mit demselben Zeichenwert auch auf die Adresse, an der das Zeichenwertobjekt ursprünglich erstellt wurde. Das heißt, wenn die Charakterwerte gleich sind, ist in den meisten Fällen auch die Geologie gleich. == hat den gleichen Effekt wie equal(). Wenn das Objekt jedoch durch str = new String("abc") generiert wird, anstatt direkt als str = "abc" zugewiesen zu werden, oder nach einer Verarbeitung der Zeichenfolgenverbindung oder durch Objekte wie StringBuffer generiert wird, werden neue Objekte im geöffnet Für Adressen sind die Ergebnisse von == und equal() zu diesem Zeitpunkt unterschiedlich.
Ist es etwas kompliziert? Hier benötigen Sie einige Kenntnisse über Speicher, Stapel und Objektspeicher. Ich möchte mich nicht mit diesem Thema befassen. Wenn Sie es nicht verstehen, denken Sie daran: Wenn Sie feststellen möchten, ob die Zeichenwerte zweier Zeichenfolgen gleich sind und keine anderen Anforderungen bestehen, verwenden Sie bitte equal() anstelle von == ==, ich denke, wenn Sie es brauchen, werden Sie es auf natürliche Weise verstehen. Tatsächlich müssen wir zur String-Beurteilung selten == verwenden.
2. Über str.equal("abc") und "abc".equal(str)
Darüber scheint es viele Diskussionen zu geben. Die erste Konstante am Ende zu schreiben, entspricht möglicherweise den Gewohnheiten der meisten Menschen und unserem logischen Denken. Es ist jedoch noch eine weitere Beurteilung erforderlich, um festzustellen, ob str null ist. Andernfalls kann es hier zu einer Ausnahme kommen. Die letztgenannte Schreibweise erfordert keine weitere Beurteilung darüber, ob sie null ist. Was meine persönlichen Vorlieben betrifft, bevorzuge ich die letztere Schreibweise.
3. Über null von String
/**
* Testen Sie die Situation, wenn Javas String null ist
* Erstellungsdatum: 3.6.2009
* Autor:Administrator
*
*/
public static void testNull(){
String a= null,b = null,c="hehe";
System.out.println(a == null);
System.out.println(a+b+c);
}
Ergebnis der Methodenausführung:
WAHR
nullnull haha Jeder sollte also beim Zusammenführen von Zeichenfolgen aufpassen. Vergessen Sie nicht, nach Null zu suchen, da sonst das Ergebnis nicht sehr zufriedenstellend ist!