- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Samsung Univerzum: Az S23-at is megbabonázta a Galaxy AI
- Milyen okostelefont vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Xiaomi Mi 11 Ultra - Circus Maximus
- Apple Watch Sport - ez is csak egy okosóra
- OnePlus 7 - magabiztos folytatás
- Redmi Note 9 Pro [joyeuse]
- Nem fogod kitalálni, mire fókuszál a Dimensity 9300+
Hirdetés
-
Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
it Egyre nagyobb probléma az AI hallucinálása – most az osztrák adatvédelmi hatóság veheti elő a ChatGPT miatt az OpenAI-t, alapvetően a GDPR megsértése miatt.
-
Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
ph A vállalat kétféle Strix Point dizájt tervez idénre, ezek közül a nagyobbik a dedikált GPU-k jó részét is kiválthatja.
-
Nem fogod kitalálni, mire fókuszál a Dimensity 9300+
ma Spoiler: az AI-ra, ami májusban még az évszakot is megváltoztatja.
Új hozzászólás Aktív témák
-
-
gygabor88
tag
válasz x123456 #1828 üzenetére
Írok egy példát és abból le fog tisztulni:
package javaapplication1;
class A{
public static void staticF(){
System.out.println("staticF() A");
}
public void f(){
System.out.println("f() A");
}
}
class B extends A{
public static void staticF(){
System.out.println("staticF() B");
}
public void f(){
System.out.println("f() B");
}
}
public class Main {
public static void main(String[] args) {
A a = new B();
B b = new B();
a.f();
a.staticF();
b.f();
b.staticF();
}
}Kimenet:
f() B
staticF() A
f() B
staticF() B[ Szerkesztve ]
-
gygabor88
tag
válasz x123456 #1842 üzenetére
Ha a sun-os tutort olvasod, akkor gondolom nincs gond az angol szakirodalommal sem. Ebben az esetben pedig a SCJP study guide az alapmű. Ha pedig valami spéci API érdekel, akkor arra külön kell keresni.
-
gygabor88
tag
Attól függ. Ha OOP szemléletet akar valaki felszedni, akkor sok kódot kell olvasni. Ezután ha már megvan a megfelelő absztrakciós készség, akkor jöhetnek a design patternek. Ha viszont algoritmizáló készségre vonatkozik a kérdés, akkor sokat kell gyakorolni acm stílusú versenyfeladatok kódolásával.
-
gygabor88
tag
válasz x123456 #1858 üzenetére
Nézd meg, hogy tudnál külső osztályból létrehozni egy másik osztályba ágyazott osztályból egy példányt.
package javaapplication1;
class A{
class B{
}
static class C{
}
}
public class Main {
public static void main(String[] args) {
A a = new A();
A.B b = a.new B();
A.C c = new A.C();
}
}Mint láthatod, ha nem static nested classról van szó, akkor kell egy példány először a beágyazó osztályból. Ezért b által hivatkozott objektum kapcsolódik a által hivatkozotthoz.
--------------------------------------------------
Az interface-szes problémára: Egy interface minden függvénye impliciten public elérésű. Felülírási szabály szerint pedig nem szűkítheted egy függvény elérését (ezesetben publicról defaultra).[ Szerkesztve ]
-
gygabor88
tag
válasz x123456 #1868 üzenetére
Javat szerintem ne erőltesd telefonokon. Ha ilyen irányba akarsz elmozdulni, akkor döntened kell, hogy Iphone vagy Android. Iphone-nal nincs tapasztalatom, androidra viszont elég gázos a fejlesztés. Verziónként külön sdk, gagyi programnyelv és api, nincs fix programbelépési pont csak repkednek az események, xml descriptorok, bugos emulátor (de csak hogy könnyebb legyen a fejlesztés) ... Szóval elég hulladék. Lehet, hogy mint end user, nagyon látványos tapogatni az ikonokat a telefonon, de fejleszteni rá ...
[ Szerkesztve ]
-
gygabor88
tag
válasz x123456 #1874 üzenetére
Viszonylag gyakran előkerülnek. Gondolj pl a tárolókra, mint a Vector, HashMap, LinkedList, ... vagy pl TypedQuery JPA-ban. De saját generikus class-t vagy interface-t is sokszor kell írni. Ezekkel a generikusokkal megspórolható egy csomó castolás, így gyorsabb a program.
[ Szerkesztve ]
-
gygabor88
tag
válasz x123456 #1881 üzenetére
Ahogy a linkelt oldalon is látható, a Box egy generikus osztály és tartalmaz t névvel egy változót:
...
private T t;
...
Az add függvény ennek a t-nek adna értéket. A fillBoxes pedig átvesz egy listát, amiben Boxok vannak és minden Boxhoz hozzáadja u-t. De nyilván tudnia kel, hogy mi a típus. Ez lesz az a típus, amit U helyére írsz be.[ Szerkesztve ]
-
gygabor88
tag
válasz x123456 #1883 üzenetére
"Ezt a metódust úgy kell értelmezni, hogy van egy U paramétere, valamint egy olyan, ami a List generikusból, azon belül kizárólag a Box generikus valamely fajtájából származik és megkötés, hogy a Box "altípusa" (nem tudom, erre mi lenne a helyes kifejezés) meg kell egyezzen az első paraméter típusával/osztályával?"
Igen, valamilyen Box-okat tartalmazó listát vár. Egyébként java.util.List-ként találod meg a listát, ami egy interface. Az implementációi pedig szintén a java.util csomagban találhatók.
[ Szerkesztve ]
-
gygabor88
tag
válasz x123456 #1937 üzenetére
Bár nem kifejezetten javas fórum, de van rajta pár javahoz értő: hup
Ez meg nem igazán forgalmas: javaforum
Egyébként swinges kérdésekre ezeken a helyeken sem kapsz túl sok érdemi választ. Swing, AWT mind halott, amire ezeket az apikat használták, abban már a .NET vonal erősebb. Ami java vonalon pörög az a spring, hibernate, seam, richfaces, jsp, jsf. A többibe szerintem ne ölj túl sok energiát.[ Szerkesztve ]
-
gygabor88
tag
válasz eziskamu #2011 üzenetére
Hibernate honlapján van 2 vagy 3 pdf, azt szedd le és olvasd át.
EE-n belül mit szeretnél tanulni? Viszonylag gyorsan fel lehet szedni annyi tudást, hogy bármelyik részéhez hozzá tudj nyúlni, de érdemes specializálódni, pl Webservices + XML APIs vagy EJB, stb. JSF-be már ne ölj sok energiát, vannak jobb alternativák. JPA mindenképp kelleni fog, mondjuk Hibernate a legelterjedtebb, de Eclipselinkkel is használhatod. -
gygabor88
tag
válasz eziskamu #2014 üzenetére
Magyar anyagokat felejtsd el, évekkel le vannak maradva. Rákeresel googleben, hogy java ee 5 tutorial és java ee 6 tutorial. Az oracle honlapját fogja elsőnek kidobni. Ott vannak példakódok meg magyarázat is. Ha ezeket végignézed, akkor már tudsz majd magadtól készíteni egyszerűbb projekteket. Ant vagy maven munkahelyen is lesz, nem árt egyikkel megismerkedni, egyébként is megkönnyítik az ember életét.
-
gygabor88
tag
válasz klayton#1 #2042 üzenetére
Feltételezem, hogy csak elírtad a fájlnevet, amikor a postot írtad (mert sikeresen fordult a gépeden). A probléma az, hogy a PropertyFileReader nincs rajta a classpathon. Próbáld így windowson (linuxon ";" helyett ":"):
java -classpath xom-1.2.6.jar;. PropertyFileReader
[ Szerkesztve ]
-
gygabor88
tag
// AFrame.java
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class AFrame extends JFrame {
public AFrame() {
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JLabel label = new JLabel("AFrame");
add(label);
this.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
BFrame bFrame = new BFrame();
bFrame.setVisible(true);
}
});
}
public static void main(String[] args) {
AFrame aFrame = new AFrame();
aFrame.setVisible(true);
}
}
// BFrame.java
import javax.swing.JFrame;
import javax.swing.JLabel;
public class BFrame extends JFrame {
public BFrame() {
setSize(800, 600);
JLabel label = new JLabel("BFrame");
add(label);
}
}Tudom, hogy gány a kód, de példának jó lesz.
[ Szerkesztve ]
-
gygabor88
tag
1.
Nyilvan rengeteg kulonbseg van long es Long kozt.
Long egy referencia tipus, long egy primitiv tipus. Ha ranezel a Long dokumentaciojara, akkor latod, hogy tele van konverzios metodusokkal, amik jol jonnek, ha nem akarsz castolni pl.
Masreszt Long immutable, mig long nem.
Templatek megadasanal csak referencia tipust hasznalhatsz, tehat nem irhatsz olyat, hogy List<long>.
Ettol fuggetlenul elelmiszerpult.get(vonalKod), akkor is mukodik ha vonalKod long tipusu, ekkor ugyanis egy Long-ba lesz becsomagolva autoboxingnak koszonhetoen.2.
Az is teljes erteku megoldas lehet, ha csak egy this() hivodik meg a konstruktorodban. Mondjuk Hashtable tipikusan nem az a tipus, ami neked kell. -
gygabor88
tag
1.
double pi = 3.14;
System.out.printf("%.0f\n", pi);2.
A 9.0 literal double tipusu, ami a legnagyobb tipus a (9.0 / 5) * celsius + 32 kifejezesben, ha celsius float. Emiatt az eredmeny is double, amit castolas nelkul nem tudsz float-ba belerakni.
9.0f viszont float tipusu.3.
A Scanner osztalyt hasznald.
[ Szerkesztve ]
-
gygabor88
tag
Character.digit(ch, 10) -t hasznald konverziohoz, ahol ch char tipusu.
Elozore pedig: A Scannernek van nextDouble metodusa is. Nyilvan a streamet valahogy le kell zarni, erre az enter nem eleg. Ha nem akarod tulbonyolitani, akkor beolvashatsz egy sort egy String-be es ebbol olvasod ki Scanner-rel a double ertekeket.
-
gygabor88
tag
1.
A ListaElem osztaly tartalmaz egy referenciat egy masik ListaElem tipusu objektumra, annak meg van elem nevu valtozoja, amit el tud erni a fenti hivatkozassal.
2.
A Hasonlithato kodjat nem talalom, de gondolom ugy mukodik, mint a Comparable. Olvasd el a Comparable interface dokumentaciojat, abban leirjak szepen, hogy mikor mit kell vizsgalni.
3.
Azert kell az a sor, mert nelkule mindig ugyanazt az elemet adna vissza a metodus.
-
gygabor88
tag
válasz pakriksz #2406 üzenetére
Pengen kell mukodnie annak a Collections.synchronizedList()-tel is. Ennek ellenere megsem ajanlanam ezt a megoldast, a szarmaztatas mindig csak vegso menedek legyen. Neked az kell, hogy a szalak egy Set-et allitsanak ossze, igy nem lesz duplikacio. Ezutan pedig keszithetsz egy listat a Set elemeibol.
[ Szerkesztve ]
-
gygabor88
tag
válasz pakriksz #2814 üzenetére
Hibernate oldalan az osszes guide jo. Nem is ertem, hogy az adott lib hivatalos oldalan kivul miert kellene mashonnan osszevadaszni tutorialokat. Most nem tudom, mi a problemad, osszesen 1 xml fajt kell irni es semmi olyan nem kerul bele, ami miatt a lenyeg elveszne. Sima pebkac.
-
gygabor88
tag
válasz Superhun #3139 üzenetére
"
"a String az egy olyan állandó, amelynek értéke futás közben megváltozhatatlan"Valójában csak a mérete, a karaktereket módosíthatjuk benne a charAt metódussal, O(1) időben."
A String immutable, nem modosithatod, a charAt pedig pont visszaad egy karaktert es nem modositja azt.
"Valójában úgy áll a dolog, hogy a kódban definiált Stringek (String str = "abc") az úgynevezett literal pool-ban lévő elemekre fognak hivatkozni, ami a heap-től független, így a GC-től is."
Java 7-tol az interned stringek is atkerultek a permanent generationbol a young es old generationbe tehat nem igaz, hogy a heaptol fuggetlenek.
-
gygabor88
tag
válasz bucsupeti #3170 üzenetére
Kod nelkul nehez megmondani, hogy mi a baj, de nem nyelsz el egy catch agban egy exceptiont, ami nincs kiloggolva?
"Új session-t indítok minden egyes lekérdezésre"
Ez anti-pattern. Mivel desktop approl van szo, gondolom csak egy user hasznalja egyszerre. Boven eleg akkor nyitni uj sessiont, ha az elozo inkonzisztens allapotba kerul.
[ Szerkesztve ]
-
gygabor88
tag
válasz bucsupeti #3176 üzenetére
"A kérdésem az hogy a felvázolt architektúra szerintetek rendben van? Illetve jó megoldás-e az egyetlen session használata?"
Mint mondtam, a Session inkonzisztens allapotba kerulhet, igy nem erdemes csak egyet hasznalni. Ez a javadocban is le van irva.
A masik, hogy a Session nem thread safe, igy leginkabb a session-per-request megoldast szoktak kovetni. De ez nem azt jelenti, hogy ha egy muvelethez tobb select / insert /akarmi kell, akkor mindegyikhez letre kellene hozni egy sessiont.
A statikus dolgokat felejtsd el, unit tesztelhetetlen. Ritkan van ertelme (konstants, logger, ...), de alapvetoen csak thread safety problemakhoz vezetnek. Jelenleg is tobb kulonbozo metodusod dolgozik egy statikus nem thread safe peldanyon, tehat neked kell gondoskognod rola lockolassal vagy valami mas modon, hogy egyszerre csak egy valaki hasznalja. -
gygabor88
tag
"Error: could not find or load main class D:\.......jar"
Nem minden jar futtathato. Sot, tipikusan a legtobb jar nem futtathato es valoszinuleg te is ilyet kaptal. A masik lehetoseg, hogy az alkalmazas keszitoje rosszul csomagolta be a programot es nincs beallitva main class a manifestben. Ilyenkor ugyan meg elindithatod a programot, de tudnod kell a main class pontos nevet hozza.
-
gygabor88
tag
1. Elegge bugos szegeny. Pl rendszeresen elofordul, hogy ugyanazt a projektet valtoztatas nelkul ketszer egymas utan nem lehet leforditani / futtatni. Ilyenkor ivy cache es a project alatti plugins mappa torlese utan ujra fordul a project.
2. Ivyt hasznal dependency managementhez. Ez nagyon jo, csak ha nalunk mavenes a projekt, akkor feleslegesnek erzem magamra eroltetni ivyt is. Allando kavarodas van, hogy mi kerul BuildConfig.groovy-ba es mi a pom.xml-be.
3. Groovy nagy projektre nem alkalmas. Kis scriptekhez tok jo, pl hogy automatizalt modon hivogassunk jmx vagy rmi metodusokat. Egy csomo mindent elfed a grails es a groovy. Sok helyen osztalyszintu valtozok def kulcsszoval vannak definialva es a grails a hatterben odavarazsol valami objektumot a helyukre. Ami azert baj, mert itt nem latod a tipusat es ezek mar nem String vagy integer valtozok, hanem service objektumok, ahol fontos lenne latni, hogy mi mitol fugg legalabb interface szinten.
4. A kodgeneralasi funkciojanak nem latom ertelmet. Gyakorlatilag annyit general le, mintha eclipseben kivalasztanam a new class funkciot.
5. Nem a programozo hasznalja a frameworkot, hanem a framework hasznalja a programozo kodjat. Nekem ez sosem tetszett.
6. Osszessegeben belassitotta a fejlesztesi folyamatot.[ Szerkesztve ]
-
gygabor88
tag
1. Gyors probalgatasra jo a run-app, de vigyazni kell vele, mert attol meg, hogy o tudja futtatni a projektet, egy webcontainerben meg nem biztos, hogy futni fog. mvn grails:war-ral lehet war fajlt kesziteni es azt deployolni egy tomcatre pl. Ekkor jot elo nalunk is a gubanc, hogy csomo felesleges dolgot bepakolt a war fajlba alapbol. Pl servlet apit is, ami teljesen felesleges, mert minden webcontainer classpathjan ott van es emiatt be sem toltodik a program.
Amugy fejlesztokornyezetnek eclipse java ee verzioja pl jo, csak market placerol meg fel kell tenni a grails es groovy plugineket.2. Ezt nem tudom. A view layert megirtuk gwt-ben, igy olyan sorrendben dobaltunk ra controlokat, amilyenben akartunk.
-
gygabor88
tag
Kb mindegyik jo, amit fentebb ajanlottak. En speciel JSF-et szeretem, mert ha ranezel egy [richfaces] vagy [primefaces] showcase-re, akkor latod, hogy nagyon bonyolult ajaxos komponenseket is berakhatsz az oldaladba 5-10 sor koddal. Hatranya viszont, hogy altalaban oriasi DOM fakat general, igy lassu lehet.
[ Szerkesztve ]
-
gygabor88
tag
-
gygabor88
tag
Na a kovetkezo a helyzet. Elolvastam a kodot is, amit fentebb linkeltel es tobb problema is van.
Eloszor is ugyanarrol a threadrol irsz es olvasol adatbazist, amelyikrol GUI elemeket modositasz. A GUI tipikusan nem thread safe, a hozza tartozo elemeket (buttonok pl) a GUI threaden kell modositani. Ezen a threaden pedig nem kellene blokkolo muveleteket pl DB kezelest inditani, mert megakad az egesz felulet tole.
A masik, hogy a ResultSet-en azutan hivod meg a next() metodust miutan meghivtad a close() metodust (executeUpdate mar nem ad vissza uj ResultSetet igy a regi lezartat fogod hasznalni tovabb) es ezert kapsz "ResultSet not open. Operation 'next' not permitted." hibauzenetet.
A harmadik pedig, hogy konnyebb dolgod lenne, ha a string osszefuzogetes helyett PreparedStatementet hasznalnal, ha mar mindenkepp JDBC-vel kell megoldani a feladatot es nem hasznalhatsz valami ORM frameworkot.
[ Szerkesztve ]
-
gygabor88
tag
válasz Taoharcos #3786 üzenetére
Az elottem szolokhoz meg annyit tennek hozza, hogy ha csak a contains()-t hasznalod egyelore, akkor ArrayList helyett erdemes lenne LinkedHashSetet hasznalnod. Ez a sorrendet is tartja es hatekonyabb a contains() hivas. + a collectionoknek adj meg generic tipust is <> koze.
-
gygabor88
tag
válasz Oppenheimer #4400 üzenetére
Remlik, hogy apache batikban mintha lett volna erre support.
-
gygabor88
tag
válasz Spam123 #4754 üzenetére
SCJP/OCJP vizsga tele van ilyenekkel, interjun is kaptam hasonlokat, szoval nem neveznem neheznek. Inkabb figyelmetlensegi hibat konnyu veteni ilyeneknel. Persze attol fugg, hogy a 4 * 90 perces eloadasaidon mit adtak le pontosan. Ha normalisan el lett mondva, hogyan mukodik a serializalas, transient, static akkor nem szabadna gondot okoznia. Bar gyanitom ez nem tortent meg, mert akkor nem raktad volna ide ki a peldat
-
gygabor88
tag
-
gygabor88
tag
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))