- 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
-
disy68
aktív tag
Nem is biztos a komplex a megfelelő kifejezés, inkább olyanra kell gondolni, ami rendszerszintű feature lenne, ami nem igazán kivitelezhető natív megoldások nélkül. Szóval ha az egész megvalósítható egy böngészőn belül is, akkor sanszosan nem lesz gond. Persze a pontos képhez érdemes megnézni mit támogat a Flutter, mik a célok és az alapján meghozni a döntést. Amit írsz az nem tűnik problémásnak. Persze kis projektnek sem :-)
-
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
CodeSource codeSource = YourMainClass.class.getProtectionDomain().getCodeSource();File jarFile = new File(codeSource.getLocation().toURI().getPath());String jarDir = jarFile.getParentFile().getPath();A fentivel megvan a jar path-ja, hozzácsapod az elvárt fájlnevet és azt próbálod beolvasni, ha nincs ilyen fájl, akkor mehet fallback-nek a resource beolvasás. Esetleg a jar mappájában keresel bármilyen .properties fájlt és mindegyiket beolvasod, de ez már részletkérdés.
-
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
Akkor sanszosan a szokásos fizzbuzz/fibonacci jellegű feladatokra lehet számítani meg ilyen oldd meg iterációval/rekurzióval. Ha esetleg ennél több energiát fektetnének a dologba, akkor valami saját példa, amiből esetleg kiderül, hogy hogyan állsz hozzá egy feladathoz, hogyan gondolkodsz, ilyesmi.
Én annyit tanácsolok, hogy gondolkodj hangosan és ha a feladatnál értelmezhető, akkor kérj egy teszt esetet (bemenet-kimenet). És hajrá
-
disy68
aktív tag
Azt hiszem itt mindenre kitérnek: rewriting history
-
disy68
aktív tag
Azért mert már egyik nagy böngésző sem támogatja őket, halott technológia.
Here are browsers that do not support Java Applet any more:
- Google Chrome
- Firefox
- Safari
- Microsoft Edge
- Opera -
disy68
aktív tag
meg kell nézni, hogy pontosan mit és hogyan csinál, hogyan volt használva a korábbi programból és hogyan a tiedből, ha ennyiből nem derül ki akkor utána nézel, hogyan lehet debug-olni, abból biztos kiderül, hogy mi okozza a problémát
aztán vagy máshogy használod vagy át/újra kell írni -
disy68
aktív tag
-
disy68
aktív tag
"ilyen esetben nem sérül a clean code elmélete?"
szerinted mi sérül?
"miért (...)"
Producer Extends Consumer Super
illetve -
disy68
aktív tag
protected static <T extends AbstractInvoiceEntity> T getInvoiceEntity(AbstractInvoiceEntity originalEntity, Class<T extends AbstractInvoiceEntity> newClass) {T newInvoice = newClass.newInstance();(...)return newInvoice;}
valami ilyesmi vagy átadsz egy factory-t, ami létrehozza a kívánt objektumot -
disy68
aktív tag
ha a fetch mód subselect, akkor n db kapcsolódó entity-vel n+1 query-t generál a hibernate, ez működik eager és fetch betöltésnél is, viszont a join fetch mód esetében 1 db query-t generál a hibernate, amivel lekéri a kapcsolódó entity-ket is, így ez instant eager betöltést jelent fetch type-tól függetlenül
én alapvetően a @NamedEntityGraph irányba mentem volna, ha nincs mód nagyobb refaktorra (bár ha ezt force-olja a projekt struktúra, akkor kb. mindegy, mert eager betöltés lesz a vége)
-
disy68
aktív tag
"ott sem volt jó egyik dolog sem az EAGER-t leszámítva, amit a google kidob erre a hibára"
aham, mint ez meg ez, amikben kifejezetten azt írják, hogy ne használj eager-t ilyen helyzetben (első 2 találat)
Vlad Mihalcea blogját amúgy tudom ajánlani, ha hibernate és/vagy jpa a témakör.
-
disy68
aktív tag
Attól függ az "alakzat" az micsoda és hogyan kerül oda. Ha megoldható, akkor CSS animációkkal/átmenettel oldd meg szerintem, amit egy class-al és css változóval (sebesség) irányítasz. A sebességet meg átadod mint globális js változó (generálod jsp-vel a lap betöltésekor). Vagy lekéred http-n keresztül egy végponton.
Egy minta css transition-re.
-
disy68
aktív tag
Nem feltétlen ez lenne az első, amit javasolnék bárkinek is. Vannak hasznos részei, amikre alapulnak implementációk, amikkel szinte biztos találkozik az ember, ha ezekre a funkcionalitásokra lesz szükségük (xml/json feldolgozás, persistence, servlet). Annyit mindenképpen érdemes tudni, hogy mi ez és milyen ajánlásai vannak mely témakörökben.
Ennek ellenére én inkább javasolnám a Spring keretrendszert kezdésnek, ami egy elég naprakész és sokak által használt megoldás, akár csak web backend (és frontend), middleware vagy akár service és cli alkalmazásokhoz. Rengeteg elérhető anyaggal és nagy közösséggel mögötte.
Előtte - ha még nem foglalkoztál volna vele - a git használatát érdemes elsajátítani és alkalmazni. Valamint a java ökoszisztémához valamilyen dependency manegement eszköz használatát (maven/gradle) se árt ismerni. Utóbbiakkal a Spring kapcsán fogsz találkozni mindenképpen.
-
disy68
aktív tag
"Valami maven wrappert írt, hogy be kell rakni a projektbe, az benn is van."
docker-maven-plugin? hogy néz ki hozzá a konfig a pom.xml-ben?"Igen rákerestem, a java írja, hogy nem jó a jar."
ha rákeresel a hibaüzenetre és hozzácsapod, hogy docker, akkor láthatod, hogy másoknak is volt ilyen problémájuk, a legtöbb esetben az argumentum átadással volt a gond, ami miatt a
JAR_FILEváltozó értéke üres, így a copy nem fut le jól"Megnéztem az argumentumot, de nem találja, mivel a docker linux fájlrendszerében keresi, nem az igaziban."
wut?
-
disy68
aktív tag
A docker image-et hogyan hozod létre? Használsz-e maven/gradle plugint? Rákerestél-e a hibaüzenetre? Nézted-e hogyan kell argumentumot használni a dokumentációban?
-
disy68
aktív tag
html parser az szerintem az a kategória, aminél teljesen mindegy miben írja az ember, mert a legtöbb erre is alkalmas nyelvhez/infrastruktúrához van kész lib, java alatt is pont ugyanolyan egyszerű a html parse, mint akármilyen másik nyelven, ha meg selenium kell, akkor pláne mindegy
szerintem a döntés itt csak azon múlik, hogy mit ismer az ember, miben fejleszt szivesebben/gyorsabban/etc
-
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
A JVM lefoglal magának bizonyos méretű memóriaterületet, amit ő fog kezelni különböző dolgokra (lásd Memory Management). Xmx a maximum, amit lefoglalhat, de ha nincs rá szükség nem fogja.
A dokumentációban olvashatsz még részletesen a memória kezelés finomhangolásáról.Ahogy a Xms és Xmx kapcsolókról is.
Pl. Xms:
"Default Values
If you do not set this, the minimum Java heap size defaults to (depending on which mode you are running):
-servermode: 25% of the amount of free physical memory in the system, up to 64 MB and at least 8 MB
-clientmode: 25% of the amount of free physical memory in the system, up to 16 MB and at least 8 MB If the nursery size is set with-Xns, the default initial heap size will be scaled up to at least twice the nursery size. " -
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
Csak zárójelben. Én egy junior tréning programmal kezdtem egy multinál annó, ahol volt egy gyakorló feladat, ahol kvázi excel jelleggel kellett tudni kezelni cellákat (a cellának lehetett konkrét értéke vagy más cellákra is referáló függvénye). Ekkor futottam bele, hogy java 8-as verzióval bekerült a Nashhorn nevezetű Javascript Engine a JRE-be, amivel elég egyszerűen lehetett kiértékelni az egyszerűbb műveleteket. A js engine JVM byte-kódot generál. Nem használnám production-ben, pláne, hogy a 11-es verzióval deprecated, de érdekes volt, hogy van ilyen is.
-
disy68
aktív tag
Nem írsz arról, hogy a MockMvc-t hogyan használod (a test class hogyan van annotálva). Ha
@SpringBootTestannotációval használod, akkor explicit be kell konfigurálni a security-t.
részlet a korábbi baeldung cikkből:@Autowiredprivate WebApplicationContext context;private MockMvc mvc;@Beforepublic void setup() {mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();}(...)De én továbbra is TestRestTemplate használatát javaslom, ehhez itt egy kis egyszerű minta.
A DB-s problémád pedig kicsit zavaros, az az "application.properties" részlet meg egy controller post methodja..
-
disy68
aktív tag
Ok, azt hiszem értem mi a félreértés. Ezt írtad: "maradjon futva a junit tesztek lefutása után". Ebből én unit testre asszociáltam és erről is beszéltem.
Erősen kétlem, hogy támogatná bármilyen test framework alapból, hogy utána fusson tovább az alkalmazás, ami a tesztek futtatása miatt indult.
A springboot junit test az meg nem csal, hanem azt csinálja, amit "mondasz" neki. Hogyan hívod most a tesztekben a "rest szolgáltatásokat"? Itt egy baeldung a témakörben. Meg egy TestRestTemplate részletesebb.
-
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
Alapból nem kéne külön beállítani, ha tud kapcsolódni, akkor meg tudja határozni. Én első körben arra tippelnék, hogy a kapcsolat se épül fel vagy nincs a db létrehozva, akkor is jöhet ez a hiba. A két db amúgy különböző? Van-e mintakód? Próbáltad-e esetleg valami in-memory db-vel (pl. h2/hsql)?
(#10975) venic
Melyik porton futna? Ha 80-as, akkor a skype esetleg lehet a ludas. De valami hibaüzenet nem ártana
-
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
Gondolom ezt úgy kell elképzelni, mint egy relációs adatbázis 3 tábláját. Vannak rekordok valami azonosító alapján kapcsolva egymáshoz.
Csinálsz a mezők alapján osztályokat. A kapcsolatok gondolom szülő gyerek (egy szülő több gyerek), ilyen esetben a szülő osztályban lesz egy kollekció, ami gyerekeket tartalmaz.
Beolvasod őket a fájlokból, majd az azonosítók alapján a gyerekeket belerakod a szülőkbe.
-
disy68
aktív tag
Írnak többmindent is, de ez a válasz, ahol a generált kódot megnézte a válaszoló.
A String osztály java alatt immutable, azaz értékadás után az objektum értéke nem változtatható. E miatt a String összefűzés
String concat = "first" + " " + "last";
4 String objektum létrejöttét jelentené.Erre rakták bele java 8 óta a fordítóba, hogy ahol ilyen található, azt optimalizálja. A String összefűzéseket helyettesíti StringBuilder-rel, ezért nem fog létrejönni annyi String objektum.
Vannak még egyéb String-ekkel kapcsolatos optimalizációk, amiket a fordító/futtató környezet csinál/alkalmaz, pl. a válaszokban említett internal pool, ahol kvázi cache-elve vannak String objektum példányok, java 8-as updattel jött a G1 GC-be, hogy tud deduplikálni String-eket. Java 9-ben pedig jött egy olyan, hogy azokat a szövegeket, amiket lehet, ISO-8859-1/Latin-1 kódolással tárolja a JVM UTF-16 helyett (1 vs 2 byte/karakter).
>javap -c Test Compiled from "Test.java" public java.lang.String makinStrings(); Code: 0: ldc #5; //String Fred 2: astore_1 3: new #6; //class java/lang/StringBuilder 6: dup 7: invokespecial #7; //Method java/lang/StringBuilder."<init>":()V 10: aload_1 11: invokevirtual #8; //Method java/lang/StringBuilder.append: (Ljava/lang/String;)Ljava/lang/StringBuilder; 14: ldc #9; //String 47 16: invokevirtual #8; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 19: invokevirtual #10; //Method java/lang/StringBuilder.toString:()Ljava/lang/String; 22: astore_1 23: aload_1 24: iconst_2 25: iconst_5 26: invokevirtual #11; //Method java/lang/String.substring:(II)Ljava/lang/String; 29: astore_1 30: aload_1 31: invokevirtual #12; //Method java/lang/String.toUpperCase:()Ljava/lang/String; 34: astore_1 35: aload_1 36: invokevirtual #13; //Method java/lang/String.toString:()Ljava/lang/String; 39: areturn
-
disy68
aktív tag
Én a részemről 13"-on megőrülnék, az szerintem nagyon kicsi. A többi kb. attól függ mit fejlesztesz, mekkora az alkalmazás és a kódbázis. Valamint lokál környezetben mennyi adattal szaladgál az alkalmazás.
A kód az mindenképpen ssd-n férjen el, hogy az ide tudja a fájlokat gyorsan indexelni, én ajánlanám a 256GB-ost. Proci az a build-nél fontos, core i7 alá nem mennék. Egy giga monolith-nél persze sose lesz túl gyors a build, de nem mindegy, hogy 15 perc vagy 45 perc. A memória is attól függ kategória, 1-2 kis microservice-nek elég lehet 8 giga ide-vel egyebekkel, de én is inkább a 16-ot lőném be iránynak.
Amúgy meg ha munkaeszköz, akkor vedd meg a legjobbat a büdzséd szerint. Meg ha nem akkor is
-
disy68
aktív tag
-
disy68
aktív tag
"Az XML vs Java configgal kapcsolatban az a problémám, hogy a konfiguráció karbantartásához/módosításához kódolás kell, CI pipeline."
Ez a konfiguráció nem ugyanaz, mint az alkalmazáshoz tartozó akár környezetenként változó konfig, pl url-ek. Ha itt kell módosítani bármit - magyarul az alkalmazás context-je változik -, akkor újra kell buildelni az alkalmazást, függetlenül a konfiguráció típusától. Innentől ez nem üzemeltetési kérdés, hanem fejlesztés.
Az átláthatóság szubjektív dolog, láttam már 30-40 xml-ből felépülő Spring konfigot, ami nekem minden volt csak nem átlátható, viszont volt kolléga, aki azt preferálta. Azt hittem ez csak az ő fétise, de akkor vannak még mások is ezen a vonalon :-)
"Lombokot szerintem alapvetően pár olyan dologra érdemes használni, ami fordításkor generál le bojlerplét kódot. Ezen az alapon semmilyen nem Java JVM nyelvet nem lenne szabad használni."
Semmi köze a kettőnek egymáshoz, ne keverd a dolgokat. A lombok által generált kódban nem bíznak sokan, valamint java update esetében okozhat/okozott gondot. Van pár issue-juk is. Ettől függetlenül, ahol lehet én is preferálom a használatát, de ettől még megértem, ha máshogy dönt valaki. -
disy68
aktív tag
Szerintem érdemes ismerni mindkettőt, de a maven-t mindenképp. Kezdőként elég az egyik is. A Gradle rugalmasabb, a néhanapján felmerülő cache problémákat szopás kiszűrni. A maven kevésbé rugalmas - pluginekkel persze lehet bármit - de régi motoros, szerintem minden problémára van megoldás (plugin) hozzá. Gradle esetében találkoztam olyannal, ami nincs vagy csak részben volt meg a maven-es megoldáshoz képest.
-
disy68
aktív tag
-
disy68
aktív tag
A körkörös függőség tervezési hibának hangzik. Több függőségnél pedig facade vagy egyéb wrapper megoldások is játszhatnak. Ezt is mondhatjuk workaround-nak, de én még mindig úgy vagyok vele, hogy inkább lássam a konstruktornál mi a függősége egy osztálynak, semmint annotációkat nézegetni. Én spring-nél is jobban preferálom az explicit java config-ot, mintsem a package scan-t meg annotációkat (saját kódnál, nem lib-eknél). Ha van egy konkrét config, ami alapján látom, mi lesz a context, mi-mi alapján épül fel, az nekem mindig szimpatikusabb volt.
-
disy68
aktív tag
-
disy68
aktív tag
DTO: data transfer object
ez lehet bármilyen két komponens közötti kommunikációban szereplőDAO: data access object
ez egy olyan objektum, amin keresztül adatokat érünk el/tudunk manipulálni, általában adatbázissal a túloldalon - az objektum elrejti a DB részleteketrepository:
a DAO-hoz hasonló pattern, inkább domain centrikusabb, az adat objektumokat entity-nek hívjuk ebben az esetben
A rétegek szervezése/szeparálása fontos dolog, nehéz elsőre ráérezni, fog kelleni hozzá némi tapasztalat. Annyit szerintem mindenképp jegyezz meg most, hogy nincs semmi kőbe vésve. Vannak ajánlások, de mindig az adott problémához keressük a megoldást, nem pedig valami "best practice-t" erőszakolunk rá mindenre.Amennyiben egy egyszerű crud a cél, akkor nem is feltétlen szükséges külön entity/dto/pojo-kat készíteni a különböző rétegekhez, mert fölöslegesen kéne transzformálgatni mindent többször is.
Ha a crud-nál tovább lépünk vagy más jellegű a probléma, akkor hasznos lehet különválasztani a rétegeket jobban.Amúgy olvass még kicsit utána funkcionális programozásnak, immutability-nek - java 8 óta java-ban is van hozzá támogatás - szerintem árnyalja majd a képet.
A Spring JavaEE vs sima java témakörben pedig én javaslom a keretrendszer használatát, ha máshoz nem is, de a dependency injection miatt mindenképpen.
-
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
Egyrészt ez nem legál, másrészt semmi köze a java-hoz.
@(#10258) szbalogh
Nekem úgy tűnik, hogy a UI kirajzolása közben történik valami probléma, ami a kód ismerete nélkül elég sokminden lehet. Nem tudom melyik java verzióval fut jelenleg az alkalmazás, de szerintem próbáljátok meg régebbi java verzióval futtatni. -
disy68
aktív tag
-
disy68
aktív tag
-
disy68
aktív tag
"Mert az feltételezem, hogy nem windowsos docker a live.
Akkor inkább már VBox-ban ubuntu/debian és azon docker."Lehet én értem félre, amit írsz, de Windows-ra nincs natív docker. A Docker Toolbox és a Docker for Windows - bár ez próbál natívnak tűnni - is egy virtuális linuxon fut, szóval sok előnye nincs használni egy dedikált linux vm-et, hacsak az embernek nincs szüksége valami linux specifikus eszközre. A local környezet meg soha nem lesz olyan, mint a production, ehhez úgyis illik egy teszt környezet, ami minél jobban közelít a production-höz.
De persze a fejlesztő dolga mit használ.
-
disy68
aktív tag
Java alatt az integer/short/akármi az egy szám reprezentáció számrendszertől függetlenül. Az alapértelmezett számrendszer a toString-nél a 10-es.
Integer.toString(int i, int radix)int binary = 0b0010;
int hexa = 0x0ef2;
int sum = binary + hexa;
System.out.println(sum);
System.out.println(Integer.toString(sum, 2));
System.out.println(Integer.toString(sum, 8));
System.out.println(Integer.toString(sum, 16));szerk: Amúgy a java elnevezési konvenciókról olvass még kicsit..
-
disy68
aktív tag
Én nem használnék ma már sha-1-et sima sóval (pláne nem egy statikus értékkel). Szerintem használj minimum bcrypt-et. Itt olvashatsz egy OWASP ajánlást jelszó hash tárolásról/kezelésről. Bcrypt minta. Amúgy a Spring Security is tartalmaz bcrypt-hez util osztályt.
Session kezelést is rábíznám a Springre, biztos tudnak a Vaadin-nal együttműködni, de velük nincs konkrtét tapasztalatom.
-
disy68
aktív tag
-
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ő.
-
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.
-
disy68
aktív tag
És java 9-től már private metódusok is lehetnek interface-ekben a default implementáció mellett.
-
disy68
aktív tag
-
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, igen
Solid-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) -
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). -
disy68
aktív tag
WatchService API-t tudod erre használni.
-
disy68
aktív tag
Előfordul persze, hogy megnő ez-az
.Metódusok elnevezéséhez további segítségem nincs, de osztályokhoz, mindig jól jön az enterprisify.
-
disy68
aktív tag
-
disy68
aktív tag
A másik diák szerintem pont itt tette fel a kérdést.
-
disy68
aktív tag
-
disy68
aktív tag
Java 8 alatt van lehetőség metódus referenciát átadni. Akár az alábbihoz hasonlóan is elindulhatsz:
public class MethodRuntimeChecker {
public static void main(String[] args) {
QuickSorter sorter = new QuickSorter();
int[] array = getNumbers(10_000);
System.out.println(mesureRunTimeNano(sorter::sort, array) + " ns");
System.out.println(mesureRunTimeMilli(sorter::sort, array) + " ms");
}
public static long mesureRunTimeNano(Function<int[], int[]> intSorter, int[] toBeSorted) {
long start = System.nanoTime();
intSorter.apply(toBeSorted);
return System.nanoTime() - start;
}
public static long mesureRunTimeMilli(Function<int[], int[]> intSorter, int[] toBeSorted) {
long start = System.currentTimeMillis();
intSorter.apply(toBeSorted);
return System.currentTimeMillis() - start;
}
private static int[] getNumbers(int count) {
int[] numbers = new int[count];
Random random = new Random();
for (int i = 0; i < count; i++) {
numbers[i] = random.nextInt(count);
}
return numbers;
}
} -
disy68
aktív tag
-
disy68
aktív tag
Ennyiből ugyan nem látszik mi a hiba, de szerintem az elérési utakkal lehet gond.
Csináltam egy kis minta projectet (maven project), két "kép cserélővel", az egyik a resource mappából szedi a képeket, a másik pedig külső könyvtárból.
Ha nincs jól megadva az elérési út a jelenség az általad is leírttal egyezik. Annyit még változtattam, hogy egységesen kezeljem a két változatot, hogy az ImageIcon-t java.net.URL paraméterrel példányosítom.
-
disy68
aktív tag
-
disy68
aktív tag
Helló, jó kis probléma

Hirtelen olyat találtam, hogy:
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class Main {
private static final String UTF_8 = "UTF-8";
private static final String INPUT_MESSAGE = "Írj be egy betűt: ";
public static void main(String[] args) throws UnsupportedEncodingException {
try (Scanner scanerObj = new Scanner(System.in, UTF_8);
PrintStream out = new PrintStream(System.out, true, UTF_8)) {
while (true) {
out.print(INPUT_MESSAGE);
out.println(String.format("key: '%s'", scanerObj.next().charAt(0)));
}
}
}
}Ezzel helyesen kezeli a scanner által utf-8-nak beolvasott betűket, viszont az INPUT_MESSAGE-et nem. Amit találtam még, hogy indítani a -Dfile.encoding=IBM437 (nálam ez az alapértelmezett kódlap chcp parancs megmondja) paraméterrel, bár ezzel nem kísérletezgettem szóval nem tudom működne-e helyesen.
-
disy68
aktív tag
Itt a leírás az engedélyezéshez. A lényeges az oldalon, hogy azt az url-t kell felvenned, ahol az applet megtalálható. Ez nem feltétlen ugyanaz, mint amit látsz a böngésző címsorában. A yatzy játék appletje a http://game03.playforia.net címről tölt be, ezt próbáld meg felvenni. De ez off szerintem itt, ez inkább üzemeltetéssel kapcsolatos problem.
És zárójelben még annyit, hogy szerintem keress inkább olyan oldalt, ahol nem applet-es játékok vannak, mert előbb utóbb egyik böngésző sem fogja az appleteket támogatni

-
disy68
aktív tag
Szerintem egy kicsit bővebben írd le, milyen játék, hol fut (böngésző/applet vagy asztali alkalmazás)? Mit írtál és milyen java console-ba (böngészőnél javascript console elérhető ugyebár)?
Amúgy a gondolatolvasó vénám azt mondatja, hogy Vezérlőpult (nézetnek kis ikonok) -> Java (vagy <java telepítési hely>/javacpl.exe) elindít ott security fül, lentebb állítod a szintet és ha valóban böngészős valamiről van szó, akkor hozzáadod a kivételekhez.
-
disy68
aktív tag
-
disy68
aktív tag
Az equals függvényt hashCode nélkül nem írjuk felül (és amikor felülírjuk használjuk az @Override annotációt)! Mindkét függvény az Object osztályból jön, ami minden osztály őse. Olvasnivaló a témához.
-
disy68
aktív tag
Tudom ajánlani a Google Java Style Guide-ot, szerintem korrekt. Jelenlegi projekten is ezt használjuk, annyi változtatással, hogy a sorszélesség 100 helyett 120.
(#9088) donathl
Ha kódot raksz be, akkor ne képként légyszi. Amúgy neked pláne ajánlom a linket. Könnyezik a szemem ezektől az ékezetes magyar nevektől
-
disy68
aktív tag
Pölö a lengyel forma használatával. Avagy a fordított lengyel forma használatával.
-
disy68
aktív tag
Természetesen a fejlesztő a devops-os a maga birodalmában
így neki illik tisztában lennie ezekkel. -
disy68
aktív tag
Persze, mindenképpen. Nem tudom ki illetékes itt ez ügyben.
(#9043) emvy, (#9044) Aethelstone
A környezeti változók állítgatása nem éppen átlagfelhasználói tevékenység, hanem inkább üzemeltetési. Aki ilyen műveleteket akar csinálni, az szerintem nem árt, ha tisztában van a hogyanokkal, különben hamar pórul járhat. Ilyen szinten meg ne akarjon egy telepítő megcsinálni mindent. Vonatkozva jdk-ra és szerintem. -
disy68
aktív tag
Azt nem tudom mi az oka, hogy nem rakják bele a path beállítást a jdk telepítőbe, de az lenne a tippem, hogy azért, mert fölösleges. Egy átlag felhasználónak nincs rá szüksége, egy fejlesztő meg úgy alakítja a saját környezetét, ahogy neki tetszik.
A java_home környezeti változó beállítása amúgy is egy kihagyható lépés, azt azért szokás beállítani, hogy ha frissíti az ember a jdk-t, ne kelljen a Path-ben bogarászni, hanem csak a környezeti változót kelljen átírni. IDE-kben, egyéb helyeken is lehet magára a java_home-ra referálni általában, így könnyebben karbantartható.
-
disy68
aktív tag
Mivel nem írod, hogy pontosan mivel is próbálkozol, a lépések nagyvonalakban:
- JDK telepít
- környezeti változónak beállítod a telepítés helyét:
- pl. JAVA_HOME: C:\Program Files\Java\jdk1.8.0_73
- felveszed a Path környezeti változóhoz a binárisokat:
- pl. %JAVA_HOME%\binProgram:
package cli;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello dude");
}
}Parancssorban megnézed jó-e a java beállítás:
- java -version
> java version "1.8.0_101"
> Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
> Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)Majd compile:
- javac cli\Hello.javaÉs végül a futtatás:
- java cli\Hello
> Hello dude -
disy68
aktív tag
Lehet csk nekem, de nem egészen egyértelmű. Ez a helper osztály nekem egy service-nek hangzik, aminek van egy vendor dependency-je. A service-nek ezt a dependency-t illene konstruktorban átadni, mivel a funkcionalitásához nélkülözhetetlen (azaz ne is jöjjön létre példány anélkül, hogy működne). Nem tudom milyen az architektúra, de ha Java EE, akkor van context. A service valószínűleg valami singleton bean, amit újra lehet hasznosítani (figyelemmel a szálkezelésre, ha szükséges). Maga a vendor object is egy bean lesz ebben az esetben, amit szintén át lehet adni bárminek, ami igényli.
-
disy68
aktív tag
Kelleni fog még a jackson-datatype-jsr310 vagy a jackson-datatype-jdk8 modul is a LocalDate-hez.
A json mezőnévnek pedig nincs köze a konstruktor paraméter neveihez, hanem a getterek nevei alapján készülnek. Ha szeretnéd megtartani a getter nevét, viszont más nevet használnál a generált json-ben, akkor használhatod a @JsonProperty annotációt. Arra figyelj, hogy melyik jackson verziót használsz (1.x <-> 2.x).
pl.
public String getSomething()-> mezőnév: something@JsonProperty("somethingelse")-> mezőnév: somethingelse
public String getSomething() -
disy68
aktív tag
Enterprisify megvan?

-
disy68
aktív tag
Ha az ember még nincs is olyan helyzetben, hogy mással együtt kell dolgoznia egy kódbázison, de komolyan gondolja a programozást, akkor mindenképpen gondolni kell a jövőre. Jobb megszokni az angol kifejezések használatát még az elején, mintsem később kelljen egy rossz berögződésen korrigálni.
-
disy68
aktív tag
Talán margarinon.

Bocsánat. -
disy68
aktív tag
Lehet én nem értem a kérdést. Ha magára a request-response szerkezete a kérdés, akkor innen válogathatsz.
A formátum, mint JSON is eléggé adja magát, bár használhatsz xml-t is, többletmunkát nem okoz egyik sem java oldalon.
Ha a "betenni-kivenni" azt jelenti, hogy perzisztálnád az adatokat, amiket szűrni szeretnél egyszerűen, akkor valamilyen adatbázis használata is célszerű lehet.
Szóval az induláshoz a kulcsszavak
Spring Boot, @Restcontroller, Jackson, Hibernate, MySQLis lehetnek akár.Persze ha te üzeneteket fogadsz, akkor érdemes lehet autentikáción is gondolkodni.
-
disy68
aktív tag
Java esetében a package egy magasabb egység. A Package-ek logikailag összefüggő egységeket tartalmaznak (interface, class, stb.). A base package általában az adott cég domain-je, plusz az adott alkalmazás neve.
Pl. FancyStuff alkalmazás eseténél org.fancyltd.fancystuff
Magyarul rád van bízva mit használsz, de azért használj valami egyedit.
-
disy68
aktív tag
-
disy68
aktív tag
Ú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?:))
- Szeged és környéke adok-veszek-beszélgetek
- Mazda topik
- Melyik tápegységet vegyem?
- Mibe tegyem a megtakarításaimat?
- Gyúrósok ide!
- Milyen házat vegyek?
- Még 2026-ban megérkezik a karcsúsított Commodore 64 Ultimate
- Retro teló rajongók OFF topicja
- Házimozi belépő szinten
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- 100.000 ft tól elvihető RÉSZLETRE Lenovo Pro 7 16IRX9H 4090
- G.SKILL Trident Z5 Neo RGB 32GB (2x16GB) 6000MHz CL30 - Alza élettartam garancia
- Palit GeForce RTX 4070 Ti SUPER GamingPro OC WHITE 16GB - Alza garancia 2027.11.10 - BESZÁMÍTOK
- PowerColor Radeon RX 7900 XTX RED DEVIL OC 24GB - Garancia - BESZÁMÍTOK!
- Új, Gamer félgép - GIGABYTE B650 EAGLE AX + Ryzen 7 7800X3D + Corsair 2x16GB DDR5 6200MHz
- VADIÚJ HP 17 Ryzen 5 7520U 16GB 512GB 5500Mhz 17" FHD 2026.11.12 gar
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Apple iPhone 17 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! MSI B450M R5 5600 16GB DDR4 512GB SSD RX 6650 XT 8GB Rampage SHIVA FSP 650W
- HP EliteBook 745 G6 14" Ryzen 5 pro 3500U - 7 pro 3700U - 16GB RAM, SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
.
![;]](http://cdn.rios.hu/dl/s/v1.gif)

