Forum Sveta kompjutera  

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 20.12.2012, 22:57   #1
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom How to... Java

Sad sam primetio da pored VB, C# i C++ nema How to... Java.

Elem, nije how to pitanje već više jedna observacija.

U sledećem Wikipedia članku http://en.wikipedia.org/wiki/Escape_analysis stoji sledeći primer iz Jave:
Kod:
class A {
	final int finalValue;

	public A( B b ) {
		super();
		b.doSomething( this ); // this escapes!
		finalValue = 23;
	}
 
	int getTheValue() {
		return finalValue;
	}
}

class B {
	void doSomething( A a ) {
		System.out.println( a.getTheValue() );
	}
}
Probao sam i ovo jeste validan Java kod. Odnosno dozvoljeno je da se unutar konstruktora this referenca da kao argument nekoj metodi, ali onda objekat nije konstruisan do kraja, pa samim tim nije validan objekat klase A. I kao što sam i mislio kada se konstruiše A objekat na konzoli se odštampa 0.

Tako da u suštini ovo postavljam kao podsetnik da nije bezbedno pisati ovakav kod, iako Java kompjaler ne daje nikakva upozorenja.

p.s. Ovo takođe nije validan primer escepa-a pointera, jer referenca prosleđena metodi doSomething(A a) neće preživeti po završetku poziva te metode. This će svakako da escape-uje iz konstruktora, samo ne kroz taj poziv. Baš me čudi od Wikipedie. (naravno napisaću bolji primer i izmeniti članak)
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 20.12.2012, 23:28   #2
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: How to... Java

Zar poenta primera nije da pokaže kako može da se "zezne" kompajler?
Da pokaže kako final može da ispiše dve vrednosti?
Teva je offline   Odgovor sa citatom ove poruke
Stara 20.12.2012, 23:53   #3
ivan90BG
Veteran
 
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
Određen forumom Re: How to... Java

To i nije tema članka. Primer bi trebalo sa pokaže da this referenca beži iz scope-a konstruktora, članak je primarno o kompajlerskim optimizacijama, odnosno o tome da kompjaler može da alocira objekat na stacku ako otkrije da nijedna referenca ka objekti kreiranog u nekoj metodi neće preživeti duže od života stack frame-a te metode. U onom primeru to jeste slučaj, ali je primer dat kao da pokaže da this "beži" kroz poziv doSomething, a kao prvo this objekat nije ni kreiran u konstruktoru, nego pre poziva konstruktora nad novim objektom, tako da se ovde i ne može pričati o bežanju jer this samo "prolazi" kroz konstruktor, pa kompjaler nema zašto da radi escape analizu.

A ovo sa konstantom i 23 je nevezano, ali opet takav kod ne bi trebalo da bude na Wikipediji u članku kome to nije tema.
ivan90BG je offline   Odgovor sa citatom ove poruke
Stara 15.1.2013, 22:45   #4
problemNo1
Član
 
Član od: 16.10.2009.
Poruke: 32
Zahvalnice: 12
Zahvaljeno 3 puta na 3 poruka
Određen forumom Java Mail/Groovy Mail

Razvijam aplikaciju u Cloudify . To je sistem za praćenje raznih čudesa (resursa, niti itd), s tim što trebam nešto izmeniti a nešto dodati. Na nekom sam probnom radu za kanadsku firmu. Jedan od zadataka mi je da omogućim slanje alerta na email. Pošto nisam imao iskustva sa programiranjem groovy skripta, a Cloudify to koristi, treba mi pomoć nekoga ko je radio sa groovy fajlovima. Koristio sam neka rešenja sa neta (jedno od njih je recimo ovo: http://yves.vindevogel.net/projects/..._Groovy_script) ali dolazi do greške, da ne može učita klase MimeMessage i InternetAddress (dslEntity: 157: unable to resolve class MimeMessage) iako sam gore učitao pakete i stavio mail.jar u moj_jdk/lib folder. Gde grešim? Kako biste vi rešili ovaj problem sa emailom? Naišao sam takodje na primer slanja email pomoću AntBuildera ali ni to nije radilo (nije bilo greške ali mail nije poslat). Nisam siguran kako bi koristio čist java kod u groovy fajlovima pa bi molio za objašnjenje. (u tom slučaju bi verovatno koristio Java Mail API). U svakom slučaju meni je bitno da radi a kako bi to ostvario nije bitno. Da li mi za smtp treba svoj server ili mogu da koristim i Googlov kao u datom primeru? Takodje, može li neko "srpsko" objašnjenje šta je to Ant , šta Maven a šta String (ne String kao tip podataka u programiranju) i zašto Groovy a ne Java.

Verujem da se malo ljudi srelo sa pomenutom terminologijom jer koliko znam nije dosta popularna kod nas (možda grešim) i pretpostavljam da će tema imati mali odziv ali svaka informacija bi mi bila DOBRODOŠLA i bio bih stvarno ZAHVALAN na pomoći.

Pozdrav,
Aleksandar
problemNo1 je offline   Odgovor sa citatom ove poruke
Stara 21.1.2013, 22:14   #5
BlueJ
Član
 
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
Određen forumom Java pomoc

Pocetnik sam u java programiranju. Radim jedan zadacic ali nikako da rijesim problem pa cu postavit slik da vidite sta se desava. Ovo mi je radilo ranije samo sto sad prvi put koristim kalendar pa mozda on pravi neki problem. Kaze da je do konstruktora ali evo slika:
Evo sta mi javlja u TEST klasi: http://s13.postimage.org/tptx4c8yt/test.jpg

Klasa koju testiram u testu: http://s7.postimage.org/3pmdcqbpl/love_Book.jpg

Inace treba da napravim 2 knjige koje ce da extenduju atribute klase Book, u te 2 knjige par metoda, read,save, nesto sa StringBufferom, exception kad nema podataka da ispise, nasledjivanje interfejsa itd... Naravno kao sto vidite knjiga treba da ima Autore, komentara itd...
BlueJ je offline   Odgovor sa citatom ove poruke
Stara 21.1.2013, 22:51   #6
BlueJ
Član
 
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: Java pomoc

Rijesih. nije mi jasno zasto nije htjelo na onaj prvi nacin kad sam u konstruktor pozivao. Ako neko zna neka napise puno bi mi pomogao
Kod:
 LoveBook lb1 = new LoveBook();
		Author[] alb1 = { au  };
		lb1.authors = alb1;
		lb1.name = "Ljubavna knjiga 1";
		lb1.publishedDate = c;
		lb1.publisher = "Oktoih";
		Comment[] com = { co};
		lb1.comments = com;
		String gl[] = { "Lik 1", "Lik 2", "Lik 3" };
		String citati[] = { "Citat 1", "Citat 2" };
		lb1.characters = gl;
		lb1.quote = citati;
		lb1.description();
		System.out.println("Save LB1");
		try {
			lb1.save("ljubavna_knjiga.txt");
		} catch (NoData e) {
			e.printStackTrace();
		}
BlueJ je offline   Odgovor sa citatom ove poruke
Stara 21.1.2013, 22:56   #7
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: Java pomoc

Ovako, mislim da je problem sto ti kada predajes autora, predajes jedan objekat, dok konstruktor zahtjeva niz objekata klase Autor. Mislim da ti je to glavni problem, i fino ti pise u erroru sta je problem
clzola je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku clzola na korisnoj poruci:
BlueJ (21.1.2013)
Stara 21.1.2013, 23:08   #8
BlueJ
Član
 
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: Java pomoc

To je bilo prvo sto sam probao ali pogledaj na prvoj slici da sam dolje zakomentarisao niz objekata klase author i comments. Probao sam i sa nizom obj ali opet je isto izbacalo.
Sad cu jos nesto da isprobam pa javljam jesam li rijesio. Hvala puno.
BlueJ je offline   Odgovor sa citatom ove poruke
Stara 21.1.2013, 23:34   #9
BlueJ
Član
 
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: Java pomoc

Problem je bio sto nijesam pravilno upisao niz objekata autora u konstruktor umjesto auth kako sam ga nazvao pisao sam aut
Sad ga kompajlira i ispisuje ali save metoda ne radi. Radila je na ovaj prethodni nacin. Sad samo sacuva fajl ali ne i podatke. Ocigledno je da ne moze da procita ni jedan fajl jer mi i izbaca exception koji sam napravio kad je bilo koji podatak = null da izbaci FileNotFound exception "Fali podatak!". Takodje bez exceptiona cuva podatke...
Kod:
  String [] ch = {"char 1", "char 2", "char 3"};
        String [] qu = {"quote1", "quote2", "quote3"};
        String [] awards = {"awards1", "awards2", "awards3"};
        
        Calendar c = Calendar.getInstance();
		c.set(1990, 12, 12);
        Author au = new Author("Marko ", "Markovic", c, awards, true, "Voli da kuva i sijece drva", false);
        Author [] aut = {au};
       
        
        Calendar c1 = Calendar.getInstance();
		c1.set(1992, 10, 02);
        Comment co = new Comment("Coomments  1", "hidden user", c1);
        Comment [] comm = {co};
        
        LoveBook lb1 = new LoveBook(ch,qu,"NAME",c1, "PUBLISHER", aut,comm);
        lb1.description();
        System.out.println("Save LB1");
		try {
		lb1.save("ljubavna_knjasdasdasdasdiga.txt");
		} catch (NoData e) {
		e.printStackTrace();
		}

Poslednja ispravka: BlueJ (22.1.2013 u 0:07)
BlueJ je offline   Odgovor sa citatom ove poruke
Stara 11.4.2013, 2:05   #10
krahi
Član
 
Član od: 16.5.2007.
Poruke: 48
Zahvalnice: 17
Zahvaljeno 8 puta na 6 poruka
Određen forumom Pocetnicko java pitanje

Resio sam da malo prostudiram Android programiranje a pre toga malo Javu da istrazim.Skino sam Eclipse i krenuo da isprobavam neke trivijalne stvari.Imam solidno znanjem c# i jos par jezika pa sam pomislio citajuci po netu da ce Java biti dosta slicna.No,neki koncepti u Javi toalno su mi strani,pa reko da iskoritim priliku i priupitam ljude dobre volje...

Ovako glasi moj kod u C#
Kod:
 File.WriteAllText("d:\\krahi.txt", "text");
Ovo bi trebalo da je Java ekvivalent,koji nazalost ne funkcionise....
Kod:
public class MojaKlasa {

	public static void main(String[] args){
		FileWriter writer = new FileWriter("D:\\krahi1.txt");
		writer.write("krahi");
		writer.close();
		}
	}
Eclipse nudi dve moguce ispravke

Kod:
public class MojaKlasa {

	public static void main(String[] args) throws IOException {
		FileWriter writer = new FileWriter("D:\\krahi1.txt");
		writer.write("krahi");
		writer.close();
		}
	}
Posle dodavanja exceptiona u nastavku metoda,gore pomenuti kod radi.Medjutim taj koncept mi je nepoznat.Ako neko moze da objasni cemu sluzi.Jel mu to dodje isto kao try catch blok i u cemu je razlika?

Drugo resenje,na moje zaprepascenje je ovaj kod
Kod:
	public static void main(String[] args) {
		FileWriter writer = null;
		try {
			writer = new FileWriter("D:\\krahi1.txt");
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
			try {
				writer.write("krahi");
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				writer.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
Ovo resenje sa milion try catch blokova,i ako je solidno ruzno i necitljivo,jos i ima nekog smisla(Ok znam da se moze napisati i sa jednim try catch blokom no ovo je eclipse sam generiso lol).Jel to znaci da svaki resurs koji koristim i koji potencijalno moze baciti exception,mora biti u try catch bloku,da bi uopste mogao kompajlirati kod?

Poslednja ispravka: krahi (11.4.2013 u 2:33)
krahi je offline   Odgovor sa citatom ove poruke
Stara 11.4.2013, 2:25   #11
water wizard
Deo inventara foruma
 
Član od: 29.1.2008.
Poruke: 17.319
Zahvalnice: 374
Zahvaljeno 3.147 puta na 2.942 poruka
Određen forumom Re: Pocetnicko java pitanje

možda ima u opcijama da se isključi
water wizard je offline   Odgovor sa citatom ove poruke
Stara 11.4.2013, 2:48   #12
Lucic Nemanja
Starosedelac
 
Član od: 2.12.2005.
Lokacija: Beograd
Poruke: 1.241
Zahvalnice: 65
Zahvaljeno 76 puta na 49 poruka
Slanje poruke preko Skypea korisniku Lucic Nemanja
Određen forumom Re: Pocetnicko java pitanje

U javi sve izuzetke koje metoda može potencijalno baciti moraš navesti throws klauzulom u potpisu metode, ili staviti sve u try/catch blok.
U ovom slučaju FileWriter može baciti IOException, i to jednostavno moraš navesti u potpisu metode ako nećeš da pišeš try/catch. Naravno kako ovde govorimo o main metodi, podrazumeva se da ćeš pisati try/catch blokove. Međutim kad budeš pisao neke druge klase i njihove metode, gde je praksa da se izuzeci samo bacaju, a korisniku klasa se otavlja da ih obrađuje, moraš eksplicitno reći koje izuzetke metoda može da baca. To je tako u javi i tome se moraš povinovati .
Da dodam još, prilikom implementiranja interfejsa ili nasleđivanja apstraktnih klasa pri redefinisanju njihovih metoda dozvoljeno ti je da suziš skup izuzetaka koje metoda baca od onog deklarisanog u interfejsu/apstraktnoj klasi, ali nikako da proširiš. Tako da ako skapiraš usput pri redefinisanju metode da će ti bacati neki izuzetak i dodaš ga u throws klauzulu te metode, moraš dodati i u onoj koju redefinišeš iz interfejsa/apstraktne klase.
Lucic Nemanja je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Lucic Nemanja na korisnoj poruci:
krahi (11.4.2013)
Stara 11.4.2013, 13:23   #13
Ivan452
Veteran
 
Član od: 25.7.2008.
Lokacija: Beograd
Poruke: 772
Zahvalnice: 33
Zahvaljeno 189 puta na 152 poruka
Slanje poruke preko MSN-a korisniku Ivan452
Određen forumom Re: Pocetnicko java pitanje

Tek kada si okarakterisao taj deo koda kao nepregledan ukapirao sam koliko sam oguglao na try/catch blokove.
Navicices se vremenom, i nemoj da izbegavas hvatanje exceptiona, pre ili kasnije ce ti se obiti u glavu.
Posebno ako planiras rad sa Androidom, gde ce ti neka veza za internetom biti skoro obavezna, i moraces da hvatas i obradjujes exceptione.
A i bilo koje pisanje kvalitetnog koda ce zahtevati rad sa njima.

Srecno
Ivan452 je offline   Odgovor sa citatom ove poruke
Stara 13.5.2013, 20:39   #14
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Java, Generics and Interface

Imam zadatak da napisem genericku klasu koja implementira AVL stablo. Podaci koji se cuvaju u stablu moraju implementirati interface Comparable.

Nije mi problem oko AVL stabla nego oko ovoga sto mora biti genericka klasa + da onaj INFO u cvoru implementira interface. Medjutim meni prijavljuje gresku ako ja probam da stavim ovako:

Kod:
public class Node<T implements Comparable> {
    T info;
    Node left, right;
    int balance;
}
Ali ovo prolazi lagano
Kod:
public class Node<T extends Comparable<T>> {
    T info;
    Node left, right;
    int balance;
}
Medjutim trazi se da bude Interface a ne da bude nasledjivanje...

Naravno i u drvetu stavljam
Kod:
public class AVL<T extends Comparable<T>> {
    Node<T> root;
    ....
}
Prosto ne znam kako da nadjem resenje da je klasa genericka a da elementi koji se cuvaju implemetiraju interface (a ne nasledjuju) Comparable.
clzola je offline   Odgovor sa citatom ove poruke
Stara 14.5.2013, 0:49   #15
Patrick
Član
 
Član od: 12.6.2006.
Poruke: 114
Zahvalnice: 19
Zahvaljeno 6 puta na 6 poruka
Određen forumom Re: Java, Generics and Interface

Mislim da ti treba u prvom kodu extends umesto implements. Na tom mestu jedino moze da stoji extends. Ako stavis "T extends Comparable" to ce da znaci da T koje tu dodje treba da implementira interfejs Comparable. Java zna da je Comparable interfejs i automatski posle proverava da li ta klasa koju kasnije navedes izmedju <i> implementira Comparable.
Seti se da i kad jedan interfejs prosiruje drugi interferjs koristi se rec extends a ne implements, pa je ovde valjda slican fazon.

Mozes o tome da procitas recimo ovde.
Patrick je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Patrick na korisnoj poruci:
clzola (14.5.2013)
Stara 5.6.2013, 13:12   #16
BlueJ
Član
 
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
Određen forumom Niz slika java

Pozdrav,

Treba mi pomoc. Treba da napravim niz slika koje ce na radnom da se vrte.
Kod:
public void run(){
		while(true){
			Random r = new Random();
			int key = r.nextInt(20);
		        slika.setIcon(new ImageIcon("img\\" +  key +".jpg"));
		}}
Ovako sam uspio da stavim da se vrte slike ali samo kad su nazivi slike sa nazvani sa brojevima od 1 do 20. Treba mi pomoc, naprimer ako se slike zovu: slika1.jpg, slika2.jpg...
Kako mi je najlakse da procitam sve slike iz foldera img? Lista, niz?
BlueJ je offline   Odgovor sa citatom ove poruke
Stara 5.6.2013, 13:28   #17
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 3.522
Zahvalnice: 545
Zahvaljeno 930 puta na 495 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: Niz slika java

Pretrazi folder, sacuvaj sva imena slika u listu stringova i odatle vrti random.
Andross je offline   Odgovor sa citatom ove poruke
Stara 8.6.2013, 18:51   #18
NIx Car
Deo inventara foruma
 
Član od: 28.12.2006.
Lokacija: New Now
Poruke: 3.562
Zahvalnice: 1.669
Zahvaljeno 907 puta na 509 poruka
Slanje poruke preko MSN-a korisniku NIx Car Slanje poruke preko Skypea korisniku NIx Car
Određen forumom Re: Niz slika java

Nisam java programer, ali zar ne bi mogao ovako to da uradis:
Kod:
 slika.setIcon(new ImageIcon("img\\slika" +  key +".jpg"));
?
NIx Car je offline   Odgovor sa citatom ove poruke
Stara 8.6.2013, 22:00   #19
Ivan452
Veteran
 
Član od: 25.7.2008.
Lokacija: Beograd
Poruke: 772
Zahvalnice: 33
Zahvaljeno 189 puta na 152 poruka
Slanje poruke preko MSN-a korisniku Ivan452
Određen forumom Re: Niz slika java

za ovo kao sto ti je Andross rekao.

A za ubuduce stavi Random r = new Random(); van petlje. Brze ce raditi.
Ivan452 je offline   Odgovor sa citatom ove poruke
Stara 12.6.2013, 14:42   #20
PeTkO
Starosedelac
 
Član od: 6.11.2005.
Lokacija: Iza tebe
Poruke: 2.242
Zahvalnice: 419
Zahvaljeno 298 puta na 192 poruka
Slanje poruke preko Skypea korisniku PeTkO
Određen forumom Java - malo objasnjenje

Pozdrav

Poceo sam da ucim Javu, ne zato sto sam zeleo to, vec zbog faxa, ali opet, nikad nije na odmet nauciti jos neki jezik.

Imam jednu nedoumicu, tj. potrebno mi je malo objasnjenje...

Na primer, imam klasu sa imenom Klasa1. U drugoj klasi sa imenom Klasa2, imam inicijalizaciju promenljivih npr:
private Klasa1 ime;

Sta to zapravo znaci i sta to radi?

Drugo pitanje...
U Klasi2 imam definiciju neke metode...npr:
public void imeMetode(Klasa1 ime)

Nije mi jasno sta je ovo sto je u zagradi? Da li je tip parametra "ime" zapravo klasa? I ako jeste koji je to onda tip? Sta to radi

I trece pitanje...Kada u odredjenoj klasi imam metodu:
public String toString()
{
return "Neki tekst"
}
da li se ta metoda uvek sama poziva kada se pozove klasa ili ne?

Unapred hvala
PeTkO je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Tagovi
java

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Java - out of Memory Vajsmilan Aplikativni softver 6 6.2.2012 20:54
Android - pozivanje Java metoda iz native koda voodoo_ Programiranje 5 14.10.2011 8:59
Samsung D600 Java upload (USB cable) Aleksandar Programi za mobilne telefone 0 16.6.2008 13:54
Jel' se ovo misli na Java Script ili? Tim85 Internet tehnologije 2 7.12.2006 12:33
G-thing program za LG(imam U8180) za java igre trazim gde ima? besplatno?trial? Ilic Marko Programi za mobilne telefone 1 9.2.2006 14:09


Sva vremena su po Griniču +2 h. Sada je 8:30.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2019, vBulletin Solutions, Inc.
Hosted by Beograd.com