[Java lista] ChangeListener elvi kerdes

Székely István iszekely at delfin.unideb.hu
2007. Aug. 27., H, 23:58:27 CEST


Hello,

Aztán még ez is:

"Not only does the JLS provide no guarantee that finalizers will get 
executed promptly, it
provides no guarantee that they'll get executed at all. It is entirely 
possible, even likely, that a
program terminates without executing finalizers on some objects that are 
no longer reachable."

Azt nem egészen értem, hogy milyen formról van szó, de nincs neki valami 
dispose(), destroy(), vagy hasonló metódusa? Ha bezárás után nem 
használod újra, akkor valami ilyesmit kéne hivni a close() helyett.

Stivi

biziclop wrote:
> Hibas az elgondolas, legalabbis szerintem.
>
> "The Java programming language does not specify how soon a finalizer
> will be invoked, except to say that it will happen before the storage
> for the object is reused. Also, the language does not specify which
> thread will invoke the finalizer for any given object. It is
> guaranteed, however, that the thread that invokes the finalizer will
> not be holding any user-visible synchronization locks when the
> finalizer is invoked. If an uncaught exception is thrown during the
> finalization, the exception is ignored and finalization of that object
> terminates."
>
> Ezek alapjan en semmit nem epitenek a finalise()-ra. Az maximum egy
> veszmegoldasnak jo a paranoiasok szamara. A listenereket pontosan
> akkor kell remove-olni, amikor mar nincs rajuk tobbet szukseg. Se
> elobb, se kesobb.
>
> lsp
>
> On 8/27/07, Zamek <zamek at vili.pmmf.hu> wrote:
>   
>> Hello,
>> Egy elvi kerdes:
>>
>> Egy form letrehoz egy changelistener-t egy osztalyra. Minden rendesen mukodik,
>> majd close-olom a form-ot. Ilyenkor elvileg nem szunik meg a form, csak
>> invisible lesz, majd a garbage collection torli, amikor torli. Ezert a form
>> megszunesekor nem artana a regisztralt changelistener-t remove-olni. Beraktam
>> a finalize metodusba:
>>
>> protected void finalize() throws Throwable {
>> try {
>> if (dryer != null)
>> dryer.removeUpdateListener(changeListener);
>> }
>> finally {
>> super.finalize();
>> }
>> }
>>
>> Tettem ra egy breakpoint-ot de soha nem all meg ra. Hibas az elgondolas, vagy
>> nem tud megallni a finalize-n?
>>
>> Parameterek: Debian Linux testing, Sun Java jdk 1.6, Eclipse 3.2
>>
>>
>> udv,
>> --
>> Zoltan Zidarics programmer
>> PTE University Pecs, Hungary
>> icq: 43288694
>>     



További információk a(z) Javalist levelezőlistáról