![]() |
![]() |
|
Programiranje Programski jezici, tehnike, alatke... |
![]() |
|
Alatke vezane za temu
![]() |
Vrste prikaza
![]() |
![]() |
#1 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
![]()
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() ); } } 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) |
![]() |
![]() |
![]() |
#2 |
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
|
![]()
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? |
![]() |
![]() |
![]() |
#3 |
Veteran
Član od: 3.5.2008.
Lokacija: Beograd
Poruke: 760
Zahvalnice: 81
Zahvaljeno 213 puta na 144 poruka
|
![]()
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. |
![]() |
![]() |
![]() |
#4 |
Član
Član od: 16.10.2009.
Poruke: 32
Zahvalnice: 12
Zahvaljeno 3 puta na 3 poruka
|
![]()
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 |
![]() |
![]() |
![]() |
#5 |
Član
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
|
![]()
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... |
![]() |
![]() |
![]() |
#6 |
Član
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
|
![]()
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(); } |
![]() |
![]() |
![]() |
#7 |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
![]()
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
![]() |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku clzola na korisnoj poruci: | ||
BlueJ (21.1.2013) |
![]() |
#8 |
Član
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
|
![]()
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. |
![]() |
![]() |
![]() |
#9 |
Član
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
|
![]()
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) |
![]() |
![]() |
![]() |
#10 |
Član
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
|
![]()
Rijesen i problem sa cuvajem podataka. Problem je bio sto sam stavio u exception da ukoliko nema podataka kalendara da javi FileNotFoundException.
Kad maknem kalendar iz exceptiona onda cuva ostale podatke. Nije mi jasno zasto kalendar sacuva kad maknem potpuno exception a kad stavim exception i kalendar u njega onda ga ne cita? Kroz exception ga ne prijavljuje a bez exceptiona je tu ![]() |
![]() |
![]() |
![]() |
#11 |
Član
Član od: 16.5.2007.
Poruke: 48
Zahvalnice: 17
Zahvaljeno 8 puta na 6 poruka
|
![]()
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"); Kod:
public class MojaKlasa { public static void main(String[] args){ FileWriter writer = new FileWriter("D:\\krahi1.txt"); writer.write("krahi"); writer.close(); } } Kod:
public class MojaKlasa { public static void main(String[] args) throws IOException { FileWriter writer = new FileWriter("D:\\krahi1.txt"); writer.write("krahi"); writer.close(); } } 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(); } } Poslednja ispravka: krahi (11.4.2013 u 2:33) |
![]() |
![]() |
![]() |
#12 |
Deo inventara foruma
Član od: 29.1.2008.
Poruke: 20.706
Zahvalnice: 439
Zahvaljeno 4.092 puta na 3.804 poruka
|
![]()
možda ima u opcijama da se isključi
![]() |
![]() |
![]() |
![]() |
#13 |
Starosedelac
|
![]()
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. |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Lucic Nemanja na korisnoj poruci: | ||
krahi (11.4.2013) |
![]() |
#14 |
Veteran
|
![]()
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 ![]() |
![]() |
![]() |
![]() |
#15 |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
![]()
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; } Kod:
public class Node<T extends Comparable<T>> { T info; Node left, right; int balance; } Naravno i u drvetu stavljam Kod:
public class AVL<T extends Comparable<T>> { Node<T> root; .... } |
![]() |
![]() |
![]() |
#16 |
Član
Član od: 12.6.2006.
Poruke: 112
Zahvalnice: 19
Zahvaljeno 6 puta na 6 poruka
|
![]()
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. |
![]() |
![]() |
Sledeći korisnik se zahvaljuje korisniku Patrick na korisnoj poruci: | ||
clzola (14.5.2013) |
![]() |
#17 |
Član
Član od: 20.1.2013.
Poruke: 194
Zahvalnice: 54
Zahvaljeno jedanput na jednoj poruci
|
![]()
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")); }} Kako mi je najlakse da procitam sve slike iz foldera img? Lista, niz? |
![]() |
![]() |
![]() |
#18 |
Kekule Mekule
|
![]()
Pretrazi folder, sacuvaj sva imena slika u listu stringova i odatle vrti random.
|
![]() |
![]() |
![]() |
#19 |
Deo inventara foruma
|
![]()
Nisam java programer, ali zar ne bi mogao ovako to da uradis:
Kod:
slika.setIcon(new ImageIcon("img\\slika" + key +".jpg")); |
![]() |
![]() |
![]() |
#20 |
Veteran
|
![]()
za ovo kao sto ti je Andross rekao.
A za ubuduce stavi Random r = new Random(); van petlje. Brze ce raditi. |
![]() |
![]() |
![]() |
Bookmarks sajtovi |
Tagovi |
java |
|
|
![]() |
||||
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 |