- Házimozi belépő szinten
- TCL LCD és LED TV-k
- Ez lenne a népkártya? Teszten a GeForce RTX 5060 Ti 16 GB
- Notebook / laptop alkatrészek cseréje (processzor, RAM, HDD)
- ASUS notebook topic
- OLED TV topic
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- HiFi műszaki szemmel - sztereó hangrendszerek
- 3D nyomtatás
- Épített vízhűtés (nem kompakt) topic
Új hozzászólás Aktív témák
-
orc88
őstag
Sziasztok!
Jövőre érettségizek informatikából, a Java nyelvet választottam. 3 hónapig Pascaloztunk az alapok miatt, majd ~4 hónap Java. Alap feladatok megoldása elég jól ment, a logikáját is értem a dolgoknak.
Gondolkozok egy Java könyv beszerzésén kis gyakorlásért. A fentebb linkelt könyvet javasoljátok, vagy inkább az Agyhullámot? Segítene nekem az érettségi szempontjából?
Előre is köszi!
-
cigam
titán
29-én jelenik meg az új "Tantuszos" Java könyv.
-
disy68
aktív tag
A JavaEE egy specifikáció és API gyűjtemény, ami a Java Community Process alkalmazásával fejlődik. Ezekhez az API-khoz készülnek implementációk a specifikációk alapján. Erről egy kis összefoglaló.
A JavaEE technológiákra rengeteg alkalmazás épül és nagyon sok az érdekelt szereplő. A bejelentés után sok a felmerülő kérdés, így érdemes megvárni ki veszi át az Oracle szerepét, valamint lesznek-e változások a fejlesztési/elbírálási folyamatokban. Olvasd el még ezt a cikket a bejelentésről.
-
Orionk
senior tag
Sziasztok!
Végleg elengedi a Java EE kezét az Oracle
Ez mit jelent pontosan? Mármint mit lehetett Java EE-ben fejleszteni? Tehát, hogy megértsem, hogy mik az a porgramok, JavaEE be kifejlesztett szoftverek, amik ezek után rosszabb minőségben készülhetnek, ha nem fogják rendesen tovább fejleszteni?
köszönöm
-
kispx
addikt
válasz
Vesporigo #9491 üzenetére
Jó lesz kezdésnek. Többen is azt javasolták, mivel az alapoktól kezdi.
-
Vesporigo
aktív tag
Sziasztok!
Szeretnék Java-t tanulni, de előtte természetesen szeretném megtanulni a programozás alapjait, mivel mindenhol azt olvasom, hogy enélkül nem fog menni. Viszont konkrétan nem tudom, hol kezdjem.
Az Agyhullám Java könyvből meg tudom tanulni az alapokat?
Visszaolvastam a topicot is, amikor mások is hasonlókat kérdeztek, de nem találtam választ ezekre a kérdésekre. (Vagy csak átsiklottam felettük.)
Tudnátok ebben segíteni? Akár konkrét könyvekkel, vagy oldalakkal, stb.Előre is köszönöm!
-
Orionk
senior tag
válasz
PumpkinSeed #9489 üzenetére
köszi
Gluon pluginban jártas vagy? Hogy ha Win-es felületen jól működik az alkalmazás, akkor Androidon is menjen ugyanúgy minden? köszi
Konkrétan gombok funkciójával van gondom.
-
PumpkinSeed
addikt
-
disy68
aktív tag
válasz
Lortech #9486 üzenetére
És java 9-től már private metódusok is lehetnek interface-ekben a default implementáció mellett.
-
Orionk
senior tag
köszönöm a válaszokat.
Elképesztő, hogy Te emlékeztél arra, hogy én 2 évvel ezelőtt kérdeztem ilyet.
-
Lortech
addikt
Egyszer már kérdezted ezt. "Hagyományos értelemben" vett többszörös öröklődés nincs, ha pl. a C++-szal összevetésben vizsgáljuk a kérdést. Ha egy tesztben látod ezt a kérdést, akkor a tesztíró fejével kellene gondolkodni, mert nem biztos, hogy a hosszú válaszra kíváncsi. DE a nincstől bonyolultabb a téma.
Az interface, ahogy emvy anno rámutatott, gyakorlatilag egy abstract class csak publikus metódusok body nélkül (+final static mezők és static metódusok implementációval). Többszörös öröklődés van Javában a saját terminológiája szerint, viszont megkülönbözteti az állapot (ilyen nincs Javában, az interface esetleges statikus mezőit nem tekinti annak, hiszen osztály szintűek), implementáció (default interface Java 8-tól, +esetleg static interface method, szintén Java 8-tól) és típus (interface) szerinti többszörös öröklődést. -
Orionk
senior tag
Sziasztok!
Többszörös öröklődés tudtommal nincs Java-ban.
De többszörös interface implementálás?Ha lehet egyszerre több interface-ből implementálni, akkor az implements kulcsszó után vesszővel kell elválasztani az interface-eket?
Ha igen, akkor hányat lehet egyszerre implementálni?köszönöm
-
floatr
veterán
Mérhető, ja. Win7 -> bubi 16.04 migráció nálam is kedvezett a liferay és tsainak, pedig még csak nem is erőltettem a dolgot. Máshogy gazdálkodik az erőforrásokkal, más bloatwarek vannak, más maga a runtime implementációja. Számomra nagy kérdés az is, hogy mivel fordítják a JDK/JRE natív részét. No meg persze az sem elhanyagolható, hogy fut-e antivirus/antimalware, ami windows-on már az alap installnál ott figyel; az is csillapítja a java eszeveszett száguldozását. Persze nem akarom a vitát ezzel gerjeszteni, de csak oda jutottam én is, hogy jobban jártam vele munkához.
-
Benex
senior tag
válasz
PsycHo88 #9474 üzenetére
Hello ,én android fejlesztésben dolgozom és egy macbook air 13"-on fejlesztek rá. Semmi problémád nem lesz vele , sőt én fejlesztésre jobban is ajánlom, mint a windows-t.( Ez lehet csak az én véleményem, de pl egy jobb teljesitményü windowsos laptopon nem fut ennyire szépen és röccenés mentesen a studio)
-
cigam
titán
válasz
PsycHo88 #9476 üzenetére
Az Android Studio, mind a három nagy platformra(Windows, macOS, Linux) elérhető.
-
PsycHo88
senior tag
Köszönöm szépen ! Szóval akkor androidra is lehet macen fejleszteni ezt nem is gondoltamvolna.
-
PsycHo88
senior tag
Sziasztok !
Most kezdem tanulni a java android app php web fejlesztést illetve programokat írni !
Kérdésem a következő !
Macbook air 13” ezeket tudom fejeszteni írni ? Vagy win alapú gép kell hozzá ?
Bocsi a kérdésért de még nagyon kezdő vagyok .
Válaszotokat előr is köszönöm !!
-
Orionk
senior tag
Sziasztok!
Mégis a Jigsaw-val jön a Java 9
Olvastátok ezeket a híreket?
Mi az a Jigsaw?
Illetve a Java9-ben mi lesz ez a modularizáció hétköznapibb nyelven megfogalmazva? Mire lehet majd használni?Kezdő vagyok még és nem nagyon értettem meg. köszönöm
-
Szmeby
tag
Na igen, ezek egy könyv példái. Az oldal tetején a könyv címe, ahonnan a példák származnak: "Java Puzzlers: Traps, Pitfalls, and Corner Cases" Bloch bácsi tollából. Egyébként próbálgatással, gondolkozással idővel rá lehet jönni, csak sok idő, tömény szívás főleg egy kezdőnek, viszont az Aha! érzés garantáltan nem marad el.
A magyar kiadás asszem Java fejtörők: Csapdák, buktatók, akármik néven fut. De szakmai könyvből én nem feltétlenül ajánlanám a magyarított változatokat. Túl sok mindent akarnak benne magyarítani. Talán ennél a könyvnél pont nem is számít - bár magyarul nem olvastam -, a példakódok és a belőle levont tanulságok a fontosak. Viszont szerintem ne is ezzel kezdd, ha még nincsenek meg az alapok.
-
Orionk
senior tag
köszi.
Természetesen jó akarok lenni és ahhoz türelmesen tanulok, de nagyon szeretnék már dolgozni is.A Java Puzzlers feladatokhoz van-e valami leírás ami elmagyarázza, hogy miért úgy fut a kód, ahogy?
-
Szmeby
tag
A célod, hogy (jó) java fejlesztő legyél, vagy hogy átmenj egy interjún?
Ha már tudod rá a választ, akkor itt van pár hasznos link, hogy megismerd a java nyelv furcsaságait:
java puzzlers
java tutorials
ocp mock tests
Légy kíváncsi és gyakorolj sokat, nem jelenthet problémát egy interjú, ha értesz hozzá.Egyébként google: java interview questions.
-
CJ19
csendes tag
Sziasztok!
Hibernates kérdés következik...
Egy findAll query lekéri az entitás összes propertyét, annak ellenére, hogy lazy fetch van beállítva. Íme a Query:
List<T> entityList = Collections.emptyList();
try {
startCustomOperation();
org.hibernate.query.Query query = session.createQuery("SELECT e FROM "+clazz.getName()+" AS e");
entityList = query.getResultList();
tx.commit();
} catch (HibernateException ex) {
handleException(ex);
} finally {
session.close();
}
return entityList;
}
A sima "FROM "+clazz.getName()-mel is lekérdezi az összeset. Mi lehet a hiba? -
floatr
veterán
A String egy nem változtatható (immutable) típus. Nem tudsz hozzáadni, nem tudod kicserélni a betűket. Ha összefűzöl/összeadsz két String-et, akkor a JVM létrehoz egy újat a kettőből. Ha ezt a műveletet sokszor végzed el, erőforrás-pazarló és lassú lesz.
A StringBuilder egy dinamikusan növekvő karaktertömb, aminek előre megmondhatod a kezdő kapacitását, mint egy puffer, aminek a mérete nőhet. Jó esetben nem is kell növelni, ha elég nagy puffert foglaltál le neki. Az összefűzést úgy kezeli, hogy a hozzáadott karaktereket egyenként pakolja a pufferbe, aztán a a toString() metódus hívásakor készít belőle egy végleges értéket.Ha konstansokat fűzöl össze összeadással, azt a compiler kioptimalizálja, de bizonyos esetekben helyettesíti StringBuilder-rel is.
-
Sirpi
senior tag
Ja, pont amiatt, amit mondasz. Viszont futtasd le ezt a két ciklust külön-külön és nem kell más magyarázat:
String resultString = "";
for (int i = 0; i < 1000000; i++) {
resultString += "a";
}StringBuilder resultStringBuilder = new StringBuilder();
for (int i = 0; i < 1000000; i++) {
resultStringBuilder.append("a");
} -
Orionk
senior tag
Sziasztok!
Arra tudtok-e jó és megfelelő leírást, hogy meg tudjam jól tanulni, hogy miért érdemesebb StringBuilderrel .append()-olni a stringeket, mint hogy a '+' -al konkatenáljam össze őket? köszönöm
Úgy tudom, hogy szűken 1-2 mondatban leírva az append azért jobb, mert nem hoz létre feleslegesen köztes objektumokat a memóriában mint a + csinál, ha például több String-et kell összefűznie. Ha például 4 stringet fűzössze + -al, akkor az első és másodikat összefűzi és lefoglal neki külön memóriát, majd ahhoz fűzi a 3.-at és annak is külön object-et foglal le, mielőtt a 4.-et hozzá fűzné.
-
Cathfaern
nagyúr
Valószínűleg pontosan azért, mert valós programozási körülmények között nagyon ritka, hogy a fibonacci sorozat számításának az optimalizálása számít bármit
Csak gondolom ki akarták szűrni azokat, akiknek még az értő olvasás se megy, megy programkódot is csak akkor látták amikor átküldték neki fizetés után a beadandóra beküldendő programját.
-
Lortech
addikt
válasz
sztanozs #9452 üzenetére
Normális helyen nem szakbarbár fejlesztők vannak, hanem intelligens emberek, akik a fejlesztésen túl egyéb
kapcsolódó területeket is képesek megismerni, átlátni a szükséges mértékig.Business analyst semmiképp sem csinál technikai specifikációt az üzleti igényből. Üzleti igényből készíthet pl. funkcionális specifikációt, user storyt vagy bármit, ami már közelebb áll ahhoz, ami közös alapot képezhet a fejlesztőkkel. De egyáltalán nem szokatlan normálisan helyen sem, hogy egy fejlesztő csapat dolgozza fel az üzleti igényt és talál ki megoldást rájuk, hiszen a szoftverekhez sokkal jobban ért mint az üzlet. Pl. az üzlet nem fogja neked megmondani, hogy milyen egy modern ergonomikus, jól használható webes felület.
Persze az értelmes vitát úgy kéne kezdeni, hogy ki mit ért technikai specifikáció alatt, üzleti elemző alatt, üzleti igény alatt, mert ezek cégenként, területenként mást és mást jelenthetnek. -
axioma
veterán
Fibo-ra egyebkent van logaritmus ideju rekurziv szamolo - modulo <nagyprim> mert anelkul abrazolhatatlan -, de azt fejbol tudni nem feher embernek valo, versenyhez neha ki kell guglizni. Pl. itt az utolso.
Viszont anno nekunk az algoritmusok tantargy elso gyakorlatainak egyiken volt, hogy miert _nem_ rekurzivan szamoljuk a fibot... minimum tombben vagy persze sima ciklusban. Nekem furcsa, hogy eleve ugy szolt a feladat, hogy valaszthatonak fel volt a rekurziv is sorolva, szinte talcan kinalva. -
Orionk
senior tag
válasz
Cathfaern #9453 üzenetére
Egyébként ez csak egy előteszt volt. (20 perc)
A HR-es és szakmai interjú majd csak 3-4 hét múlva lesz azoknak, akik ezen az előteszten átmentek.
Ezt az előtesztet a cég 1 hete találta ki és a mostani felvételnél alkalmazzák először. Legalább is a HR-es csaj ezt mondta. Azért van erre szükség, mert most a néhány junior pozícióra nagyon sokan jelentkeztek, mert ez a cég a városban most újonnan nyitott irodát Budapest után.
Azt nem mondták, de szerintem 35-45 jelentkező lehet a néhány pozícióra. Abból gondolom, hogy azt mondták ma, hogy 2-3 hét múlva tudnak válaszolni. Addig meg ha csak napi 4 embert hallgatnak meg, akkor már ott vagyunk ezeknél a számolnál. -
Orionk
senior tag
válasz
M_AND_Ms #9456 üzenetére
Igen, le volt írva rendesen, hogy mi a Fibonacci sorozat és hogyan épül fel. Abból te találtad ki, hogy hogyan kell kiszámolni a sorozat egyik elemét.
A 20 percből szerintem 5-6 perc csak arra megy el, hogy megértsd és kitalálj egy megoldást. Nekem annyi szerencsém volt, hogy régebben már megoldottam ezt és emlékeztem rá.
-
M_AND_Ms
veterán
válasz
sztanozs #9452 üzenetére
Persze, hogy nem ül le. Specifikációkból (én arról írtam és nem az igényről) dolgozik. (A gyakorlat azt mutatja, hogy ezek a specifikációk a kérdések egy részét figyelmen kívül hagyja vagy elnagyolja - szoktuk mondani a Word mindent elbír, a programkód már nem. De sokszor már az igények sincsenek összegyűjtve - ennyit a programozók előtt álló BA és egyéb szereplők jó működéséről).
Amúgy, ha programozót keresnek , akkor pont ne Fibonaccival dobálózzanak, hanem vegyék a fáradságot és dobjanak össze egy kis specifikációt. Egy olyan jellegűt, amilyen az adott cégnél szokás és azt adják oda a jelentkezőknek. Ja ehhez már gondolkodni kellene a tisztelt felvételi bizottságnak.
Persze, nem én fogok majd szenvedni a Fibonaccit-értő, de tisztes munkát kezéből kiadni nem tudó programozóval, aki ezen a felvételi teszten átment.
-
sztanozs
veterán
válasz
M_AND_Ms #9451 üzenetére
mennyire tudja összekötni az üzleti igényt az adott eszközzel, programnyelvvel. Mennyire képes egy üzleti specifikációból valós és jól működő kódot alkotni.
Ez egy nagyobb cégben azért két szerepkör:
- egy technology designer vagy business analyst - aki az üzleti igényből technikai specifikációt csinál
- egy fejlesztő - aki a technikai specifikációból kódot csinálEgy normális helyen egy fejlessztő sosem ül le (egyedül) az üzlettel megbeszélni, hogy mi az igény. Az ilyenekből lesznek azok a fejlesztések, amitől a tech kontrol vagy az infosec osztályon mindenki évekig a haját tépi (már ha van ilyen).
-
M_AND_Ms
veterán
Hűha. Ott elakadnék, hogy hirtelen nem tudnám mik is azok a Fibonacci-számok.
Komolyan, ez a lényeg a programozásban? Értem én, hogy maga a rekurzió fontos dolog, magam is használom, ha a feladat megoldása megkívánja. Azt is értem, Fibonacci-számoknak nagy a jelentősége, de mégis miért kell eldugni az egészet, egy teljesen életidegen kierőszakolt feladat mögé eldugni - Magyarországon hány valós üzleti problémát oldottak meg a Fibonacci-számok segítségével? Tehát, rekurzióra is vannak egyéb és az üzleti világhoz közelebbi példák.
De lehet, én vagyok ilyen furcsa (?)Én azt vizsgálnám, hogy mennyire tudja összekötni az üzleti igényt az adott eszközzel, programnyelvvel. Mennyire képes egy üzleti specifikációból valós és jól működő kódot alkotni. Olyat, amit később is könnyű továbbfejleszteni, alakítani. Nem azt keresném, hogy tudja-e a Fibonacci-mibenlétét. (hacsak nem valami tudományos projektre keresek fejlesztőt)
-
Orionk
senior tag
Megvolt ez az interjú feladat.
Az N-edik Fibonacci számot kellett kiszámolni rekurzívan VAGY ciklussal. 20 perc volt rá. Csak a metódust kellett megírni.Kb. 12-15 perc alatt megcsináltam rekurzívan és egy kis körítés ként egy Java-s Main classba azért beletettem, ahol meghívódik ez a metódus. Hibátlan lett.
Aztán kérdezte a fejlesztő srác, hogy meg tudnám-e a metódust csinálni ciklussal. Ott annyi nem sikerült, hogy a for cikluson belül véletlenül elszámoltam, de már kevesebb időm volt hátra a ciklusos verzióra.
Remélem, hogy ez miatt még átmentem. 2 hét múlva lesz visszajelzés. -
WPF-nek nincs nagyon megfeleloje, talan a JavaFX hasonlit, de a WPF egy nagysagrendekkel szelesebb korben hasznalt technologia. Az ASP.NET helyett meg rengeteg Java-s web framework van, tehat itt meg fura lenne egy konkretat kiszurni. Talan mondhatjuk, hogy a Java EE webappok. Esetleg.
-
kobe24
tag
Sziasztok!
Lehet kicsit hülye kérdéssel fogok felétek fordulni, de szeretnék elmélyedni jobban a java nyelvben, és ehhez lenne pár kérdésem. Eddig c#-ot tanultam, elég sokat megtudtam a wpf-ről és asp.net-ről, viszont mikor ugyan ezt akartam tenni a java-val, akkor nem igazán tudtam eligazodni. Az alapjait még nem is volt nehéz átnéznem, viszont nem igazán értem, hogy mi felel meg a java-nál a wpf-nek vagy asp.net-nek. Találtam sokmindent, de bennem ez még mindig nem egyértelmű. Ha valaki leírná nekem, vagy elég ha linkel bármilyen oldalt, ahol el van magyarázva mégis mire melyik "fajta" java-t kell használni, azt nagyon megköszönném. És tényleg elnézést, ha nagyon hülye kérdés.
-
axioma
veterán
20 perc alatt nem lehet tul sok mindent megme'rni... szerintem ez valami olyan lehet, amiben mondjuk kell tudni (absztrakt szintre forditva) tagadni egy "xor"-t es megmondani, hogy ha "nehany smirf az smurf, de minden smarf smirf is, akkor lehet-e olyan smurf, aki nem smarf" (el ne kezdd elemezni, csak veletlenszeruen irtam a valtozatokat koze, keso van mar). Esetleg valamelyik cegnel volt me'g kezdoket szuro tesztben algoritmus-vegrehajtas (folyamatabra, 'mi tortenik ha' kerdessel, vagy hianyzo boxokba beleirni szoveg alapjan a szerepet).
Azert majd gyere vissza a valodi valasszal -
Orionk
senior tag
Sziasztok!
Felhívott a HR-es csaj a cégtől, akik most nyitottak a városban irodát Budapest után. Azt mondja, hogy megkapta a CV-met és látja, hogy majd csak nyár közepén lesz számomra aktuális az interjú, de olyan sok a Junior jelentkező, hogy létrehoztak egy előszűrő tesztet.
Menjek be köv. héten megírni ezt, mert ha ez sikerül csak akkor mehetek egyáltalán tovább a HR-es interjúra és szakmai tesztekre a nyáron.
Ez meg egy 20 perces teszt lesz, logikai-matematikai jellegű. Ennyit mondott csupán.Szerintetek mire számíthatok? Mi szokott lenni egy ilyen tesztben? Hogyan készüljek rá?
Java junior pozícióról lenne szó a nyáron, ha ez sikerülne.köszönöm
-
bucsupeti
senior tag
válasz
Aethelstone #9440 üzenetére
.
-
Orionk
senior tag
válasz
Aethelstone #9438 üzenetére
De a többi program, vagy alkalmazás hogyan fogja látni azt, amit én a saját alkalmazásomban vágólapra másolok?
-
Orionk
senior tag
Köszi a lentieket. Neked is (#9435) Aethelstone.
Igyekszem megtanulni mind.
-----
Most egy alkalmazást készítek és segítséget kérnék.Probléma-kérdésem: Hogyan lehet JavaFX-el a vágólapra másolni valamit?
Részletesebben: IntelliJ-ben Gluon-os pluginnal JavaFXben csinálom az alkmalmazást. Egyik része, hogy egy mappából be tudja olvasni a fájlokat és azok tartalmát meg tudja nyitni TableView-ben. Rákattintva a táblázat egyik sorára vágólapra kell másolni az adatot úgy, hogy ha másik alkalmazásba átmegyek, pl. WORD-be, akkor be tudjam illeszteni.
Amikor egyik fájl tartalmát betöltöm, akkor az egy Observable ArrayListában van. Így amikor a táblázatban rákattintok egyik elemre és másolom, akkor a listának egyik elemét, azaz Objektumát és így annak a mezőit másolom.
Még plusz nehézség, hogy elméletileg a Gluon plugin a megírt kódot meg tudja majd jeleníteni Androidon is. De androidon is szükséges lesz a másolás funkció. Így valami olyasmi módszert keresek, ami Androidon is működne mármint a vágolapra másolás.
köszönöm
-
floatr
veterán
válasz
Aethelstone #9435 üzenetére
rude
Orionk (#9434)
Amúgy meg 201 Core Java Interview Questions, if jú parlevú inglis. Ha állásra pályázól nem árt ezekkel tisztában lenned -
Orionk
senior tag
köszönöm.
Az OMBM milyen minta?
Google val nem találtam OMBM Desing pattern, OMBM programming, OMBM Java
keresésekre semmit. -
disy68
aktív tag
Kollekciókhoz ezt nézd át, jól összefoglalja a Collections interface-ből származó interface-eket és azok implementációit.
"Ez alatt arra gondolsz, hogy elméletben tanuljam meg először, hogy melyik mit tud, ugye?"
Lényegében, igenSolid-ra találtam egy magyar összefoglalót érthető példákkal.
GRASP (General responsibility assignment software patterns)
Ezek meg beszédesek különösebb magyarázat nélkül is:
Don't Repeat Yourself (ne legyen kódismétlés)
Keep It Stupid Simple (legyen a kód olyan egyszerű, amennyire lehet)
You Ain't Gonna Need It (ne implementálj semmi olyan funkciót/logikát, amire nincs azonnal szükséged, később sanszosan változni fog az irány/struktúra/akármi és úgy is át kell írni) -
Orionk
senior tag
Jó, hogy leírtad, mert ezt nem tudtam. köszi
(#9430) disy68:
SOLID, GRASP és pár további egyszerűbb dolog; DRY, KISS, YAGNI
Ezeket nem ismerem. Google-val utána keresek, de ha van időtök csak nagyon röviden írhattok róluk.melyik milyen contract-nak tesz eleget
Ez alatt arra gondolsz, hogy elméletben tanuljam meg először, hogy melyik mit tud, ugye?Kollekciókkal kapcsolatban első körben ismerni érdemes a főbb inteface-eket
Melyik kollekció az Interface? Interfacek, amik hirtelen eszembe jutnak: Runnable, Serializable, vagy a Kollekciók is mind azok? Mint a List, Map, stb..? -
disy68
aktív tag
Mire lepötyögtem, már jött is válasz, de akkor más megfogalmazásban
:
Kollekciókkal kapcsolatban első körben ismerni érdemes a főbb inteface-eket és melyik milyen contract-nak tesz eleget (List, Set, Queue + Map). Ez után érdemes megnézni a tényleges implementációkat. A különböző implementációkat pedig akkor használjuk, amikor az adott megoldás igényli (pl. rendezett legyen mindig a kollekció, lehet-e benne ismétlődő elem, írunk vagy olvasunk belőle többet, elejéről/végéről vagy véletlen eléréssel veszünk ki elemeket, szálbiztosnak kell-e lennie). A nyelvi alapokon kívül még érdemes ráfeküdni az OOP-re. OOP alapelvek, SOLID, GRASP és pár további egyszerűbb dolog; DRY, KISS, YAGNI. Alapvető design pattern-ek (singleton, builder, facade, proxy, decorator, visitor, strategy). -
Atapi
senior tag
"Ez: newmap.put(3,"is great") --> Beleteszi a 3. helyre az "is great" stringet."
lehet, hogy csak nem figyeltél a megfogalmazásra, de ez az állítás nem igaz. a map kulcs-érték párokat tárol, az elemeknek nincs rögzített helye (mint pl egy List esetén az x. elem), legalábbis a hashmap rendezetlen, így nincs garancia arra, hogy mi hova kerül, csak az garantált, hogy egy kulcshoz egy adott érték tartozik, és a kulcs alapján ezt az értéket kapod vissza. ez azt jelenti, hogy nem a 3. helyre helyezed a példában a sringet, hanem a 3 kulcshoz rendeled hozzá. a példa szerencsétlen abból a szempontból, hogy kiíratásnál a természetes sorrend érvényesül, azaz növekvő sorrendben kerülnek kiírásra a kulcs-elem párok, de ez nem mindig van így, nem lehet rá számítani. lehet, hogy most feleslegesen téptem a billentyűzetem és tudod ezeket, de a megfogalmazásod nem ezt sugallta.
-
Aethelstone
addikt
Nos, amelyikre az adott feladathoz éppen szükség van. Nálunk leginkább az ArrayList "pörög", de Set, Map is van bőven. Egyébként inkább a most népszerű Java technológiákon érdemes gyakorolnod. Vagy legalább utána olvasni. Spring, Vaadin vagy Rest, Webservice, Hibernate, JDBC, Tomcat/Jetty....és napestig sorolhatnám....
-
Orionk
senior tag
válasz
Aethelstone #9426 üzenetére
Szia!
Úgy látom, hogy Te és floatr felhasználó már tapasztalt Java fejlesztők vagytok.
A munkahelyen melyik adatszerkezeteket használjátok a leggyakrabban?
Azokat akkor átnézném jobban, megtanulnám, mert a junior pozícióba a nyáron esedékes interjúimon biztosan elő fognak kerülni.ArrayList, LinkedList, HashMap -> ezek biztos gyakoriak. Ezeket már használtam többször. Mit lenne érdemes következőnek beiktatnom a gyakorlásaimba? köszönöm
-
floatr
veterán
válasz
Aethelstone #9424 üzenetére
ja, welcome in 2005
-
floatr
veterán
JavaDoc [link]
A metódus visszatérési értéke a kulccsal korábban tárolt érték, vagy ha az nem volt, akkor null. A cast meg azért van, mert nem generics-es a map definíciója. Helyesen így lenne:
Map<Integer, String> newmap = new HashMap<Integer, String>();
...
String prevvalue = newmap.put(3, "is great"); -
Orionk
senior tag
Sziasztok!
A lenti kódban ezt a sort nem értem:
String prevvalue=(String)newmap.put(3,"is great");Tudnátok segíteni az értelmezésében? köszönöm
Ez: newmap.put(3,"is great") --> Beleteszi a 3. helyre az "is great" stringet. Ez eddig világos.
De nem értem, hogy miért kell előtte (String) castolni és azt sem értem, hogy prevvalue értéke miért nem az újonnan berakott érték, azaz "is great" string lesz?Kódrészlet:
public class HashMapDemo {
public static void main(String args[]) {
// create hash map
HashMap newmap = new HashMap();
// populate hash map
newmap.put(1, "tutorials");
newmap.put(2, "point");
newmap.put(3, "is best");System.out.println("Map value before change: "+ newmap);
// put new values at key 3
String prevvalue=(String)newmap.put(3,"is great");// check returned previous value
System.out.println("Returned previous value: "+ prevvalue);System.out.println("Map value after change: "+ newmap);
}
}Futási eredmény:
Map value before change: {1=tutorials, 2=point, 3=is best}
Returned previous value: is best
Map value after change: {1=tutorials, 2=point, 3=is great} -
Orionk
senior tag
válasz
Aethelstone #9420 üzenetére
Ha nem is a user, de mondjuk windowsban olyan hiba lenne, ami miatt elveszik a könyvtárból 1 fájl és a user pont azt akarja kitörölni. Mert nem látja még, hogy nincs már meg a fájl, mert betöltötte az alkalmazásban az oldalt, ami kilistázta a mappa tartalmát, de az alkalmazásban nem frissül állandóan ez az oldal, csak ha újra be van töltve.
Szóval megnyitotta az alkalmazásban az oldalt, ami kilistázza a fájlokat és úgy marad mondjunk fél órán át, ami elég idő arra, hogy a fájl már nem létezik.
Most egyelőre úgy oldottam meg, hogy ezt a kivételt külön lekezelem.
De a fileexist megoldást is kipróbálom. -
Aethelstone
addikt
Nem életszerű usecase, hogy ugyanaz a felhasználó ki akarja totalcommanderben törölni azt a fájlt, amit mondjuk 2 perc múlva az appodból meg akar nyitni. Ha mégis, akkor a kolléga által javasolt kivételkezelés vagy egy sima fileexist metódushívás.
Szerk: vagy csak onfocusra egy újraolvasás.
-
Atapi
senior tag
"ha olyan fájlt akar betölteni, ami nincs ott, akkor leállna"
nem értem, hogy ez a rész sima kivételkezeléssel miért nem oldható fel. ha nem nyitható meg a megadott fájl, akkor hibaüzenet, frissítés, aztán az élet megy tovább. ráadásul a fájlkezelő (i/o) műveletek ha jól emlékszem eleve ellenőrzött kivételt dobnak, szóval amúgy is illene lekezelned az ilyen hibákat (pl attól, hogy ott van egy fájl, még nem biztos, hogy meg tudod nyitni, jogosultság, hw, vagy akármilyen hiba miatt. ilyenkor sem illik összeroskadnia a programnak).
-
Orionk
senior tag
válasz
Aethelstone #9417 üzenetére
Ja értem.
Hát ez egy olyan alkalmazás lesz, ami PC-Desktopon és Androidon is működik. Egy kliens alkalmazás, ami JSON adatokat kap és azokat dolgozza fel. Ha a User szeretné, akkor el is mentheti és törölheti őket. Ennyi a fájlművelet.
A folyamatos figyelést azért akarom a mappára beüzemelni, mert Mi van akkor, ha az alkalmazásban épp kilistázta a USER az elmentett fájlokat, azaz a mappa tartalmát és egy külön ablakban pl. TotalCommanderben kitöröl egy fájlt? Így ha olyan fájlt akar betölteni, ami nincs ott, akkor leállna.
Ezzel kapcsolatban van tapasztalatotok?
-
Orionk
senior tag
válasz
Aethelstone #9414 üzenetére
Mire gondolsz dosolás alatt?
-
Lortech
addikt
válasz
Cathfaern #9407 üzenetére
Már linkelték a nem pollozós, eseményalapú megoldást. Ez ha lehetséges, akkor az OS funkcióját veszi igénybe, amely értesíti a változásról, amikor az történik.
A pollozás általában kerülendő, ha van más megoldás, és itt van. Nem is biztos, hogy bármennyire is megoldás a pollozás, az eredeti igényben szerepelt az azonnaliság. Továbbá nem biztos, hogy értesülsz egyáltalán egy változásról, pl. létrehozás és rögtön utána törlés esetén, ha az két poll közé esik. Ez vagy releváns az adott probléma szempontjából, vagy nem. De egy nagyobbacska (több ezer elemet tartalmazó) mappa is meg tudja nehezíteni az ilyen naiv megoldások működését, ha folyamatosan pollozni kell. -
Orionk
senior tag
Ismertek másik magyar fórumokat a Java programozásról?
Olyat keresek, amit gyakran látogatnak és több ember ír, mint ez a Prohardveres.
köszönöm.
-
floatr
veterán
válasz
Aethelstone #9404 üzenetére
JSON RPC, amit az ügyfél kedvéért csak REST-nek hív már mindenki. De már rég nem akadunk fent ilyen apróságokon...
-
Cathfaern
nagyúr
-
Orionk
senior tag
válasz
Aethelstone #9405 üzenetére
Szia!
Nem elég bizonyos időközönként beolvasni a mappa tartalmát, hanem állandó jelleggel kell figyelni.
Kevesebb mint 1 másodpercenként kell figyelni a mappa tartalmát.Tehát inkább ez a gond a saját kód írással, hogy mi az, ami másodpercenként legalább kétszer tudna lefutni.
A másik gond meg az, hogy akármit írok ami saját az lassítani fogja az alkalmazást ahhoz a megoldáshoz képest, amit már megcsináltak és a JDK-ba beletettek.Vagy rosszul látom? köszönöm
-
Aethelstone
addikt
Kb. 20 sorból saját implementációt is lehet készíteni. Beolvasod a könyvtár tartalmát, berakod valami collectionba. Bizonyos időközönként újra felolvasod a könyvtár tartalmát és összehasonlítod a korábban beolvasott listával. Ha van eltérés, akkor frissíted a lista tartalmát és ezzel együtt nyilvánvalóan a képernyőtartalmat is. Nem kell ehhez semmi különleges api....szerintem.
-
floatr
veterán
válasz
Aethelstone #9397 üzenetére
Nálunk a REST sem REST
-
disy68
aktív tag
WatchService API-t tudod erre használni.
-
Orionk
senior tag
Sziasztok!
Segítséget kérnék szépen, mert Google nem a barátom most.
Probléma: Olyan módszert, BIND-olást keresek, amivel folyamatosan figyelni tudom egy könyvtárban levő fájlokat és ha a felhasználó kitöröl fájlokat, akkor az alkalmazás is rögtön frissítse az általa már kilistázott fájlokat.
Bővebb infók:
JavaFX-ben GLUON pluginnal csinálok egy alkalmazást, amiben ki kell listázni egy könyvtárban levő fájlokat, mert azokat kell betölteni az alkalmazásba.
FXCollections.observableArrayList(); listába töltöm be a fájlok neveit a könyvtárból. Majd ráklikkelés és betöltő funkció után betölti a tartalmukat is.
Ez az observation list jó arra, hogy ha a benne levő fájlnevek változnak, akkor rögtön ő is frissíti a betöltött fájlok neveit a megjelenítő felületen, de ha a USER kitöröl egy fájlt pl. TotalCommanderben, miközben fut az alkalmazás, akkor a program még nem fogja tudni, hogy most le kell futtatnia a függvényt, ami az observation listába betölti a meglévő fájlneveket.köszönöm.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Microsoft Excel topic
- Házimozi belépő szinten
- Samsung Galaxy A56 - megbízható középszerűség
- TCL LCD és LED TV-k
- PROHARDVER! feedback: bugok, problémák, ötletek
- Samsung Galaxy S23 Ultra - non plus ultra
- Ez lenne a népkártya? Teszten a GeForce RTX 5060 Ti 16 GB
- Változó design, tekerhető lünetta: megjött a Galaxy Watch8 és a Classic
- Notebook / laptop alkatrészek cseréje (processzor, RAM, HDD)
- Kuponkunyeráló
- További aktív témák...
- MacBook felvásárlás!! Macbook, Macbook Air, Macbook Pro
- LG 27UL500-W - 27" IPS - 3840x2160 4K - 60Hz 5ms - HDR10 - AMD FreeSync - 300 Nits - sRGB 99%
- Csere-Beszámítás! Olcsó RTX Gamer Laptop játékra! I5 11400H / RTX 3050Ti / 16GB DDR4 / 512GB SSD
- BESZÁMÍTÁS! Asus B760M i7 12700KF 32GB DDR4 512GB SSD RX 6800 16GB Rampage SHIVA FSP 700W
- LG 39GS95UE - 39" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest