- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
-
8000 - 7901
12209 - 12001 12000 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
floatr
veterán
Mert egy csak JDBC-s megoldásnál csak JDBC-t tudsz használni mindenre
Ha két qeryből áll a projekt akkor még vállalható, de efölött kezd kissé kellemetlenné válni a dolog.Régebben én is lázadoztam a hibernate használata ellen, találtam különféle félmegoldásokat, aztán be kellett látnom, hogy felesleges a széllel szemben cuccolni, pláne úgy, hogy azt is tudja, amiért lázadoztam, csak sokan nem tudják használni az eszköztárát megfelelően. Az élet kegyetlen...
-
Aethelstone
addikt
Hali.
Első körben célszerűbb lenne a tömb helyett valamiféle listában tárolni a dolgozókat, mivel a listához dinamikusan lehet elemeket hozzáadni.
Tehát dolgozo[10] helyett lehetne mondjuk List<dolgozo>
Aztán kellene egy metódus a ceg osztályban, ami mondjuk lehetne addDolgozo(dolgozo d), ami is lazy inittel adná hozzá a listához a dolgozókat.
public class ceg {
List<dolgozo> dolgozok;
public void addDolgozo(dolgozo d) {
if (this.dolgozok==null) {
this.dolgozok = new ArrayList<dolgozo>();
}
// Itt lehetne mindenféle ellenőrzés, hogy van-e már ilyen, stb.
this.dolgozok.add(d);
}
}
// A feltöltés kb. így nézne ki..
dolgozo elso = new dolgozo("férfi","XY","Budapest",26);
ceg cegBT = new ceg();
cegBT.addDolgozo(elso);Még valami.....Java-ban osztálynév nagybetűvel kezdődik...elnevezési konvenció.
-
pecze
aktív tag
Sziasztok
Lehet amatőr kérdés, van egy osztályom, amiből ha készítek egy példányt egy másik osztály egy tömbjében szeretném eltárolni.
Pl. egyik osztály
public class dolgozo {
private String nem;
private String nev;
private String cim;
private int kor;
}
Konstruktor és setter getter is van minden létező módon beállítva.
Másik osztály, ebben kéne egy tömböt létrehozni, amiben el tudom tárolni a példány során megadott dolgokat, így gondoltam
public class ceg {
private dolgozo[] dolgozotomb;
}
Példányosításnál pedig
dolgozo elso = new dolgozo("férfi","XY","Budapest",26);
ceg cegBT = new ceg();
ceg.setdolgozotomb(new dolgozo[10]);Itt akadtam el, mert bármilyen értékadásra hibaüzenetet kapok, illetve az se biztos, hogy eddig jó
-
Aethelstone
addikt
Igazad van, mindenkinek igaza van, nekem nincs igazam. Így jó?
Ami meg a konkrét problémát illeti, pontosan értem, hogy mit akarsz mondani, mégis azt mondom, hogy kinek a pap, kinek pedig a papné. Részemről lezárva. -
Sk8erPeter
nagyúr
Nem tudom, mire célozgatsz, de ha még mindig tényleg nem érted, én sem akarlak megsérteni, de próbáld meg talán értően elolvasni még egyszer, amire reagálgatsz már egy ideje, hogy eljuss odáig, ahova a többiek már jól láthatóan eljutottak...
![;]](//cdn.rios.hu/dl/s/v1.gif)
De most tényleg, nem tudom, mit nem lehet felfogni azon, hogy a metódusok visszatérési értékét tároljuk már el a bánatba nyomorult változókba, és ne hívogassuk már ugyanazokat a fostos metódusokat újból és újból az eltárolt visszatérési érték felhasználása helyett. -
Aethelstone
addikt
Megsérteni nem akarlak, ezért inkább azt választom, hogy nem értem, hogy miről vakerálsz
Persze, nyilván van még opció, de mint említettem, nem akarlak megsérteni
Peace 
-
Lortech
addikt
Már csak azért is érdemes különbséget tenni a sima "láncban hívás" meg builder API-k között, mert előbbi potenciálisan LoD sértés, utóbbi meg többnyire nem.
-
WonderCSabo
félisten
Hogy a VM bemegeledegese ne adjon fals eredmenyt, ahhoz ezt szoktak hasznalni.
-
Sk8erPeter
nagyúr
Most kicsit nehéz eldönteni, hogy tényleg nem érted, miről vakerászok, vagy csak szívatsz.

-
fatal`
titán
A láncban hívása nem. Az említett példával viszont nem az volt a probléma, hanem az, hogy a lánc nagyrészét többször is hívja egymás után.
-
Aethelstone
addikt
Azért írtam, mert metódusok hívogatása láncban nem az ördög műve. Annyira nem, hogy pattern is épül rá, amit buildernek hívnak. Erre gondoltam.
-
Sk8erPeter
nagyúr
Tényleg nem, de érted, nem attól lesz builder pattern egy kód, hogy láncolva hívogatsz metódusokat (ahogy a kolléga is írta).
Igazából a lényege a példának itt a felesleges "önismétlés" hibájába esés volt, hogy bizonyos - "menetközben" nem változó értéket visszaadó - metódusok visszatérési értékét akár el is tárolhatnánk, hogy spóroljunk némi overheadet, de nem tesszük, mer' nem tom mé'. -
Aethelstone
addikt
-
floatr
veterán
Hasonló cipőben járunk, bár a CSV két teljesen különböző adatmodell közti átjáráshoz kell, és a DBA önkezűleg futtatja a generátort.
Mindegy, a kulcsszavak: stateless session, report query, native query meg hasonlók. Ezekkel egy migráció sem probléma, de ha egy nagyobb projekt része, akkor nem kell megőrülni a többi usecase esetében az alacsony szintű eszközöktől.
-
Aethelstone
addikt
-
floatr
veterán
Feltételeztem, hogy vannak olyan elemek, amiket entitásként lehet kezelni. Ettől függetlenül tartom a dolgot, hogy két adatmodell közti átjárást is elég jól meg lehetne vele oldani, bár a DBA-k nálunk a migrációt scriptekben látják, amiben mondjuk van is valami, ha milliós nagyságrendű rekord csúszik át, az hálózaton elég lassú tud lenni.
-
Aethelstone
addikt
Az a baj, hogy ezek általánosságok. Feladattól és programozótól függ az egész. Nekem pl. most van egy adatmigrációs projektem, JDBC alapokon megy, isten mentsen meg, hogy bármiféle ORM-hez nyúljak...viszont egy mezei 3 rétegű web alkalmazásnál már mindenképpen indokolt lehet ORM használata.
-
pvt.peter
őstag
hálistennek db kapcsolat nincs benne,
"egyszerű" objektumokon való műveletvégzést valósít meg minden komponens -
floatr
veterán
Lehet rajta pörögni, de egyrészt a valódi bottleneck nem az ORM lesz, hanem a hálózati adatkapcsolat. Másrészt lehet jól és rosszul is használni, alacsony és magas absztrakciós szinten. Van olyan eszköze, amivel egy jdbctemplate sem lesz érdemben gyorsabb. viszont többféleképpen tud egyazon projekten belül is viselkedni, amire egy jdbctemplate nem képes.
Amúgy meg lehet nézni, hogy mekkora overhead egy projekt esetén, ha nem használnak épkézláb perzisztenciát. Ezt a legtöbb kliens ma már nem lenne hajlandó kifizetni. De ha annyira a data layer nanoszekundumain kell gondolkodni, akkor miért nem tárolt eljárásokban implementálja az, akinek ez fáj? Komolyan...
-
Aethelstone
addikt
-
#39560925
törölt tag
-
Aethelstone
addikt
Nos, nyilván lehet ide-oda reszelgetni, de alapvetően sosem lesz olyan gyors, mint egy pure JDBC(max kényelmesebb). Nyilván a feladattól és a programozótól is függ....láttam egyébként pár DEBUG módban kiírt Hibernate query-t......hajamat téptem tőlük. Ha ORM kell, akkor nem kérdés, de kérdés mindig az, hogy kell-e ORM.
-
floatr
veterán
Létezik az, hogy a VM memóriát pucol, betölt, lefordít, becache-el dolgokat, de az elméletileg első futtatáskor megtörténik. Ez a jelenség más infrastruktúrán is jelentkezik.
Azt viszont a teljesítményteszteknél érdemes megjegyezni, hogy mindig lesznek kiugróan rossz, vagy jó eredmények, ami nem igazán tükrözi a normál körülményeket. Használnak emiatt sokféle statisztikai mutatót, de nekem eddig a legjobban a medián jött be, az egyszerű átlagolás könnyen elvisz a málnásba.
Ja és természetesen lehetőleg kellően sok futtatás kell ahhoz, hogy valós képet kapjál. Ha az elsőt mondjuk eldobod, után mondjuk 10 mérés már sok esetben elég tud lenni.
-
pvt.peter
őstag
Sziasztok!
Lenne egy érdekes kérdésem.
Adott egy rendszer amelyben az egyik igen csak teljesítményigényes végrehajtó részt, kísérleti jelleggel több komponens is megvalósítja.
A lényeg, hogy ezeknek a komponenseknek a teljesítményét szeretném mérni.
Nem bonyolítom túl az egészet, egyszerűen csak futási időt fogok mérni a System.nano() hívással.long start = System.nanoTime();
...
long end = System.nanoTime() - start;Mennyire valós dolog az, hogy a Java lassan "melegszik" be.
Tehát ha én egy adott függvény teljesítményét akarom lemérni, akkor az első 5-6 futás eredményét tényleg érdemes-e eldobni?A válaszokat előre is köszönöm,
Peti -
pvt.peter
őstag
Köszönöm a részletes válaszodat.

-
floatr
veterán
Van nagyon jó hibernate performance oktatásunk, ha érdekel
![;]](//cdn.rios.hu/dl/s/v1.gif)
Ha egyszer ebben az életben még lesz valaha egy kis szabadidőm, akkor majd írok is róla. -
emvy
félisten
- torles lenyegeben nincs, soha
- egy adott fajlt jellemzoen nem olvasunk vissza tobbszor, mint par tucat alkalom
- a fajlok lehetnek akar nagy videok is, amikbe bele kene tudni tekerni
- az egesz tetejen egy massziv titkositas ulValoszinu, hogy HDFS-sel fogok inditani, aztan majd meglatjuk.
-
mobal
nagyúr
Értem, köszi. -
Aethelstone
addikt
-
Aethelstone
addikt
-
emvy
félisten
Ezekbol egyelore nem latom, hogy lenne elosztott, random-access blob store, ami egyebkent konnyen replikalhato, etc. Postgresunk van mar, az nem annyira kenyelmes fajlok tarolasara.
-
mobal
nagyúr
OpenJPA a kiszemelt. Van jobb?
-
Aethelstone
addikt
Úgy értem zfs+bsd+postgresql.
-
Aethelstone
addikt
-
emvy
félisten
Distributed random-access read-ot biztosító blob storage-ra lenne szükségem. HDFS-en kívül van ötlet? Ez sem ad rendes random accesst, de legalább blokkhatarokra tudok seekelni.
Replikáció, HA alapkövetelmény. POSIX felület nem. -
Aethelstone
addikt
-
floatr
veterán
-
mobal
nagyúr
Ez oké. Használtam már így is-úgy is. De a kérdés lényege - lehet félreérthetően írtam -, hogy ha tehetem ragaszkodjak a JPA-hoz, vagy adott esetben jó nekem a Hibernate nem így implementálva.
-
Aethelstone
addikt
-
Sk8erPeter
nagyúr
Most jutott eszembe, hogy elfelejtettem megírni, hogy erre sikerült megtalálni a megoldást, hátha valakinek kell, ha a példában a TreeViewert szeretnénk lecserélni CheckboxTreeViewerre, és azt szeretnénk, hogy még működjön is, és ne kapjunk StackOverflowErrort, akkor saját check state providert kell beállítanunk, és a probléma meg is van oldva:
v.setCheckStateProvider(new ICheckStateProvider() {
/**
* TODO: provide complete solution
*/
@Override
public boolean isGrayed(Object element) {
return false;
}
/**
* TODO: provide complete solution
*/
@Override
public boolean isChecked(Object element) {
return false;
}
});Persze az isGrayed és isChecked metódusok visszatérési értékét nekünk kell a saját alkalmazáslogikánk szerint beállítani.
-
Sk8erPeter
nagyúr
"az a példa szerintem egész eltérő a kiinduló kérdéstől"
Tök igazad van, igazából csak annak kapcsán jutott eszembe ez a másik téma, hogy beszélgettünk arról, hogy mi az, ami "szép", és mi az, ami pl. nekem személy szerint nem bejövős, az eredeti kérdéshez a whateveres példának már tényleg nincs köze. Szóval röviden a lényeg, hogy sokan szeretik agyontömörítgetni a kódot, amikor attól nem lesz jobb vagy olvashatóbb a kód, sőt, jobb lehet inkább szétdobálni, illetve hogy másik oldalról viszont sokan szeretik újból és újból leírni ugyanazokat az ismétlődő kódrészletet, ezzel pont, hogy túlzottan bőlére eresztik a kódot, illetve ez a módszer erőforrások pazarlására is alkalmas (overhead). -
PazsitZ
addikt
A builder pattern az egy pattern, ahol van egy buildered és azon hívsz metódusokat. Amit még csak nem is kötelező, de célszerű/kézenfekvő láncolva hívni. Jah és a végén ugye build()-et hívsz nem foo()-t.
Nem arról szól, hogy ha metódusokat láncolva hívsz akkor builder pattern-t használsz.Konkrétan a whatever példában számomra is az a természetesebb, ha kiemeled változóba a kérdéses részt, de az a példa szerintem egész eltérő a kiinduló kérdéstől.
-
Aethelstone
addikt
Builder pattern. Egyébként amiről írsz, az pusztány egyéni preferencia kérdése.
-
Sk8erPeter
nagyúr
Mármint milyen design pattern? Ez a "How to produce spaghetti code and waste resources" design pattern? Vagy inkább nevezzük egy rossz begörcsölődésnek?

(#7955) M_AND_Ms:
Jaja. És mennyivel gyorsabb sorban feldolgozni az infókat, és látni egyenként, hogy mi történik, mint kódátfutás során értelmezni az egybedobált sorokat, ahol ki tudja, még hány egyéb metódushívás vagy más művelet történik. Egyszerűen mész végig a sorokon, és még mindig tudod követni. Amikor viszont agyon van tömörítve a kód, és a szemnek ugrálnia kell, az agynak pedig megjegyeznie egyetlen sor értelmezése közben csomó infót, az fárasztó - és az ember azért elég sűrűn olvashatja munkakörnyezetben másnak a kódját.Amúgy ez az egész kettős: az előző hsz.-emben lévő whateveres példa pont, hogy túl szószátyár és még pazarló is. Számomra sokkal olvashatóbb is lenne az a kód, ha az ismétlődő metódushívások eredményét eltárolnánk egy változóba - amit eleve így illik -, és onnantól kezdve tudnám, hogy kifejezetten azzal akarunk valamit kezdeni, nem kellene mindig végigfutnom a sort odáig, amíg ugyanaz történik, hogy tudjam, hogy most pont ugyanazt babráljuk, csak nem raktuk az eredményt külön válltozóba. (Az ilyennek a lerövidítése egyébként Eclipse-ben annyi, hogy kijelöljük az ismétlődő kódrészt, egy Alt+Shift+L, és létrehozható belőle egy lokális változó, és meg van oldva.)
-
Aethelstone
addikt
Az a buli, hogy a whateveres példád Java-ban egy design pattern

-
M_AND_Ms
veterán
Egyetértek. A kód valamelyest az emberi gondolkodást is reprezentálja.
-
Sk8erPeter
nagyúr
Szerintem egyáltalán nem csúnya, hogy külön sorba rakod, hogy mit művelsz azzal a listával, amit majd be szeretnél rakni a HashMapbe. Sőt, gyorsan olvasható, egyértelmű, tiszta, és elkerülsz vele egy tök felesleges plusz metódushívást. A második is jól olvasható, de tény, hogy pazarlóbb. Így egy elemnél aztán tényleg totál mindegy teljesítmény szempontjából, meg láthatóság szempontjából is, de én meg attól kaparom az arcom, amikor olyan kódot kell olvasnom, amikor láthatóan a fejlesztő célja az volt, hogy vagányan mindent minél rövidebbre tömörítsen. Az sem számít, hogy hányszor ismétel azonos metódushívásokat, hány plusz műveletet igényel, de milyen jól mutat, hogy legalább tömör. Hát nem, nem lesz feltétlenül gyorsabban olvasható a kód (persze nyilván bőven vannak kivételek, de ne fossuk már le ennyire a teljesítményt). Tényleg valakinek attól lesz olvashatatlan a kód, mert külön sorban ki van fejtve, hogy mi történik? Az már régen rossz. Magasszintű nyelveknél egyébként nagyon divat(tá vált?) az is, hogy a metódushívásokat egymás után is ismételgetjük, mondván, "nem kell túlpörögni optimalizáció szempontjából", mint a kolléga mondta, ez itt abszolút igaz, de általában ezzel nagyon nem értek egyet. Egyrészt ha ennyire leszarjuk, hányszor történik meg egy-egy metódushívás, akkor az már zsigeri szintű igénytelenséghez vezethet hosszabb távon a teljesítmény rovására, meg azért szépen lehet halmozgatni az ilyen tök felesleges overheadeket, na de minek. (Persze ebben az is szerepet játszik, hogy ebből a szempontból mai napig bennem van a C, C++ tanulásának korszaka, amikor az ilyesmi nem volt menő.)
Pl. ilyesmi:
whatever.doStuff().veryCool().blahblah();
whatever.doStuff().veryCool().wow().great();
whatever.doStuff().veryCool().notCool();
Na itt pl. a whatever.doStuff().veryCool() eredményét el lehetett volna tárolni egy változóba. De nem, ez így tök menő. Ja várjunk csak, mégsem.
Szerk.:
Persze simán lehet, hogy az ilyeneket a fordító úgyis optimalizálja.
Mindegy, bennem az van, hogy abból baj nincs, ha egyértelműen láthatóvá teszem, mi történik, nekem a pár sorral bővebben hablatyolós kód nem lesz olvashatatlanabb, az agyontömörített kód viszont annál inkább. (Meg a debuggolást is nehezebbé teheti.
) -
Aethelstone
addikt
-
pvt.peter
őstag
-
pvt.peter
őstag
Tlképpen csak egy O(1) -el van több műveletem a 2. -ban, nem?
Ez pedig a hash kód alapján való elem lekérés a getKey segítségével.
Bár lehet hogy ugrálni kell majd a hash táblában mert a hasítófüggvény nem elég precíz ahhoz, hogy olyan kódot tudjon gyártani amihez biztos, hogy nem tartozik még semmi se.
(fix me, de asszem vmi ilyesmin alapszik a map ... )Ettől függetlenül igen, az elsőt célszerű használni.
A kérdésemet csak azért raktam fel, mert mindig csak egy elemet rakok bele abba a listába és kicsit csúnya volt, hogy mindig létre kell hoznom egy temp listát ehhez. -
PazsitZ
addikt
Az első esetnél egy temp referencia van, a második esetnél van a Map get és egy cast művelet.
Nem hiszem, hogy ilyeneket szintű dolgokat kellene túlpörögni optimalizáció szempontból.Ha nagyon rövidíteni akarsz, ezek is használhatóak:
objects.put(actualKeyObject, new ArrayList<Object>() {{ add(actualValueObject); }});
objects.put(actualKeyObject, Arrays.asList(actualValueObject));Egyébként inkább abba az irányba gondolkodnék, hogy ha több elemet pakolunk a listába, akkor azt külön metódusba kiszervezni és az első példa szerint hozzáadni érdemesebb/átláthatóbb szerintem.
Egy elemű lista esetén viszont számomra inkább az inline megoldások a szimpatikusabbak.
-
#39560925
törölt tag
nincs, de érdeklődöm. habár el se olvastam rendesen a kérdését, utólag elolvasva tényleg felesleg volt feltennem.
-
Aethelstone
addikt
-
#39560925
törölt tag
-
M_AND_Ms
veterán
-
pvt.peter
őstag
Sziasztok!
Szerintetek melyik konstrukciót célszerűbb használni?
Pl. olvashatóság, performancia szempontjából.Map<Object, List<Object>> objects = new HashMap<Object, List<Object>>();
List<Object> temp = new ArrayList<Object>();
temp.add(actualValueObject);
objects.put(actualKeyObject, temp);vagy:
Map<Object, List<Object>> objects = new HashMap<Object, List<Object>>();
objects.put(actualKeyObject, new ArrayList<Object>());
objects.getKey(actualKeyObject).add(actualValueObject);Előre is köszi,
Peti -
Lortech
addikt
Nem egészen. A Hibernate valóban JPA implementáció is, de a JPA még fasorban sem volt, már akkor Hibernate-eztem. Használhatod JPA-val is, meg a natív API-ján keresztül is.
Az eredeti kérdésre a válaszom az, hogy nem muszáj JPA, de hacsak nincs valami különös oka (valamilyen JPA korlát) az esetedben, ami miatt hanyagolnád a JPA-t, én maradnék a JPA-nál. -
Aethelstone
addikt
-
xTc
aktív tag
-
mobal
nagyúr
Java SE esetén kell nekem a JPA feltétlenül, vagy elég csak egy "mezei" hibernate?
-
M_AND_Ms
veterán
-
#39560925
törölt tag
Dehogynem ugyanaz a téma. Bambano új projektet kezd, és erre öntökönrúgás nem Java 8-at használni.
"Az 1.7-es javaval ugyanolyan jól lehet dolgozni felteszem, mint az 1.8-al."
Ez pedig nem igaz, hisz nincsenek funkcionális elemek az 1.7-ben.
-
Aethelstone
addikt
-
Karma
félisten
-
M_AND_Ms
veterán
"Sajnos azonban a mai senior Java fejlesztő brigád 1.6-1.7(1.5??) környékén leragadt."
Mert ezek fejlesztők általában elő, működő és aktívan használt projekteken dolgoznak, amikbe hosszú évek üzleti tudása van berakva. És erre nagyon vigyáznak. Nem fognak Java verziót váltogatni, mert az megjelent.
A kísérletező kedvű ifjú titánok persze megtehetik, hogy mindenfélét kipróbálgassanak, de majd bekerülnek az "életbe" és örülnek, ha nem kell meglévő funkciókat vagy, projekteket piszkálgatni. -
Karma
félisten
Az OpenJDK8 is GA lett 2014 áprilisában, úgyhogy már az is elég régi ahhoz, hogy begyepesedett berkekben is "meg lehessen kockáztatni használni". Én se hobbiprojektekben használom.
A nyelv újításai miatt szerintem egy kezdőnek is bőven megéri foglalkoznia vele - a lambdák és a streamek a legalapvetőbb mórickapéldákban is már kézzelfogható előnnyel bírnak. Na meg ha Görögországba mész, ott se ógörögül tanulsz meg először. Persze ez szubjektív, mások meg notepadban kínoznák a kezdőket, hogy hadd szokják az ipart.
Egyébként update 66-nál jár az Oracle JDK8. Biztos, hogy a rendszerkomponenseid rendben vannak biztonságilag, ha ennyire véres kérdéseket vetnek fel?
-
Aethelstone
addikt
Szerintem meg egy olyan terméknek kell lennie az alapnak minden projektnél, ami már bizonyított és kb. 50 update-n már túl van. Nem bíznám a produktív, kritikus rendszerem egy 1.8-as Java-ra. Majd 2 év múlva...amikor már minden disznóság kiderült róla és a rendszerkomponenseimen sem kell minimum 2 főverziót emelni, hogy működjenek vele rendesen...és még sorolhatnám...
-
Aethelstone
addikt
Nos, 1.8-as Java-val igazából csak akkor érdemes foglalkozni, ha az ember valóban ki is használja. Sajnos azonban a mai senior Java fejlesztő brigád 1.6-1.7(1.5??) környékén leragadt. Jah, hogy 1.8-on kívül nincs support? A világ nem csak Oracle Java-ból áll, hanem *nix környezetben van OpenJDK is, ami ott kvázi szabvány és egyáltalán nem elhagyott. Hivatalosan a RedHat még mindig supportálja a 7-es OpenJDK-t.
Szóval, nem csak hobbiprojektek és 1.8-as Oracle Java van a világon.
És komolyan kérdezem, aki most kezd el Java-val foglalkozni, annak miért is nem jó egy 7-es verzió? Vagy akár a 6-os is......
-
MrSealRD
veterán
-
#39560925
törölt tag
-
Karma
félisten
Egyébként az Oracle szerint is, ugyanis 2015. április óta nincs supportja, hacsak nem köt külön szerződést az ember a céggel.
A Tomcat 7-et is felesleges archaizálásnak érzem, mondjuk nem is állnék neki kézzel Tomcatet telepíteni, amióta van Spring Boot.
-
#39560925
törölt tag
szerintem 1.8 kéne legyen a minimum minden új projektnél.
-
Aethelstone
addikt
-
MrSealRD
veterán
-
#39560925
törölt tag
1.7????
-
Aethelstone
addikt
Nos a tervezett rendszer mélyebb ismerete nélkül.
- Java 1.7 minimum
- Tomcat 7
- Spring Framework (Security, MVC)
- Ha kell ORM, akkor Hibernate
- Kliens oldalon JQuery a dinamikus formkezelés miatt. A JQuery ELVILEG! böngészőfüggetlen.Elsőre ezekből létre lehet hozni egy aránylag könnyűsúlyú cuccot.
-
bambano
titán
-
Aethelstone
addikt
magyarán ne legyen olyan hibrid megoldás, ami keveri a szerveroldali és kliensoldali technológiát (pl gwt).
Bátorkodnám megjegyezni, hogy nem a gwt, hanem a gwt-t használó fejlesztők egy része, illetve bizonyos gwt-re épülő frameworkok keverik (szándékosan, mert az milyen jó?!) a kliens és szerveroldalt

Ha csak standard gwt és az ember azért betartja a szabályokat, akkor nincs keveredés. Főleg ha még tudja is a fejlesztő, hogy mit csinál(ő és a gwt egyaránt)

-
floatr
veterán
Na majd erre fogsz olyan válaszokat kapni, hogy nem győzöd kapkodni a fejed. Nekem olyan szempontjaim vannak hasonló problémákra, hogy legyenek az egyes rétegek teljesen különválasztva, magyarán ne legyen olyan hibrid megoldás, ami keveri a szerveroldali és kliensoldali technológiát (pl gwt). Legyen egy kliens oldali framework, és egy SOA backend. Nekem a Spring backend és az ExtJS jött be eddig a leginkább. Utóbbit azért használom szívesebben, mert nem dizájnerek találták ki.
Dinamikus formokat saját megoldással raktunk össze, akármilyen technológia is volt a frontenden. Ha a dizájn nem az egyedi brandelés irányába menne el, akkor ennél gyorsabb eszközt nem nagyon találsz. Már nem farokméregetésiből, csak eddig ezt tapasztaltam -
bambano
titán
nagy help kellene nekem

a helyzet: az eddig használt kedvenc fejlesztői eszközeim atom mód elavultak és kimentek a divatból. a másik pontja a helyzetnek, hogy nulláról el kellene kezdenem írni egy alkalmazást.
a kettő következménye, hogy úgy döntöttem, az egész kóceráj megy a kukába, és (majdnem) teljes platformot váltok. a kérdés, hogy mire
a felhasználói felület és környéke a segítségkérés tárgya
megváltoztathatatlan feltételek:
- jáva (nyilván, ha ide írok)
- webes kliens szerver cucc
- appszerver glassfish
- netbeansben menjen a fejlesztés.
- aktuális firefoxszal működjönváltoztatható feltételek, álmok:
- ehhez az alkalmazáshoz jó lenne, ha futásidőben változtatható formokat tudnék csinálni.a megálmodott ideális válasz a kérdésemre:
- használj icefaces-t
- használj x.y keretrendszert,
stb.tia
-
Atlantisz48
őstag
-
Szmeby
tag
Ha komolyabban szeretnél foglalkozni a dologgal, telepíts egy IDE-t magadnak (IntelliJ Idea, Eclipse, Netbeans, akármi), sok szenvedéstől kímél meg, ha ebben írod a programod.
Ugyanis fordítási hibád van, és ezek azonnal jelzik neked. Időnként még használható javítást is tudnak prezentálni. Bár az üzenet egyértelmű: a Thread.sleep() metódus ellenőrzött kivételt dob, amivel neked kezdened kell valamit.
Vagy elkapod, és "kezeled":try {
while (idozito < 5){
System.out.print("*");
Thread.sleep(500);
idozito = idozito + 1;
}
} catch (InterruptedException e) {
// a te esetedben ilyen amúgyse fog történni, de kezelni kötelező
System.err.println("Bajci van! Valami kilőtte alólam a szálat.");
e.printStackTrace();
}Vagy továbbpasszolod a kivételt a hívónak a stacken eggyel feljebb, vagyis a ciklust tartalmazó metódusod végére a paraméterek után odabiggyeszted a throws InterruptedException szavakat. Ilyenkor viszont a hívóban kell kezelned a problémát... vagy onnan is továbbküldöd... teheted ezt egészen addig, amíg el nem éred a main metódust, de ha az sem kezeli, akkor a programod a kivételdobás pillanatában rövid úton le fog állni (mivel a kivételt senki sem kezelte le).
Kis szösszenet az InterruptedExcpetion-ről.
-
Atlantisz48
őstag
-
WonderCSabo
félisten
Define "hibat jelez".
-
Atlantisz48
őstag
Üdv!
A segítségeteket szeretném kérni, mert sajnos nem boldogulok.
while (idozito < 5){
System.out.print("*");
Thread.sleep(500);
idozito = idozito + 1;
}Azt szeretném összehozni, hogy várjon a program a továbbfutással minden ciklus ismétlődésnél fél percet. De sajnos folyton hibát jelez.
Jól használom ezt a metódust, vagy erre ezt nem lehet használni?Előre is köszönöm.
Üdv:
Zoli -
WonderCSabo
félisten
Tehát azt nem értem, hogy pl. miért lesz az első elem típusa string, amikor mind a kettő byte.
Harom elem van. Az elso string "a+b=". A masodik ket elem egy-egy byte.
Vagy, ha így lenne: System.out.println("a+b="+(a+b));
akkor kerülne kiírásra ez: "a+b=7" ?Igen.
"+ karakterpáros egymás melletti használata
Itt egy felreertes lesz. Ennek a ket karakternek egymas mellett semmilyen specialis jelentese nincsen. A + operator tul van terhelve, es ha barmelyik oldalan egy String van, akkor nem az alapveto osszeadast vegzi el, hanem string osszefuzest. Eloszor persze ehhez azt az elemet ami nem string volt, stringge alakitja. Ez tortenik a pelda eseteben is.
-
Aethelstone
addikt
-
Aethelstone
addikt
-
floatr
veterán
-
Orionk
senior tag
Nem értem, hogy miért.
Tehát azt nem értem, hogy pl. miért lesz az első elem típusa string, amikor mind a kettő byte.A kiíratásban a "+ karakterpáros azt jelenti, hogy összefűzzük az általunk kiírandó stringet az összeadással, nem?
Vagy, ha így lenne: System.out.println("a+b="+(a+b));
akkor kerülne kiírásra ez: "a+b=7" ?Tehát azt nem értem, hogy ha a "+ karakterpáros egymás melletti használata azt jelenti, hogy fűzze össze, akkor mitől jelenti ezt. Én eddig mindig így fűztem a kiírandó szöveg mellé az összegeket.
köszönöm
-
WonderCSabo
félisten
-
Orionk
senior tag
köszi
---Egy másik buta kérdésem:
byte a=4;
byte b=3;
System.out.println("a+b= "+a+b);Mit fog kiírni? és miért?
Állásinterjún egy abszolút kezdő juniornak volt ilyen kérdés és ezért kérdezem.köszi
-
WonderCSabo
félisten
-
Orionk
senior tag
-
emvy
félisten
-
Orionk
senior tag
Sziasztok !
Javaban stringek összehasonlításánál miért jobb a "string".equals("string"); -et használni mint hogy így vizsgáljam (string == "string")
Tehát azt kérdezném ilyenkor mindig az EQUALS függvényt kell használni? Ha nem mindig akkor mikor? És miért jobb az equals?
köszönöm szépen.
üdv., -
mobal
nagyúr
-
zulu_mester
tag
Új hozzászólás Aktív témák
-
8000 - 7901
12209 - 12001 12000 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Gyúrósok ide!
- Samsung kuponkunyeráló
- Hyundai, Kia topik
- Android Auto és Carplay utólag? A Carpodgo Mini kicsi és olcsóbb, mint a nagyok
- Honor 600 – kezes, kitartó, költséges
- Samsung Galaxy Felhasználók OFF topicja
- Mégis megkapja a HDMI 2.1-et a Steam Machine?
- Kerékpárosok, bringások ide!
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Gigabyte H77M-D3H + Core I7 2600 + 4x4GB DDR3 RAM (Félkonfig)
- 1TB és 2TB 7.2k 3.5" SAS HDD-k, több darab, HDSentinel 100/100
- Asus Zenbook 14X OLED AMD Ryzen 9 5900HX 16 GB LPDDR4X 4266 MHz RAM 1 TB SSD
- Magyar ! DELL LATITUDE 7420 2-in-1 14"iPS TOUCH / i7-1165G7, 16GB/512GB NVMe / irisXE TB4 +SZLA GAR
- Samsung Galaxy S24+ Plus 12/256GB Újszerű,Kártyafüggetlen,Dobozos,Tartozékaival. 1 Év Garanciával!
- Bomba ár! Stonebook Pro P103B i i3-10GEN I 8GB I 256SSD I 15,6" FHD I Cam I HDMI I W11 I Garancia!
- 27% - iiyama G-MASTER G2470HSU-B6 IPS Monitor! 1920x1080 / 180Hz / 1ms / FreeSync
- Dell Precision 7560,15.6" FHD,i7-11850H,32GB DDR4,512GB SSD,RTX A3000 6GB VGA,WIN11
- Dell Optiplex/Precision MT/SFF 3430, 3050, 3060, 3070, 3080, 5060, 7060/7.-8.-9.gen/SZÁMLA-GAR
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Ha két qeryből áll a projekt akkor még vállalható, de efölött kezd kissé kellemetlenné válni a dolog.
![;]](http://cdn.rios.hu/dl/s/v1.gif)





