[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
On Tue, Jul 05, 2005 at 08:31:12PM +0200, Ole Laursen wrote: > Keld Jørn Simonsen <sslug@sslug> writes: > > >> Der er forskel på hvad Java-sproget stiller til rådighed og hvad den > >> virtuelle maskine benytter. Sproget benytter 16 bit-tegn, men den > >> virtuelle maskine gemmer strengkonstanter i UTF-8 så vidt jeg husker. > >> Se her under afsnit "5.4 String Resolution": > >> > >> http://www.cs.arizona.edu/~collberg/Research/Java-VMSpec/ConstantPool.doc.html > > > > Hmm, så vidt jeg kan se er det kun navnene på variablene som er i utf-8, > > og de kan jo vistnok være url-er, so det er meget praktisk. Det er ikke > > strengene selv, strenge der skal behandles, men variabelnavne (tror jeg > > nok). > > Næh, det er strengkonstanter. Hvis f.eks. du skriver > > string s = "Rødgrød med fløde"; > > bliver "Rødgrød med fløde" gemt som en strengkonstant et sted i den > oversatte bytekode, ligesom hvis man havde skrevet > > char *s = "Rødgrød med fløde"; > > i et C-program hvor du så ville kunne finde "Rødgrød med fløde" ved at > køre "strings" på den binære fil (lige pånær problemer med ø'erne > selvfølgelig). Jeg er rimeligt sikker på dette for vi implementerede > nemlig en oversætter der spyttede JVM-assembler ud for et par semestre > siden. > > Variabelnavne kan i øvrigt ikke være URL'er? De følger almindelig > gængs programkodesyntaks så vidt jeg da er orienteret. OK, jeg er ikke godt hjemme i Java, men strengkonstanter gemmes altså i utf-8. Hvordan så med behandling af strenge, hvor der indgår strengkonstanter? fx noget ala strcmp(str,"rødgrød") vil der være konvertering on the fly? Givet at strenge internt behandles i ucs-2, og konstanterne i utf-8? Hilsen keld
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |