|
|||||||||||||||||||||||||||
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. -- Ole Laursen http://www.cs.aau.dk/~olau/
|
||||||||||||||
|
||||||||||||||