- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
-
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
-
Szmeby
tag
Ha futtatod, akkor is illik megadni a függőségeit a classpath-on, különben nem tudja használni.
java -cp ".:/src/java/CSV/opencsv-5.12.0.jar" AddressExample
A . az aktuális könyvtár, a : pedig a linuxos separator, amikor több elemet sorolunk fel.A classpath eclipse-ben is bekonfigolható valahogy. Jobb klikk a projektre, properties, és akkor ott valamelyik tabon be lehet tallózni a jar fájlt, amit akarsz, hogy lásson a projekted fordításkor meg futtatáskor. Asszem.
-
cigam
titán
-
Aethelstone
addikt
-
urandom0
őstag
-
urandom0
őstag
-
Szmeby
tag
Nekem a munkám során nem jött velem szembe blokkoló dolog, így szerintem ízlés dolga. Van valami homályos emlékem régről, ahol valamilyen niche körülmények közt az egyik picit jobban muzsikált a másiknál, de ha átlagos szoftvert készítesz, és mondjuk nem azon múlik a sikeres teljesítés, hogy mennyire optimalizálod szénné a jvm-et, akkor mindegy, melyiket választod. Ha meg majd oda kerülsz, hogy nem mindegy, majd úgyis utána kell nézni alaposan, hogy melyik mit tud és megéri-e.
-
Sirpi
senior tag
A Java 5-ben implementált Integer cache tehet róla.
-
Lortech
addikt
-
sztanozs
veterán
-
Aethelstone
addikt
-
Szmeby
tag
Valószínűleg azért találja meg a második megoldásod, mert ott explicite kikötöd neki, hogy az src-ben keresse a fájlt, és ugyanezen okból hiszem azt, hogy az az
Excluded: resources/lesz a ludas.Ugyanis ezzel azt mondod az ecplise compilerének, hogy a resources mappát hagyja figyelmen kívül, ne tegye át a bin alá, és amikor futtatod, valószínűleg a kódod a bin-ben keresi a fájlt. Töröld azt az exclusiont, ellenőrizd, hogy átkerültek-e a fájlok a bin-be a fordítás során, és hogy működik-e immáron az első megoldás. Remélem igen, mert ha nem, akkor hülyeséget beszélek.
-
Szmeby
tag
-
urandom0
őstag
A resources mappának a classpath-ban kell lennie, különben a Javanak fogalma sem lesz róla, hogy hol keresse a fájlaidat.
Ha a resources mappát hozzáadtad a classpath-hoz, akkor így hivatkozz rá a fájlodra:URL fxmlUrl = this.getClass().getClassLoader().getResource("fxml/sayhello.fxml");Elméletileg legalábbis...
-
urandom0
őstag
-
lanszelot
addikt
Ez nem igaz.
A programom majdnem kész van.
Design van már csak ami unalmas. Pl, kep animáció gombnyomáskor.
Semmit se másoltam, semmi külső dolgot nem használtam.
Nem is szoktam. Saját ötleteimet valósítom meg, sose másoltam.
Mint írtam más a célunk. Én addig bingyózom míg megoldom.
Van időm, nem sietek. Volt, hogy hetekre félre raktam a projektemet, mert nem volt kedvem. /nem ezt, ezt nemrég kezdtem/Android Studio bug-okkal küzdök.
pl:`@layout/activity_main` does not contain a declaration with id `beteszEgyparBtn`
Ezt a hibát dobta. Fogalmam se volt mi a gond.
Rákerestem a neten mi a baj, és míg kerestem eltűnt a baj anélkül, hogy bármit csináltam volna. És csinál még ilyeneket.
Undo -t is próbáltam, nem jön elő a hiba. Pedig 10 percen át volt. -
Ablakos
addikt
-
skoda12
aktív tag
-
Szmeby
tag
-
sztanozs
veterán
Remelem nem gond az angol:
Catch Block
You can add a catch block to a try-with-resources block just like you can to a standard try block. If an exception is thrown from within the try block of a try-with-resources block, the catch block will catch it, just like it would when used with a standard try construct.Before the catch block is entered, the try-with-resources construct will attempt to close the resources opened inside the try block. In case an exception is thrown when attempting to close one of the resources, these exceptions will be available from the exception's getSuppressed() method inside the catch block. Here is an example of a Java try-with-resources block with a catch block attached:
try(AutoClosableResource resourceOne = new AutoClosableResource("One", true)) {
resourceOne.doOp(true);
} catch(Exception e) {
Throwable[] suppressed = e.getSuppressed();
throw e;
} -
Drizzt
nagyúr
-
Drizzt
nagyúr
-
Arpee78
senior tag
Nem vagyok még teljesen a téma szakértője, valaki biztos szebb választ is tud majd adni, de
Azt hiszem amit kiír az maga a memóriacím ahol a tömböd található, lévén a referencia típusú változók egy referenciát(hivatkozást) tárolnak el.
Az Arrays.toString(tombodValtozoNeve)) amivel megkapod emészthetőbben a tömb tartalmát, vagyis az Arrays osztály toString metódusával.
Ha nem így lenne javítsatok ki.
-
Sirpi
senior tag
-
Drizzt
nagyúr
Nem hinném, hogy máshogy kéne fordítani. De nem lehet, hogy valamelyik Java verzióban változott a viselkedés? Melyik verzióval fordítasz? Ki tudsz próbálni másikat is?
Rövid utánanézés után mintha a Java 11-ben lett volna ezzel kapcsolatos módosítás? Hányas Java OCP-t nézel és milyen JDK-val fordítasz?
-
BigBlackDog
veterán
-
Sirpi
senior tag
-
Ablakos
addikt
-
yossarian14
tag
-
floatr
veterán
-
BE4GLE
senior tag
Annyit tennék, még hozzá, hogy az ArrayList mutable. A projektekben az ilyen típusú visszatérési értékek kerülendők. A HashMap is ilyen. Ezeket inkább csak függvények és osztályok belső logikájához használd. Visszatérési értéknek mindig próbálj immutable-t használni, mint a List vagy a Map. Azt gondolom észrevetted, hogy az interface típusokban nincs add és put. Okkal.
-
floatr
veterán
-
Szmeby
tag
-
yossarian14
tag
-
floatr
veterán
Metódus-referenciát akartam írni, de elbabráltam.
Ha a Literacy osztályban implementálsz egy static compare metódust a Double::compare mintájára (ahogy a lambdában csináltad), akkor úgy is lehetne a streames kód, hogy:.sorted(Literacy::compare)Rövidebb nem lesz összességében, de elegánsabb, és nálam egy kód reviewn is hamarabb átmegy

-
BE4GLE
senior tag
-
BE4GLE
senior tag
Egy kis magyarázat: A comparator mindig int visszatérési értékű. Az érték előjele mutatja meg, hogy merre néz a kacsacsőr. Ha nem primívet használsz, akkor az object rendelkezik egy compareTo metódussal aminek int a visszatérési értéke. Szóval ha double helyett Double lenne a property, akkor hívhatnád így is. p1.compareTo(p2). Vagy ha ez az egyetlen property akkor akár comparator nélkül is mehet: sorted()
-
BE4GLE
senior tag
-
Sirpi
senior tag
Alapból a stream-nek van minimális overhead-je a hagyományos bejárással szemben, viszont sokkal jobban karbantartható kódot eredményez.
Másrészt ha nagyon heavy a stream kiértékelése (pl. sokmilliós rekordszám), akkor a .parallel() lépést beiktatva a stream-be párhuzamosítja a feldolgozást, és magszám-közeli szorzót lehet így elérni sebességben. -
Sirpi
senior tag
A stream-et egy iterátorként fogd fel, és a benne lévő lépések végrehajtódnak minden elemre.
Tehát minden elemre végre fog hajtódni először az upperCase, ami nagybetűsít. Ennek az eredménye megy át elemenként az anyMatch-be, ami megnézi, hogy az adott elem A betűvel kezdődik-e. Az anyMatch egy terminal operátor, vagyis zárja a stream-et, további lépést nem tudsz hozzáfűzni. A visszatérési értéke boolean:boolean anyMatch(Predicate<? super T> predicate)Tehát az egész stream kiértékelés eredménye egy true/false érték, és true akkor, ha valamelyik elem nagybetűsítve A-val kezdődik. Az első sor elejére ezt is írhatod:
boolean existsWithA = Stream.of("d2", "a2", "b1", "b3", "c")...És jelen esetben ez true-t fog visszaadni, de ha az a2-t kiszeded, akkor false-t.
-
Drizzt
nagyúr
anyMatch egy Predicate-et vár. A Predicate egy olyan függvény, ami valamilyen bemenetre egy booleanüt ad vissza.
Az anyMatch addig folytatja a kiértékelést, amíg a predicate igaz nem lesz. Tehát jelen esetben addig, amíg nem talál olyan elemet, ami nagy A-val kezdődik. Utána leáll a további feldolgozás, mert teljesen felesleges lenne. -
Lortech
addikt
Itt a gc egy példányszintű metódus (instance method), ami késői kötést (late/dynamic binding) használ, így a Counter futásidejű típusa határozza meg, hogy melyik gc() metódus implementáció hívódik meg (polimorfizmus). Ha SubCounter újradefiniálta (override) a gc()-t, akkor ha a list változód futás idejű típusa SubCounter, akkor az override-olt változat fog hívódni, nem tudod meghívni a Counter gc() metódusát azon a példányon keresztül.
(azért írtam zárójeleket, hogy jobban utána tudj nézni ezeknek a fogalmaknak)
-
floatr
veterán
-
Szmeby
tag
A
partreferenciája nem szűnik meg, ha arra gondoltál. A belepakolt Stringeket a clear ugyan eltávolítja a listából, de apartél és virul. Egy referencia akkor szűnik meg, amikor semmilyen más élő objektum nem hivatkozik rá (mert mondjuk az utolsó hivatkozást is felülcsapod valami más referenciával).
Na meg a vezérlés kifutott a scope-jából is, ami a part esetén a metódus kapcsos zárójelei között található. (Ha a while ciklus kapcsos zárójelei közé tennéd a part deklarációt, akkor az lenne az ő scope-ja és minden körben új példány készülne belőle, de azt most nem akarod.)A csoda a
listRecipes.add(new Recipe(part));soron történik, apartreferenciáját megjegyzi a recipe ojjektum is - immáron nem csak apartváltozó fog arra hivatkozni -, az ő referenciáját pedig beledobjuk alistRecipeslistába, így az már nem vész el addig, amíg alistRecipeslétezik.Tehát a clear helyett bátran csinálhatsz egy új lista objektumot a
partváltozódnak, sőt illene is, ha nem akarod piszkálni a régi lista tartalmát, ami már alistRecipesbugyraiban pihen. -
BE4GLE
senior tag
-
BE4GLE
senior tag
-
Szmeby
tag
A
containsteljeskörűen működik. Ha belenézel azObjectosztályba (ami minden osztály őse), láthatod, hogy azequalsmetódus referenciák egyenlőségét vizsgálja - lévén más információja nincs az osztályról. Azt csinálja, mint amit az == operátor.Tehát az
equalsés egyben acontainsalapértelmezett működése az, hogy csak akkor tekint két objektumot egyenlőnek / a lista egy tagjának, ha az az objektum ugyanaz az objektum, mondjuk úgy, hogy ugyanazon a memóriacímen található adathalmaz.Abban a pillanatban, hogy kiadod a
newutasítást, a jvm egy vadonatúj objektumot fog gyártani neked. Még ha ugyanazt a szöveget adod is meg neki a könyv címe paraméterben, még ha ugyanaz az évszám, még ha látszólag ugyanúgy is néz ki az az objektum, mint egy másik, a referenciájuk eltér, hiszen anewutasítással ezt kérted a jvm-től, egy új objektumot.A referencia alapú összehasonlítás időnként hasznos dolog, de a modelljeinkben többnyire nem ez a legjobb megoldás. Ezért készítünk az objektumainknak saját
equalst, amikor azokat egymással össze akarjuk hasonlítani, és azt várjuk el tőle, hogy egyenlőnek tekintsen két könyv objektumot, ahol a cím és az évszám egyenlő. Ezt sajnos meg kell írnod, mert a jáva túl buta, hogy kitalálja a programozó gondolatait, elvárásait.
(És készítünk nekik saját hashcode implementációt is, amikor azokat mondjuk HashSet-ben kívánjuk gyűjtögetni, vagy HashMap kulcsaként akarjuk felhasználni.)Tehát a
Book b1 = new Book("a", 1);és aBook b2 = new Book("a", 1);eltérő referenciával bír, az alapértelmezettequalsszerint ők különböző objektumok. Míg aBook b3 = b1;ugyanazzal a referenciával bír, mint a b1 objektumod, az alapértelmezettequalsszerint ők ugyanazok az objektumok. -
Drizzt
nagyúr
Akkor nem értem a problémát, nálam teljesen jól működik:
Name (empty will stop):
mybook
Publication year:
1
Thank you! Books added: 1
Name (empty will stop):
mybook
Publication year:
1
The book is already on the list. Let's not add the same book again.
Name (empty will stop):
Thank you! Books added: 1
Name (empty will stop):
yourbook
Publication year:
2
Thank you! Books added: 2
Name (empty will stop):
mybook 1
yourbook 2(Thank you! Books added: egy picit félrevezető kiírás, mert akkor is jön, ha nem adtunk hozzá semmit)
-
Drizzt
nagyúr
A contains megmondja, hogy érték alapján van-e egyező elem az adott kollekcióban azzal az objektummal, amit paraméterként kapott. Azt, hogy érték szerint megegyezik-e valami, az equals metódus jelenti a Javaban. Ha van szerinted jó equals és nem így működik, akkor mutasd meg az equals-odat.
-
Drizzt
nagyúr
Az Arraylist contains hasznalja az equalst. Ha nincs korrektul implementalt equals a Book classban, akkor csak abban az esetben fog igazat adni, ha ugyanazt a referenciat tartalmazza az egyik, meg a masik book. Erdemes viszont akkor mar hashCode-ot is implementalni, mert mas kollekciok hasznalhatjak azt is a contains eldontesehez.
-
Sirpi
senior tag
-
BE4GLE
senior tag
-
floatr
veterán
-
Aethelstone
addikt
-
Foglalt név
addikt
Ez egész jó ki feladat.
Szóval a programban nem szerepel a 4. sorig "alma", ezért a közös String poolban sem.
Mivel az 1. és 2. parancs a new kulcsszavat használja, ezért mindkét String a heapbe kerül.
Az intern, amíg a pool-ban nem szerepel az érték, átrakja oda. Ergo az s1 átkerül, az s11 nem, az s2 pedig az intern után van, ez csak rámutat az s1-re.
Ha felcseréled a 3. és 4. parancsot, az s2 már az s1.intern előtt megcsinálja az almát a pool-ban, így az intern nem fogja az s1-et átmozgatni, ergo 3 különböző memóriacímet foglalsz (1-et a pool-ban kettőt pedig a new-k miatt a HEAP-ben).Ki tudod próbálni ha az s11 és s2 közé is raksz "=="-t
-
mobal
nagyúr
-
Drizzt
nagyúr
-
mobal
nagyúr
Nem talál drivert. Ezt próbáltad már?
-
Drizzt
nagyúr
-
Aethelstone
addikt
-
skoda12
aktív tag
-
skoda12
aktív tag
-
Lortech
addikt
-
E.Kaufmann
veterán
Gondolom levágja az elejét és csak az utolsó bájtot tartja meg (na ez megint jó kérdés, hogy a jvm milyen sorrendben tárolja a bájtokat és meg nem mondom). Ha a végét vágná le, akkor nem váltana előjelet, legalább is ha elől (bocs a pontatlanságért, talán "most significant bit"-nek lehetne nevezni, balról az első
) van az előjelbit.
Majd ha ráér egy okos, írja le mert én is kíváncsi vok
-
disy68
aktív tag
Rendes támogatás majd a Netbeans 9-es verziójában lesz. Az early access verziókhoz itt egy leírás. Amúgy a Netbeans használja a jre-t, a fejlesztéshez kell a jdk. Nem furcsa dolog, a Netbeans futásához kell egy bizonyos verziójú jre, míg a cél platform java verziója ettől lehet eltérő.
-
cigam
titán
Passz. A részletekre nem kérdeztem rá, csak arra, hogy lesz-e új kiadása, ahogy az eredetinek is van már 6-os.
Miért jó ha double és float típusokat normál alakban tárolják?
Csak az bennük a "poén", hogy pár biten hatalmas számokat tudnak tárolni?+ próbálgatom a "Milliomos" programot, de nem engedi keverni a float, és double értékeket. Pl.Nem engedi futtatni, ha a double-t lecserélem float-ra.
class Milliomos {
public static void main(String args[]) {
double összegASzámlán;
összegASzámlán = 50.22;
összegASzámlán = összegASzámlán + 40000000;
System.out.print("A számládon ");
System.out.print(összegASzámlán);
System.out.print(" Ft van. ");
}
} -
Karma
félisten
Célszerű akkor nem kiprintelni, hanem a megfelelő helyre irányítani az eseményt.
public class AmicusFXMLDocumentController {
@FXML
private Button buttonMemoryLocation1;
public void initialize() {
//handle
buttonMemoryLocation1.addEventHandler(MouseEvent.MOUSE_PRESSED, this::buttonsMemoryLocation);
}
@FXML
private void buttonsMemoryLocation(ActionEvent event) {
if ((Button) event.getSource() == buttonMemoryLocation1) {
// itt szeretném elkapni, hogy az addEventHandler elsült
}
}
} -
mdraco
őstag
-
nhpeti
tag
-
Ablakos
addikt
-
trisztan94
őstag
-
Lortech
addikt
-
floatr
veterán
Az ritkán szokta hozni az elvárt eredményt. Konkrétum nélkül annyit tudnék a dologhoz tenni, hogy GUI builder-ek nem szokták szeretni, ha belepiszkálsz, vagy más builder kódját akarod megetetni vele. Olyan is van, ami metaadatokat tárol a kódban, vagy járulékos fájlokban, és ha ezeket babrálod, kiesik a szinkronból.
-
Mukorka
addikt
Új hozzászólás Aktív témák
-
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?:))
- HIBÁTLAN iPhone 13 128GB Midnight-1 ÉV GARANCIA - Kártyafüggetlen, MS4397
- GAMER PC! Intel Ultra 245 / RTX 5070 / H810M-X WIFI / 32GB DDR5 / SSD 512GB / 700w! BeszámítOK!
- ELADÓ ÚJ 1 HETES, EZÜST Surface Pro 10 Intel Core Ultra 7 165U 16GB RAM 512GB SSD 1 év gar
- iPhone 17 Pro Max 256GB 100% (1év Garancia)
- GYÖNYÖRŰ iPhone 13 Pro 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS4409
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



