Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pozivanje staticne metode

[es] :: Java :: pozivanje staticne metode

[ Pregleda: 2478 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon pozivanje staticne metode11.03.2009. u 15:06 - pre 183 meseci
Da li mi neko moze razjasniti jednu stvar?
Naime, primjetio sam da je cesta praksa da se se koriste neke pomocne klase sa staticnim metodama za neke uobicajene i ceste radnje tipa formatiranje datuma i slicno npr. MyUtility.formatirajDatum(Date d) itd.

E sada, mene interesuje koliko je to "sigurno" kad toj metodi pristupa vise niti odjenom, ili na primjer ako toj metodi pristupa vise servleta?
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl-a-1.sezampro.yu.



+13 Profil

icon Re: pozivanje staticne metode11.03.2009. u 15:51 - pre 183 meseci
Pa sve zavisi od toga sta te metode rade ;)

Util klase su obicno stateless, odnosno metode ne pristupaju deljenim podacima, pa je thread safe.

Ukoliko se ipak desi da metoda pristupa nekom deljenom resursu, onda samo moras da sinhronizujes kritican blok ili celu metodu..
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9506
212.200.68.*



+10254 Profil

icon Re: pozivanje staticne metode12.03.2009. u 09:18 - pre 183 meseci
Da se nadovežem na Vanju: ako već radiš sa ovakvim funkcijama, sve šta treba toj funkciji za njen rad - predaš kao parametar u pozivu.
Primer koji si naveo je tipičan, funkcija ne koristi nikakve resurse, i ne radi ni sa kakvim promenljivima unutar klase u kojoj je definisana.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: pozivanje staticne metode12.03.2009. u 09:23 - pre 183 meseci
Da li je ovako nesto sigurno, da li treba ova metoda da se sinhronizuje?

Code:


package util;

import java.text.SimpleDateFormat;
import java.util.Date;


public class MojUtil {
    
    public static String formatirajDatum(Date d, String pattern){
        
            SimpleDateFormat df = new SimpleDateFormat(pattern);
            String s = df.format(d);        
        
        return s;        
    }

    
}



Po meni, ovde ukoliko dvije niti pristupe ovoj metodi u isto vrijeme moze se desiti da jedna nit postavi s i prije nego pozove return da druga nit postavi drugi s, da li sam upravu?

 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9506
212.200.68.*



+10254 Profil

icon Re: pozivanje staticne metode12.03.2009. u 09:28 - pre 183 meseci
Da se nadovežem na Vanju: ako već radiš sa ovakvim funkcijama, sve šta treba toj funkciji za njen rad - predaš kao parametar u pozivu.
Primer koji si naveo je tipičan, funkcija ne koristi nikakve resurse, i ne radi ni sa kakvim promenljivima unutar klase u kojoj je definisana.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9506
212.200.68.*



+10254 Profil

icon Re: pozivanje staticne metode12.03.2009. u 09:33 - pre 183 meseci
Citat:
bantu: Po meni, ovde ukoliko dvije niti pristupe ovoj metodi u isto vrijeme moze se desiti da jedna nit postavi s i prije nego pozove return da druga nit postavi drugi s, da li sam upravu?

Ne nisi u pravu. U momentu poziva, virtuelna mašina kreira instancu funkcije i izvršava je. Sledeći poziv dobija novu instancu funkcije. Ono šta je problematika u konkurentnom programiranju je promena vrednosti promenljivih (objekata) koji su definisani van tela funkcije. Tu je bitna sinhronizacija.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: pozivanje staticne metode12.03.2009. u 10:11 - pre 183 meseci

Ok, mislim da sam skužio. Hvala na pojašnjenju.

Dakle, VM pravi samo instancu metode a ne čitave klase, ili se možda varam? Stavio sam u konstruktor neku komandu koja se zaista nije izvršila, znači li to da se nikad nije ni kreirala instanca te klase već samo statičke metode?
 
Odgovor na temu

Java Beograd
Novi Beograd

Član broj: 11890
Poruke: 9506
212.200.68.*



+10254 Profil

icon Re: pozivanje staticne metode12.03.2009. u 10:14 - pre 183 meseci
Vidi, instancu klase praviš ti, u kodu. Instanca funkcije je nešto drugo. Ona se "ne vidi" njom ne barataš, to je interno u okviru VM.
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: pozivanje staticne metode12.03.2009. u 10:27 - pre 183 meseci

Ok. Sad su mi neke stvari jasnije. Uvjek sam se bojao koristiti ovaj model zbog neznanja.
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl-a-1.sezampro.yu.



+13 Profil

icon Re: pozivanje staticne metode12.03.2009. u 11:11 - pre 183 meseci
http://en.wikipedia.org/wiki/Call_stack
 
Odgovor na temu

[es] :: Java :: pozivanje staticne metode

[ Pregleda: 2478 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.