2017-03-09 2 views
0

In allen Low-Level-Sprachen ist die Größe von char 1 Byte. Also, warum Java 2 Bytes Größe für Char-Typ unterstützen .. Es könnte einfach sein, aber ich bin sehr neu in Java, weshalb ich Sie bitten, zu unterstützen.Warum ist die Größe des Zeichens 2 Byte in Java?

Dank

+0

Da mit Unicode ist es möglich, praktisch jedes einzelne Zeichen (das in jeder Sprache existiert) zu kodieren –

+0

Die Größe eines Zeichens hängt von dem verwendeten Codierungsformat ab. Einige Formate verwenden sogar mehr als 2 Bytes. Wenn Sie nur 1 Byte verwenden, sind Sie praktisch auf das alte ASCII beschränkt. Neuere Schemata unterstützen mehr Zeichen und noch wichtiger mehr Sprachen. – Aaron

+0

C++ hat mehrere Zeichentyp-Datentypen und nur einer davon ist als "mindestens 8 Bits" definiert. Ihre Behauptung ist einfach falsch. – v010dya

Antwort

2

In Java 'char' Typ repräsentiert eine UNICODE Zeichen, das

+4

Nun, * war * 2 Bytes lang. Dann stellten sie fest, dass es nicht genug ist und es [noch komplizierter] wurde (http://stackoverflow.com/questions/5290182/how-many-bytes-does-one-unicode-character-take). – Kayaman

+0

Ja, Sie haben Recht mit UNICODE-Zeichen, aber um die Kompatibilität des Java-Programms zu erhalten, bleibt der Datentyp 'char' 16 Bit lang. https://docs.oracle.com/javase/tutorial/i18n/text/unicode.html – Luci

0

char eine Datenstruktur zwei Bytes lang ist, dass 16 Bits. Somit sind 2 Bytes (jeweils 8 Bits) 16 Bits.

+1

Ja, aber die Frage will wissen, warum. In anderen Sprachen sind Zeichen 1 Byte lang (also ... normalerweise; das ändert sich wahrscheinlich, wenn Unicode auf Ascii an Boden gewinnt). Siehe Lucis Antwort. – nasukkin

+1

'char' ist ein Primitiv, das in Java immer 16 Bit lang ist, genau wie' int' immer _32 Bit lang ist. Nicht "standardmäßig", weil es keine andere Option gibt. Außerdem ist 'char' ein numerisches Primitiv und ist eine" Datenstruktur "auf die gleiche Weise wie" int ". –

+0

Ich korrigierte die Verwendung der englischen Sprache, um Sie zu beschwichtigen. Aber ich stehe zu der Tatsache, dass char eine Datenstruktur ist, ähnlich wie int. – JahKnows

Verwandte Themen