Heim > Java > javaLernprogramm > Warum führt das Hinzufügen von zwei Java-Zeichen zu einer Ganzzahl und nicht zu einem Zeichen?

Warum führt das Hinzufügen von zwei Java-Zeichen zu einer Ganzzahl und nicht zu einem Zeichen?

DDD
Freigeben: 2024-12-08 04:14:10
Original
380 Leute haben es durchsucht

Why Does Adding Two Java Chars Result in an Integer, Not a Char?

Numerische Typkonvertierung beim Hinzufügen von Java-Zeichen

Beim Hinzufügen von zwei Java-Zeichen wie „a“ und „b“ erfolgt eine numerische Typkonvertierung auftritt. Im Gegensatz zu den meisten anderen Programmiersprachen führt dieses Hinzufügen nicht zu einer Zeichenausgabe.

Ergebnisdatentyp

Gemäß der Java-Sprachspezifikation ist das Ergebnis des Hinzufügens von Zeichen ein Kurzschluss , oder Bytes ist ein int. Dieses Verhalten wird auf Javas Binary Numeric Promotion-Regeln zurückgeführt, die besagen, dass beide Operanden in den Typ int konvertiert werden, wenn binäre arithmetische Operationen ausgeführt werden.

Beispiel

Bedenken Sie Folgendes Beispiel:

char x = 'a' + 'b'; // 결과는 int
System.out.println(x); // 195를 출력
Nach dem Login kopieren

Ausnahmen

Diese Regeln haben jedoch eine Ausnahme für zusammengesetzte Zuweisungsoperatoren wie =. Zum Beispiel:

char x = 1, y = 2;
x += y; // 합법적이며 결과는 char
System.out.println(x); // 195를 출력하고 컴파일 오류가 발생하지 않음
Nach dem Login kopieren

In diesem Fall wird das Ergebnis der Addition (ein int) mithilfe eines zusammengesetzten Zuweisungsoperators explizit in char zurückkonvertiert.

Bestimmen des Ergebnistyps

Um den Typ des Ergebnisses im Allgemeinen zu bestimmen, kann man es in ein Objekt umwandeln und es abfragen Klasse:

System.out.println(((Object)('a' + 'b')).getClass()); // class java.lang.Integer를 출력
Nach dem Login kopieren

Leistungsüberlegungen

Beachten Sie, dass der Java-Bytecode keine spezifischen Anweisungen für die Arithmetik mit kleineren Datentypen enthält. Stattdessen verwendet es int-basierte Anweisungen (z. B. iadd) und setzt die oberen Bytes bei Bedarf manuell auf Null.

String-Verkettung

Wenn die Absicht besteht, Zeichen als zu verketten einen String, nicht numerisch interpretieren, verwenden Sie einen leeren String im Ausdruck, da das Hinzufügen eines Zeichens und eines Strings zu einem String führt.

Das obige ist der detaillierte Inhalt vonWarum führt das Hinzufügen von zwei Java-Zeichen zu einer Ganzzahl und nicht zu einem Zeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage