Hirdetés
- sh4d0w: Kalózkodás. Kalózkodás?
- sziku69: Fűzzük össze a szavakat :)
- Pajac: 27 ezer kilométerrel közelebb, mint átlagosan
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- GoodSpeed: Kell-e manapság egérpad vagy sem?
- Brogyi: CTEK akkumulátor töltő és másolatai
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
Új hozzászólás Aktív témák
-
Szmeby
tag
válasz
Ablakos
#12195
üzenetére
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.
-
Drizzt
nagyúr
-
Szmeby
tag
válasz
Ablakos
#12154
üzenetére
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.
-
válasz
Ablakos
#12151
üzenetére
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...
-
-
lanszelot
addikt
válasz
Ablakos
#12123
üzenetére
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. -
-
válasz
Ablakos
#12026
üzenetére
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;
} -
Arpee78
senior tag
válasz
Ablakos
#12019
üzenetére
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.
-
Drizzt
nagyúr
válasz
Ablakos
#11983
üzenetére
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?
-
BE4GLE
aktív tag
válasz
Ablakos
#11924
üzenetére
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
válasz
Ablakos
#11914
üzenetére
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
aktív tag
válasz
Ablakos
#11910
üzenetére
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()
-
válasz
Ablakos
#11908
üzenetére
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. -
válasz
Ablakos
#11903
üzenetére
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
válasz
Ablakos
#11903
üzenetére
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
válasz
Ablakos
#11899
üzenetére
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)
-
sztikac
őstag
-
Szmeby
tag
válasz
Ablakos
#11888
üzenetére
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
aktív tag
-
Szmeby
tag
válasz
Ablakos
#11866
üzenetére
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
válasz
Ablakos
#11864
üzenetére
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
válasz
Ablakos
#11862
üzenetére
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
válasz
Ablakos
#11860
üzenetére
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.
-
Foglalt név
addikt
válasz
Ablakos
#11791
üzenetére
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
-
Drizzt
nagyúr
-
-
-
E.Kaufmann
veterán
válasz
Ablakos
#10475
üzenetére
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
válasz
Ablakos
#9512
üzenetére
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
válasz
Ablakos
#8725
üzenetére
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
válasz
Ablakos
#8487
üzenetére
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
}
}
} -
-
floatr
veterán
válasz
Ablakos
#4987
üzenetére
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
válasz
Ablakos
#4905
üzenetére
Ránézésre azért mert nem hívod meg a connect függvényt a lekérdezés előtt így a connection null. Sőt, ahogy látom ott egy lokális változó a connection, így akkor se működne ha meghívnád

Érdemes lenne továbbá egy lezáró metódust is csinálni, ahol meghívód a close fv-t a connection-ön.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Dior Sauvage Eau de Parfum 200 ml
- Ryzen 5 2600X, MSI 1060 Armor OC 6GB, 16GB DDR4 RAM
- Sony PlayStation 5 (PS5) Slim Ghost of Yōtei Gold Limited Edition 3 év garancia
- Iphone 13 PRO MAX 128GB GOLD 91% Akku! CSODASZÉP, DOBOZBAN MINT AZ ÚJ!
- Intel Core i9-13900K + ASUS ROG MAXIMUS Z790 HERO + Opcionálisan G.SKILL 32GB CL34 6800 és hűtő
- Apple iPhone 12 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eladó Samsung Galaxy A32 5G 4/128GB / 12 hó jótállás
- Xbox Series kontroller fekete
- Nagyakkus, mobilnetes - Dell Latitude 5330 i3-1215U 6mag! 16GB 512GB 13.3" FHD 1 év gar
- BESZÁMÍTÁS! ASRock B450M R5 Pro 3400G 16GB DDR4 240GB SSD 2TB HDD GTX 1070 8GB RAMPAGE Shiva 450W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő




