Java utilizza UTF-16 per la rappresentazione di testo interno
La rappresentazione for String e StringBuilder ecc in Java è UTF-16
http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp
come il testo è rappresentato nella piattaforma Java?
Il linguaggio di programmazione Java è basato sul set di caratteri Unicode e numerose librerie implementano lo standard Unicode. Il tipo di dati di dati primitivi nel linguaggio di programmazione Java è un numero intero a 16 bit senza segno che può rappresentare un punto di codice Unicode nell'intervallo da U + 0000 a U + FFFF o le unità di codice di UTF-16. I vari tipi e classi nella piattaforma Java che rappresentano sequenze di caratteri - char [], implementazioni di java.lang.CharSequence (come la classe String) e le implementazioni di java.text.CharacterIterator - sono sequenze UTF-16.
A livello di JVM, se si utilizza -XX:+UseCompressedStrings
(che è di default per alcuni aggiornamenti di Java 6) La rappresentazione reale in-memoria può essere a 8 bit, ISO-8859-1, ma solo per le stringhe che fanno non ha bisogno della codifica UTF-16.
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
e sostiene una modifica non standard UTF-8 per la serializzazione stringa.
Le stringhe serializzate utilizzano UTF-8 per impostazione predefinita.
E quanti byte utilizza Java per un carattere in memoria?
A char
è sempre due byte, se si ignora la necessità di riempimento in un oggetto.
Nota: un punto di codice (che consente il carattere> 65535) può utilizzare uno o due caratteri, vale a dire 2 o 4 byte.
fonte
2012-03-14 09:35:24
http://stackoverflow.com/questions/4655250/difference-between-utf-8-and-utf-16, questo potrebbe rispondere alla tua domanda. –
Ciò che Java utilizza e ciò che la JVM utilizza in memoria non deve essere lo stesso. Vedi la mia risposta. –
la tua fonte principale di informazioni (ufficiali) su Java dovrebbe essere http://java.sun.com! (_dopo lo stackoverflow_) –