Samozrejme ze to neni ukazatelova aritmetika. Z pohledu jazyka je to
aritmetika celociselna.
A index v poli IMHO neni ukazatel.

Semanticky totez by se dalo jednoduse naprogramovat nad polem, vzdyt
ArrayList je de facto totez.

A jeste jedna perlicka na zaver: predstavte si JVM naimplementovane nad
turingovym strojem a nebo, coz bude jasnejsi, pomoci
konecneho automatu. Nebo cehokoli jineho, co neni naimplementovano dle von
Neumanna. A udelat to samozrejme lze. Proto je take Unsafe v sun.misc .

Dne 4. března 2011 19:01 "Zdeněk Troníček" <[email protected]> napsal(a):

> Nerad bych tady vyvolal nějakou flame war, ale ukazatelová aritmetika to
> podle mého názoru je. Např. v metodě writeToMem je p ukazatel (obsahuje
> adresu) a k tomuto ukazateli se přičítá 2, tj. sečte se ukazatel a int a
> výsledkem je ukazatel:
>
>    static void writeToMem(Unsafe u, long p, byte[] values) {
>        for (byte b : values) {
>            u.putChar(p, (char) b);
>            p += 2;
>        }
>    }
>
> Jinak celý článek byl napsán spíš jako vtip, než že by chtěl popisovat
> nějakou neznámou vlastnost Javy.
>
> Z.
> --
> Zdenek Tronicek
> FIT CTU in Prague
>
>
> Martin Kuba napsal(a):
> > Dne 4.3.2011 13:56, [email protected] napsal(a):
> >> Jen bych doplnil, takovou libustku, ktera ukazuje, ze i Java ma
> >> ukazatelovou aritmetiku.
> >>
> >> http://www.java.cz/article/ukazatelovaaritmetika
> >>
> >> Ale je to opravdu jen takova zajimavost.
> >
> > To není ukazatelová aritmetika. To jenom ukazuje,
> > že pomocí nativních metod se dá přistupovat k paměti přímo,
> > ale to je tím, že ty nativní metody jsou napsané v Céčku.
> >
> > Definice té metody Unsafe.putChar() totiž vypadá takto:
> >
> > public native void putChar(long address, char x);
> >
> >
> > Stejně tak můžu pomocí nativní metody přistupovat
> > k nějaké speciální vlastnosti nějakého operačního systému, třeba
> > sdílené paměti mezi procesy nebo k nastavování práv na unixovém
> > filesystému, ale tím se to nestává součástí Javy jakožto jazyka.
> >
> > Makub
> > --
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > Supercomputing Center Brno             Martin Kuba
> > Institute of Computer Science    email: [email protected]
> > Masaryk University             http://www.ics.muni.cz/~makub/
> > Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
> > --------------------------------------------------------------
> >
> >
>
>


-- 
Oto 'tapik' Buchta, [email protected], http://tapikuv.blogspot.com

Odpovedet emailem