Koji memoriski prostor koriste static promenljive neke Java klase?
Naime, želim da moj program (serverska aplikacija) ograničim na samo jednu instancu, pa bi za to koristio static boolean isStarted. Pitanje je dali će memorija dodeljena za ovu promenljivu biti ista za bilo koji user - Linux OS.
Koji memoriski prostor koriste static promenljive neke Java klase?
Nije mi najjasnije šta znači ovo što si pitao. Ali nešto mogu da kažem:
Citat:
Naime, želim da moj program (serverska aplikacija) ograničim na samo jednu instancu, pa bi za to koristio static boolean
Ne tako.
Treba da koristiš tzv. Singleton design pattern, koji ne dozvoljava pravljenje više od jedne jedine instance klase (ali u okviru istog programa, tako da ti ovo možda ne vrši posao).
>
Ukoliko mislis da imas standalone aplikaciju i da nedozvolis da se
startuje vise od jedanput onda moras koristiti neki external lock.
Najbolje je da koristis filelock i da u prvoj instanci programa
zakljucas neki fajl, a ukoliko lock ne uspe onda to znaci da je neka
druga instanca tvog programa vec pokrenuta. I ovo je najbolje sto mozes
da postignes u Javi a da bude portabilno.
Everything should be made as simple as possible, but not simpler. - AA
Ako ti je mrezni standalone program (kako ti kazes) ne moras da se zezas sa file sistemom ako mozes uvek da koristis jedan isti mrezni port. Ne mogu dva socket-a preko istog porta i problem je resen.
Aplikacija je server - akvizicija podataka (od nekoliko drugih servera), obrada i insert u DB, pa zato je potrebno ograničavanje na samo jednu instancu.
Tebi treba singleton klasa. To moze da se resi na vise nacina ali evo ga najprostiji. Sakrij konstruktor. Imas jednu static promenljivu npr. numberOfInstances(inicijalno = 0) i imas jednu static metodu recimo koja izgleda
TipClase Create()
koja ce pozivati konstruktor i vracati kreirani objekat samo ukoliko je numberOfInstances = 0; u suprotnom vraca null
tako ce korisnik moci da poziva koliko puta hoce Create ali ce samo jedna instanca biti kreirana
His majesty Grand Duke of Shumadija and Western Pomoravlje