Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Modrá je dobrá
zelená je lepší

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub Programování [ŽP: neomezená] (kategorie Programování) moderuje tvx.
Archiv
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: fpopdga
[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 2.1.2009 01:27  976
huh [975]: jo takhle, tak to pak ano, tohle v Jave skutecne nejde. Pokud definujeme "plnou podporu metatrid" takto, tak pak ji Java nema :)
huh huh 2.1.2009 00:08  975
Tessien [971]:
ad) pozdni vazba
V jazycich s plnou podporou metatrid maji jejich objekty normalni metody, ktere lze normalne pretezovat. Zajimave je typicky neco typu createInstance().

Virtualni priklad: Singleton
class SingletonClass<T> extends Class {
  private T t = null;
  @Override public T createInstance() {
    if (t == null) t = new T;
    return t;
  }
}
@Metaclass(SingletonClass) class NejakaTrida { ... }
pak libovolne new NejakaTrida by vracelo porad stejnou instanci
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 1.1.2009 20:51  974
Gumysh [972]: kapitola 12.7 z Java Language Specification
Nicmene, jak jsem si to tam ted poradne precetl, tak jsem strasil trochu moc, protoze tam je (dost zasadni :) podminka, ze aby se instance class mohla tzv. unloadnout, tak jeji classloader musi byt uz odnikud nedosazitelny, tj. nemuze se stat, ze by na ni nekdo chtel znovu pristoupit, takze ten problem se statickymi atributy by nemel nastat. Takze jsem to asi slysel z nejakeho ne uplne presneho zdroje :)
operator304 1.1.2009 17:32  973
Hmmm, zajimava debata, diky kluci, par veci jsem fakt netusil.
gumysh 1.1.2009 16:57  972
Tessien: Hm, to je zajímavé – kde jsi na to přišel? Máš nějaký odkaz? Přiznám se, že se mi nepovedlo nic kloudného najít. Pokud je to pravda, tak je to celkem nehezký… zlá věc.
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 31.12.2008 18:05  971
huh [970]: a tim, ze za behu to je technicky resene tak, ze vsechny staticke atributy tridy jsou drzeny na instanci te tridy Class (coz mimochodem vede k takove pekne a ne uplne zname veci, ze ne vzdy nutne plati, ze kdyz nejak nastavim staticky atribut, tak pro zbytek behu JVM mi tak zustane nastaveny, protoze za nekterych (pravda, asi dost extremnich) okolnosti se i ty instance Class garbage collectuji.
Nevim, co presne myslis tim "Zadnou pozdni vazbu neudelas"?
A ano, "this.staticky_atribut" psat nelze, ale tak to je spis jen syntakticka zalezitost, ne? Navic teda zase technicky vzato, ta instance, ktera za tim stoji je instance tridy Class, ne te moji tridy, takze by to cele stejne moc nedavalo smysl.
huh huh 31.12.2008 14:10  970
Tessien [969]: No v Java zrovna plnohodnotnou podporu metatrid nema. Zadnou pozdni vazbu neudelas. Dokonce nelze ve statickych metodach psat ani this.staticky_clen_tridy. Takze jediny, cim se to podoba metode metatridy je to, ze vidis na soukrome staticke cleny tridy.
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 31.12.2008 12:00  969
huh [968]: no, ona staticka metoda je v principu taky metoda objektu, objektu tridy Class reprezentujici tu prislusnou tridu. Kazdopadne, to s tou nutnosti koukat do VMT je asi pravda, ale skoro bych si myslel, ze to bude hodne zanedbatelne ve srovnani s tou alokaci noveho objektu a tou metodou samotnou ;)
huh huh 31.12.2008 11:42  968
Muj amatersky pohled.
Tak "staticka metoda" je obycejna funkce, takze jeji volani je jenoduse f(), zatimco normalni metoda se bez behovych optimalizaci bude volat ve stylu (objekt->vmt)[4](); Pomijim jeden parametr (this) navic.
Ale samozrejme:
1) dnesni JIT runtimy tohle umi
2) muzes metodu oznacit jako final
(K tomu jeden clanek pise: "If the run-time environment knows that no classes are loaded that extend Y, then it can safely inline calls to methods of Y, regardless of whether Y is final (as long as it can invalidate such JIT-compiled code if a subclass of Y is later loaded). So the reality is that while final might be a useful hint to a dumb run-time optimizer that doesn't perform any global dependency analysis, its use doesn't actually enable very many compile-time optimizations, and is not needed by a smart JIT to perform run-time optimizations.")
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 31.12.2008 11:21  967
Operator: ve volani ty metody jako takovy imho zadnej, rozdil ale je v tom, jakou mas rezii na ziskani objektu, na kterym tu metodu zavolas, tam je na tom samozrejme lip staticka metoda.
operator304 31.12.2008 10:51  966
Mam jeden dotaz k Jave. Netusite nekdo, jak moc je vykonove rozdilne volani staticke metody a metody na objektu? Tuhle mi napadlo, jestli na ruzny servisy se vic hodi singleton nebo trida se statickejma metodama.
etdirloth EtDirloth 31.12.2008 07:38  965
Bredy [964]: hehe
bredy 30.12.2008 23:46  964
To je možný... alespoň mám pocit, že to někdo čte... příště tu záměrnou chybu zkusím přesunout o kapitolu níže :-D
etdirloth EtDirloth 30.12.2008 23:44  963
Bredy [962]: nerad bych bol za hnidopicha, ale nema byt nahodou "zarputilím" s ypsilonom?
bredy 30.12.2008 23:32  962
Další pokus o Garbage Collector v C++

[ 857 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt