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
> --------------------------------------------------------------
>
>

Odpovedet emailem