Je a neni to pointerova aritmetika. Pravda je asi obou stranach (i jak psal Makub). Jde o to jak se na to clovek diva.
Pokud napisu WebService proxy co ma stejny interface jako Unsafe a proxy na vzdalenem serveru bude v C provadet stejne operace v pameti (jako Unsafe). Tak to sice bude pointerova aritmetika, ale jen z pohledu serveru. Z pohledu klienta nic zvlastniho nedelam. Pres JNI jde delat cokoliv. Doufam ze tohle nejde spustit treba z Appletu, jinak je to asi pekny security hole. Petr ______________________________________________________________ > Od: "Zdeněk Troníček" <troni...@fit.cvut.cz> > Komu: "Java" <konference@java.cz> > Datum: 04.03.2011 19:02 > Předmět: Re: Porovnání řetězců > >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, michal.niko...@elanor.cz 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: ma...@ics.muni.cz >> Masaryk University http://www.ics.muni.cz/~makub/ >> Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 >> -------------------------------------------------------------- >> >> > >