- TV antenna és jelerősítés
- Bambu Lab 3D nyomtatók
- Apple MacBook
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Hobby elektronika
- Épített vízhűtés (nem kompakt) topic
- Milyen belső merevlemezt vegyek?
- Milyen házat vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Azonnali notebookos kérdések órája
Új hozzászólás Aktív témák
-
floatr
veterán
válasz
Aethelstone #7988 üzenetére
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
válasz
Sk8erPeter #7996 üzenetére
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
válasz
Aethelstone #7995 üzenetére
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...
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
válasz
Sk8erPeter #7992 üzenetére
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
válasz
Aethelstone #7990 üzenetére
Most kicsit nehéz eldönteni, hogy tényleg nem érted, miről vakerászok, vagy csak szívatsz.
-
fatal`
titán
válasz
Aethelstone #7990 üzenetére
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
válasz
Sk8erPeter #7989 üzenetére
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
válasz
Aethelstone #7962 üzenetére
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é'.
-
floatr
veterán
válasz
Aethelstone #7986 üzenetére
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.
-
floatr
veterán
válasz
Aethelstone #7984 üzenetére
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
válasz
Aethelstone #7981 üzenetére
hálistennek db kapcsolat nincs benne,
"egyszerű" objektumokon való műveletvégzést valósít meg minden komponens -
floatr
veterán
válasz
Aethelstone #7979 üzenetére
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
-
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
válasz
pvt.peter #7977 üzenetére
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
válasz
Sk8erPeter #7954 üzenetére
Köszönöm a részletes válaszodat.
-
floatr
veterán
válasz
Aethelstone #7971 üzenetére
Van nagyon jó hibernate performance oktatásunk, ha érdekel
Ha egyszer ebben az életben még lesz valaha egy kis szabadidőm, akkor majd írok is róla. -
válasz
Aethelstone #7972 üzenetére
- 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.
-
válasz
Aethelstone #7971 üzenetére
Értem, köszi.
-
válasz
Aethelstone #7968 üzenetére
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.
-
válasz
Aethelstone #7965 üzenetére
OpenJPA a kiszemelt. Van jobb?
-
Aethelstone
addikt
válasz
Aethelstone #7967 üzenetére
Úgy értem zfs+bsd+postgresql.
-
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. -
válasz
Aethelstone #7943 üzenetére
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.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #7833 üzenetére
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
válasz
PazsitZ #7959 üzenetére
"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
válasz
Aethelstone #7958 üzenetére
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
válasz
Sk8erPeter #7957 üzenetére
Builder pattern. Egyébként amiről írsz, az pusztány egyéni preferencia kérdése.
-
Sk8erPeter
nagyúr
válasz
Aethelstone #7956 üzenetére
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
válasz
Sk8erPeter #7954 üzenetére
Az a buli, hogy a whateveres példád Java-ban egy design pattern
-
M_AND_Ms
veterán
válasz
Sk8erPeter #7954 üzenetére
Egyetértek. A kód valamelyest az emberi gondolkodást is reprezentálja.
-
Sk8erPeter
nagyúr
válasz
pvt.peter #7951 üzenetére
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
válasz
Oppenheimer #7947 üzenetére
ahogy @Aethelstone is írta, a kérdés szempontjából nem releváns
csak az egyszerűség kedvéért írtam Object -et -
pvt.peter
őstag
válasz
M_AND_Ms #7946 üzenetére
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
válasz
pvt.peter #7945 üzenetére
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.
-
Oppenheimer
nagyúr
válasz
Aethelstone #7948 üzenetére
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
válasz
Oppenheimer #7947 üzenetére
A kérdés szempontjából van jelentősége?
-
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
válasz
Aethelstone #7943 üzenetére
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. -
Java SE esetén kell nekem a JPA feltétlenül, vagy elég csak egy "mezei" hibernate?
-
bambano
titán
válasz
Aethelstone #7923 üzenetére
miért tomcat?
-
Oppenheimer
nagyúr
válasz
Aethelstone #7937 üzenetére
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.
-
M_AND_Ms
veterán
válasz
Aethelstone #7931 üzenetére
"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
válasz
Aethelstone #7931 üzenetére
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
válasz
Oppenheimer #7927 üzenetére
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
válasz
Oppenheimer #7929 üzenetére
Így már világos, az érvelés érthetővé teszi a dolgot, de a kérdőjelekből ez nem kitalálható... érted...
-
Karma
félisten
válasz
Oppenheimer #7927 üzenetére
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.
-
Oppenheimer
nagyúr
válasz
Aethelstone #7926 üzenetére
szerintem 1.8 kéne legyen a minimum minden új projektnél.
-
Aethelstone
addikt
válasz
Oppenheimer #7924 üzenetére
Én sem értem a kérdőjeleket. 7-es Java jobban tetszett volna ?
Egyébként meg azt írtam, hogy minimum.
-
MrSealRD
veterán
válasz
Oppenheimer #7924 üzenetére
Miért a sok kérdőjel?
-
Oppenheimer
nagyúr
válasz
Aethelstone #7923 üzenetére
1.7????
-
Aethelstone
addikt
válasz
bambano #7919 üzenetére
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.
-
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
válasz
bambano #7919 üzenetére
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 mirea 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
-
Szmeby
tag
válasz
Atlantisz48 #7916 üzenetére
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
válasz
WonderCSabo #7915 üzenetére
-
WonderCSabo
félisten
válasz
Atlantisz48 #7914 üzenetére
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.
-
Orionk
senior tag
válasz
WonderCSabo #7908 üzenetére
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
-
-
Orionk
senior tag
válasz
WonderCSabo #7906 üzenetére
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
-
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.,
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Digitális Állampolgárság Program DÁP
- TV antenna és jelerősítés
- Bambu Lab 3D nyomtatók
- gban: Ingyen kellene, de tegnapra
- Apple MacBook
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Macska topik
- Kerékpárosok, bringások ide!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- További aktív témák...
- BESZÁMÍTÁS! Asus TUF B450M R5 5600X 32GB DDR4 512GB SSD RTX 3060 XC 12GB Rampage SHIVA Chieftec 600W
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRCSÖKKENTÉS Lenovo ThinkPad T570, T580, P51s, P52s eredeti Lenovo, belső akkumulátor eladó
- Honor 400 lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo ThinkCentre M720s SFF / M920T tower -Számla, garancia, WIN11
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest