... z hlediska navrhu by me spis zajimalo, co tam dela ta dedicnost??
Ad close() - namet na flame ;) : tady to neni az tak moc videt, ale k cemu je mi pak cely ten system s garbage collectorem, kdyz se o lifetime objektu (coz v tomto pripade defakto close je) musim starat sam? To sme pak nekde zpatky pred 20ti lety na strukturovanem programovani :-/
close() není o lifetime objektu. Vy close() dokonce ani nemusíte volat, pokud zavoláte flush() a o data nepřijdete. To nemá s garbage collectorem nic společného. Jak by měl garbage collector vědět, které popisovače souborů ještě potřebujete a které už ne?
V případě soketů se při ukončení JVM ten socket zavře, ale obecně je to pěkně fuj. Vezměte si například spojení na databázi, kde je to "obdobné", jenže než se GC dostanek tomu, aby ty objekty zlikvidoval, tak vám ty spojení dojdou. Nehledě na to, že se ve větších aplikacích používá ConnectionPooling, takže reference na Connection stále je, ale vy ji neuzavřete, takže si tam prostě visí dokud nedojdou spojení.
Aha, takze kdyz chci udelat jednoduche IP spojeni, pak musim pouzit connection pool, protoze jiny pristup v Jave je riskantni. Neni to nahodou "trochu" narocne na systemove prostredky?
Jiste, Java neni na kdejakou utilitku, je to "nastroj" pro velke masiny, kde je (casto) vykonu na rozdaj. Trebaaaaa - hm, treba mobil! :-D
PS: V Jave ani Basicu nekoduju, protoze jsem si zvykl delat design v jistem smyslu objektovy. Neberte to jako osobni utok, jen se strasne bavim na ucet <no flame please> tech cvoku co Javu vymysleli a tech, co si mysli, ze je to v poradku. </no flame please>