A Java Programozás Alapjai és a CDI Bevezetése Példákkal

A Java programnyelv már lassan 30 éve a legnépszerűbb programozási nyelv a világon. Ennek oka, hogy egy objektumorientált, több platformon is használható és értelmezhető kódot készíthetünk a Java programozás segítségével. Cikkünkben ismertetjük a legfontosabb jellemzőket, a Java alapjait, a fejlesztőkörnyezet beállítását, valamint mélyebben is belemerülünk a Java EE világába, azon belül is a CDI (Contexts and Dependency Injection) rejtelmeibe.

Mi az a Java Programozási Nyelv és Mire Használják?

A Java programnyelv egy általános célú, objektumorientált programozási nyelv, amelyet eredetileg a Sun Microsystems fejlesztett ki az 1990-es években. A Java a JVM (Java Virtual Machine) segítségével működik, amely virtuális környezetet biztosít a Java programok futtatásához.

Mire használják a Java programozást? A Java egy univerzális programozási nyelv. Népszerűsége továbbra is az egyik legnagyobb erőssége. Számos területen alkalmazzák, például:

  • Webalkalmazások fejlesztése: A Java nyelv és a hozzá tartozó keretrendszerek, például a Spring Framework segítségével lehetőség van webfejlesztésre.
  • Asztali alkalmazások készítése: A JavaFX keretrendszer lehetővé teszi asztali alkalmazások fejlesztését Java programnyelven.
  • Mobil applikációk fejlesztése: A Java programozás alapja az Android alkalmazások fejlesztésének.
  • Játékfejlesztés: Néhány játékfejlesztő használja a Java programnyelvet játékok készítéséhez, különösen olyan egyszerűbb játékokhoz, amelyek nem igényelnek nagy teljesítményű grafikát.
  • Adatbázis-kezelés.

A Java egyben többplatform is, azaz különböző alkalmazások és programok létrehozására használható. Skálázható, és számos fejlesztéshez használható, mint például Android alkalmazások, Java webalkalmazások, szoftvereszközök, kiszolgálóalkalmazások a pénzügyi szolgáltatási iparban, kereskedelmi alkalmazás, beágyazott, Space, Big Data technológiák, nagyfrekvenciás kereskedési terület, tudományos alkalmazások stb.

A Java Programozás Működése Rövidem

A Java programozás működése röviden a következő lépésekből áll:

kétütemű motorok üzemanyaga

  1. Kódolás: Java programnyelven írja meg a programot. A Java egy strukturált, objektumorientált nyelv, amelynek szintaxisát könnyen megértheti, különösen ha már ismer más programozási nyelveket.
  2. Fordítás: A Java forráskódját egy fordítóprogrammal (javac) fordítják le Java bájtkódra, ami egy köztes nyelv.
  3. Java Virtual Machine (JVM): A Java bájtkódot a Java Virtuális Gép (JVM) értelmezi és futtatja.
  4. Futtatás: Miután a Java bájtkódot a JVM értelmezte, a program fut.
  5. Hibakeresés és javítás: Amennyiben hibákat tapasztal a programban, vissza kell térnie a forráskódhoz, hogy kijavítsa azokat.

Ez a folyamat lehetővé teszi a Java programok platformfüggetlen futtatását, ami azt jelenti, hogy ugyanazt a Java alkalmazást lehet futtatni különböző operációs rendszereken anélkül, hogy a forráskódot módosítani kellene.

Java Alapok Kezdőknek: Hogyan Kezdjünk Hozzá?

A Java programozás elsajátítása szórakoztató és egyszerű lehet, ha csak ismeri és alkalmazza a megfelelő módszereket. Íme néhány lépés, hogyan kezdjen hozzá:

  1. Telepítse a Java Development Kit (JDK) szoftvercsomagot: A JDK tartalmazza mindazt, amire szüksége van a Java programok írásához, fordításához és futtatásához. Ez tartalmazza a Java alkalmazások futtatásához, valamint azok készítéséhez, fordításához szükséges programozói eszközöket is (tehát a JRE-t nem kell külön letölteni, a JDK tartalmazza).
  2. Keressen egy Java fejlesztőkörnyezetet (IDE): Bár lehet Java programokat írni egyszerű szövegszerkesztőkkel is, egy speciális fejlesztőkörnyezet (pl. IntelliJ IDEA, Eclipse vagy NetBeans) használata sokkal hatékonyabb lehet.
  3. Tanulja meg a Java alapjait: Ismerkedjen meg a Java nyelv alapjaival, például a változókkal, adattípusokkal, vezérlőutasításokkal (pl. if-else, switch), ciklusokkal (pl. for, while), függvényekkel és objektumokkal. Fontos, hogy kulcsfontosságú az alapoktól kezdeni. Itt vannak az alapok, amelyekkel érdemes kezdeni:
    • Java szintaxis: Ez a Java-ban használt szabályok, például kulcsszavak, operátorok, ciklusok, változók és osztályok halmaza. Meg kell tanulnia őket, mit jelentenek és hogyan működnek.
    • Objektum-orientált programozás (OOP): Nagyon fontos, hogy ne csak tanulmányozza ezt a témát és gyakorolja is. Néhány altémája az osztályöröklés, az adatok absztrakciója és az adatok beágyazása.
    • Java gyűjtemények: A Java interfészek és osztályok készletét kínálja a gyűjtemény reprezentálására. A Java teljes megértéséhez ismernie kell ezeket a gyűjteményeket.
    • Java kivételek: A Java-kivételek sokkal könnyebbé teszik a hibaelhárítást. Ezek a kivételek a „java.lang.Exception” kód alatt találhatók. Ez az egyik alapvető dolog, amit kezdőként tudnia kell.
    • Bemeneti/kimeneti adatfolyamok: Ezek azok a műveletek, amelyeket a Java befolyásol. A „System.out.println()” jelentésének ismerete segít jobban megismerni a témát.
    • Algoritmusok és rejtvények: Itt megismerheti a válogatási és keresési módszereket.
    • Java Multithreading: Ez az egyik legnehezebben megtanulható dolog a Java programozásban kezdőknek, de a Java nyelv egyik leghasznosabb funkciója, amely lehetővé teszi több szál (kis részfolyamatok) egyidejű feldolgozását.
  4. Gyakoroljon a kis példaprogramok írásával: Írjon egyszerű Java programokat, például olyanokat, amelyek kiírják a „Hello, World!” üzenetet, vagy kiszámolják két szám összegét. Vegyük azt a nagyon egyszerű kis Java programot, amiben kiírjuk a parancssori argumentumait a programnak.
  5. Kísérletezzen az API-kkal és keretrendszerekkel: Tanulmányozza a Java API-kat (Application Programming Interface), és ismerje meg a gyakran használt Java keretrendszereket, például a Java Standard Edition (Java SE) API-jait.
  6. Olvassa el a Java dokumentációt és tanuljon másoktól: A hivatalos Java dokumentáció rendkívül hasznos forrás lehet a Java nyelv és API-k mélyebb megértéséhez.

Fejlesztőkörnyezet Beállítása és Használata (IntelliJ IDEA Példa)

Az IntelliJ IDEA indításakor a Welcome ablak jelenik meg. Itt kezdetben néhány beállítást testre szabhatunk (pl. világos / sötét téma), illetve a későbbiekben itt láthatjuk a korábban megnyitott projektjeinket. Projekt létrehozásakor választhatunk sok sablon közül, de létrehozhatunk egyszerű Java projektet is. Ezután a Next gombra kell párszor kattintanunk, majd megadhatjuk a projekt nevét, illetve a lokációt, hogy hova mentse a projektet. A projekt létrehozása után a bal oldalon láthatjuk a projekt struktúráját.

Új fájl létrehozásához kattintsunk jobb klikkel az src mappára, majd new -> Java class. Ide írjuk be az osztály nevét. Ha szeretnénk futtatni a programunkat, akkor először meg kell keresnünk a futtatható osztályunkat (amiben van main függvény), majd a bal oldali menüben jobb klikk az adott osztályra, és ott válasszuk ki a run opciót. Ekkor az alsó sávban megjelenik egy Run menüpont is, ahol a futtatás eredményét láthatjuk. Ha a felhasználótól kérünk be adatot, akkor azt is itt tudjuk megadni, ezeket zöld színnel jelzi a környezet. Ha már egyszer lefuttattuk a programunkat, akkor a rendszer létrehozott hozzá egy konfigurációt, ezt a jobb felső sarokban látjuk. Ha rákattintunk, akkor tudjuk szerkeszteni is az "Edit configuration" opcióval. Itt argumentumokat is megadhatunk a programnak (a program arguments mezőbe beírva).

Hibakezelés és Hibajelzések

A rendszer a program írása során folyamatosan ellenőrzi a programkódunkat, és jelzi, ha hiba található benne.

Karakterek és adattípusok Javában

  • Fordítási hiba: Ha ilyen van, akkor a programunkat nem lehet lefordítani.
  • Warning: Ha ilyen van, akkor a programunk fordítható és futtatható, de nagy valószínűséggel rosszul működik, a javításuk mindenképp megfontolandó. Létezik "weak warning" is, amely általában kódminőséggel kapcsolatos problémákra figyelmeztet.
  • Typo: Ha valamit elgépelünk, akkor erre szintén figyelmeztet.

A hibákat jelzi a kód színezésével is, illetve a jobb oldali görgetősávban is. Ezekre javításokat is tud javasolni az esetek nagy részében. Ehhez a kurzorral menjünk az adott hibás kódrészletre, majd nyomjuk meg az Alt+Enter billentyű kombinációt.

Például, egy egyszerű program a következőképpen írhat ki üzenetet:

System.out.println("Hello! System.out.println("Hello " + nev + "!");

A Java programozási alapok elsajátításakor érdemes egyszerű feladatokkal gyakorolni. Például, írhat egy olyan futtatható Java osztályt, amely a parancssori argumentumokat fordított sorrendben írja ki, ráadásul mindet visszafelé! Kommentezze a kódot javadoc kommentekkel, és generálja ki a dokumentációt! A függvények törzsét kell elkészíteni!

  • Készítsen egy statikus, lustalkodas nevű függvényt. A függvény két paramétert kap: azt, hogy hétköznap van-e, és azt, hogy vakáció van-e.
  • Készítsen egy statikus, utolsoSzamjegyEgyenloseg nevű függvényt. A függvény két számot vár.
  • Készítsen egy statikus, utolsoSzamjegyEgyenlosegN nevű függvényt. A függvény három számot vár (a, b, n). Térjen vissza igazzal, ha az első két szám utolsó n számjegyei megegyeznek (az utolsó 3.
  • Készítsen egy statikus, honap nevű függvényt, ami egy számot vár. A függvény térjen vissza az adott hónappal szövegesen (ékezet nélkül), ha a megadott szám 1-12 között van.
  • Készítsen egy statikus, primek nevű függvényt, ami egy számot vár.

Fejlesztői környezet beállítása

Hibakeresés (Debugging) a Java Alkalmazásokban

A legegyszerűbb lehetőségünk arra, hogy megfigyeljük a programunk működését futás közben, ha egyes sorokra breakpointot teszünk, majd lépdelve a végrehajtás menetén megpróbálunk rájönni, hogy mi is lehet a hiba, ami miatt a programunk nem jól működik. Alul a Debug fülön láthatjuk a program futásának aktuális állapotát. A bal oldalon látjuk, hogy éppen hol jár a programunk futása: most Macska osztály main függvényében vagyunk, a fájl 4. sorában. Ha egy adott függvényben vagyunk, amit más függvényből hívtunk, akkor itt a hívási hely is látszik. A jobb oldalon láthatjuk a változóink aktuális értékét, illetve ezeket módosítani is tudjuk (jobb kilkk). Vagy akár plusz kifejezéseket is hozzáadhatunk a + ikonra kattintva.

Drift autó: Kezdő útmutató

A breakpointokhoz feltétel is megadható, melynek hatására csak akkor fog megállni a futtatás az adott ponton, ha a feltétel igaz. Ilyen feltétel lehet pl. az, hogy "a > 10". Ha akarjuk, akár meg is változtathatjuk egyes változók értékét itt, ezzel is közelebb kerülve a hibás működéshez! A változók helyenkénti megváltoztatása persze nem minden esetben biztonságos megoldás, viszont például egy sokszor ismétlődő ciklus esetében a ciklusmag állandó végrehajtásától a hajunkat téphetjük. Újrafuttatva a debuggert az már csak akkor áll meg, amikor a ciklus feltétele a feltételünknek megfelelő.

Előfordulhat, hogy akkor szeretnénk megállítani a programunkat, ha abban valahol kivétel keletkezett. Ehhez kattintsunk a breakpointra jobb klikkel, majd válasszuk a "more" opciót. Itt a + ikonra kattintva válasszuk ki a "Java exception breakpoints" opciót, majd kiválaszthatjuk milyen kivételre szeretnénk megállni. Ezután ha futtatjuk a programunkat és ilyen típusú kivételt kapunk, a programunk futása az adott ponton megáll.

Bevezetés a Java EE-be és a CDI-be (Contexts and Dependency Injection)

A Java EE technológia manapság igencsak megosztó, de igenis van jelene. Egyrészt sok alkalmazás épül Java EE technológiára. A Java EE folyamatosan fejlődik, érdemes figyelemmel követni az újdonságokat. Az érték az üzleti tudásban és funkciókban van.

A CDI (Contexts and Dependency Injection) térnyerése a Java EE-ben kulcsfontosságú. Már a 2.0 verzióját tartalmazza. Az EJB-k esetén az EJB-ket a típusuk alapján kellett annotálni, pl. @Stateless. Ezekre a problémákra próbál megoldást találni a CDI. A CDI tehát a Java EE komponens modellje. Próbálja egységesíteni a komponensmodellt.

A CDI bevezetése a Java EE 6-tal történt meg, és azóta a nagyvállalati Java fejlesztés egyik alappillérévé vált. A CDI alapvetően a függőségi injektálásra (dependency injection) és a kontextuskezelésre fókuszál. A CDI-vel kezelt "beans" (komponensek) Scope-pal rendelkeznek, azaz definiált az élettartamuk (pl. kérés, munkamenet, alkalmazás). Különböző életciklushoz vagy egyébhez köthető eseményekre lehet reagálni.

Ahhoz, hogy átlássuk, hogy merre tart a fejlődés, kidolgozták a MicroProfile szabványt. Ez tartalmazza a Java EE szabványok egy részét, és lehetővé teszi Cloud Native nagyvállalati alkalmazások fejlesztését.

A CDI Gyakorlatban

Mit jelent mindez egy legacy Java EE alkalmazás esetén? Az mindenképp a CDI alapos megismerése és bevezetése, ahol csak lehet. Lehetőséget biztosít az EJB-k kiváltására is. Érdemes először egyszerű POJO-kban (Plain Old Java Objects) gondolkodni, és mindent azokban megvalósítani. Ebből természetesen a dependency injection a legfontosabb.

Ha feltétlen szükség van valami általuk nyújtott szolgáltatásra, amit a CDI nem tud (pl. ütemezés), akkor használhatunk EJB-ket. Az implementáció CDI interceptorokkal valósítható meg. A POJO-khoz vagy CDI beanekhez a constructor injekctiont javasolja a szakma.

Tesztelés CDI Alkalmazások Esetén

Amikor integrált teszteket írunk, hogy a komponensek megfelelően működnek-e együtt, előfordulhat, hogy az Arquillian eszközbe botlunk bele. Az Arquilliant legtöbbször ún. in-container tesztelésre használják, ahol az alkalmazást egy konténerbe (pl. alkalmazásszerverbe) telepítik, majd ott futtatják a teszteket. Az Arquilliannal micro-deploymentet hozhatunk létre, azaz csak a teszteléshez szükséges komponenseket telepítjük. Ahhoz, hogy az alkalmazásunkat deployolni tudjuk egy alkalmazásszerverre, csomagot, archiv-ot kell létrehoznunk.

A CDI tulajdonságokkal ruházza fel, pl. futtassuk a teszteket. Nincs tranzakciónk, így transaction managerre van szükség. A @Inject annotációval injektálja. Természetesen egy entitást kezel. Nézzük is a tesztesetet. Weldet hozzáadva, a Hibernate-nek van beregisztrálva, hogy ezen keresztül kérje le az adatbázis kapcsolatot. A JTA kezeli az adatbázis kapcsolat tranzakcióját innentől kezdve.

Fejlesztői környezet beállítása

Java Alkalmazások Üzembe Helyezése: Az EAR Archívum és Maven Modulok

Ahhoz, hogy az alkalmazásunkat deployolni tudjuk egy alkalmazásszerverre, csomagot, archiv-ot kell létrehoznunk. Az EAR az Enterprise Archive rövidítése, és ha olyan csomagot szeretnénk, ami tartalmaz jar fájlokat, EJB modulokat - ezek szintén jar fájlok -, és opcionálisan egy war (WEB archive) fájlt is, akkor mindezt egy EAR-ba csomagolva már deployolhatjuk is a szerverre, akár deployment descriptorokkal megfűszerezve.

Egy tipikus projektstruktúra Maven modulokkal a következőképpen épülhet fel:

  1. Létrehozunk egy maven modul-t, legyen a neve example-shared. Ez a modul fogja tartalmazni azokat az interfészeket, amelyeket a későbbi backend és frontend moduljaink használni fognak. Például JPA-entitások, szolgáltatások interfészei. Egyedüli függősége a javax.javaee-api:6.0 legyen, provided scope-ban. Ezzel fordítás időben rendelkezésünkre áll majd minden Java EE 6 API.
  2. A következő lépésben hozzunk létre egy example-backend nevű modult. A modul függősége az example-shared modul lesz, így rendelkezésre állnak a JPA-entitásaink és a szolgáltatásinterfészek. Ebben a modulban implementáljuk a szolgáltatásokat, amelyek például az entitásokon keresztül az adatbázissal kommunikálnak.
  3. Hozzon létre egy example-frontend modult, amelynek szintén az example-shared lesz a függősége.

Tegyük fel, hogy szeretnénk skálázhatóvá tenni az alkalmazásunk üzleti logikáját. Egyszerűen hangzik, de nem minden esetben az. Sok a lehetőség, de sok a buktató is.

A Modern Java Fejlesztés: Bevezetés a Spring Bootba

A Spring Boot a Spring keretrendszer egyik modulja, amely célja, hogy leegyszerűsítse a Spring alapú alkalmazások fejlesztését. A Spring Boot segítségével gyorsan létrehozhatunk működő alkalmazásokat minimális konfigurációval. A Spring Boot automatikusan kezeli a konfigurációkat, beépített szervert biztosít (pl. Tomcat, Jetty).

A Spring egy olyan nyílt forráskódú projekt, amely korszerűsített, moduláris megközelítést biztosít az alkalmazások Java használatával való létrehozásához. A Spring-projektek termékcsaládja 2003-ban indult a korai Java-fejlesztés összetettségére adott válaszként, és támogatást nyújt a Java-alkalmazások fejlesztéséhez.

Spring Boot Jellemzők és Előnyök

A Spring Boot néhány fő funkciója:

  • Különálló alkalmazások: A Spring Boot segítségével olyan alkalmazásokat hozhat létre, amelyek nem kapcsolódnak egy adott platformhoz, és egy eszközön helyben futtathatók internetkapcsolat vagy más telepített szolgáltatások nélkül.
  • Beágyazott kiszolgálók: A Spring Boot lehetővé teszi olyan kiszolgálók közvetlen beágyazását, mint amilyen például a Tomcat, a Jetty vagy az Undertow.
  • Véleményezett megközelítés: A Spring Boot a véleményezett kiindulási függőségek megadásával leegyszerűsíti a buildek konfigurációját.
  • Automatikus konfigurálás: A Spring Boot, amikor csak lehetséges, automatikusan konfigurálja a Springet és más külső kódtárakat.
  • Éles üzemre kész funkciók: A Spring Boot olyan éles használatra kész funkciókat biztosít, mint amilyenek például a metrikák, az állapotellenőrzések és a külső konfiguráció.

A Spring Boot előnyei:

  • Csökkenti a fejlesztési időt, és növeli a hatékonyságot: A Spring Boot jelentősen megkönnyíti a Spring-alapú alkalmazások Javával való fejlesztését.
  • Csökkenti a sablonkódok, jegyzetek és XML-konfigurációk írásának szükségességét: A fejlesztőknek nem kell kódot létrehozniuk vagy XML-t konfigurálniuk.
  • Fejlesztői és tesztelési eszközöket biztosít: A Spring Boot parancssori felületi (CLI-) eszközével és beágyazott HTTP-kiszolgálóival rendkívül egyszerűvé válik a Spring-alapú alkalmazások fejlesztéséhez/teszteléséhez szükséges környezetek kialakítása.
  • Beépülő modulokat és eszközöket biztosít a fejlesztés megkönnyítéséhez: A Spring Boot beépülő modulokat biztosít a memórián belüli adatbázisokkal való munkához, továbbá más népszerű fejlesztésautomatizálási eszközöket is kínál, ilyen például az Apache Maven.

Spring és Spring Boot Összehasonlítás

A Spring-keretrendszer és a Spring Boot összehasonlítása az alábbi táblázatban látható:

Jellemző Spring-keretrendszer Spring Boot
Mi ez? Java-alapú, nyílt forráskódú webalkalmazás-keretrendszer. A Spring-keretrendszerre épülő bővítmény vagy modul.
Mire szolgál? Rugalmas, teljes mértékben konfigurálható, az előre összeállított kód eszközeit és kódtárait használó környezetet biztosít a testre szabott, lazán összekapcsolt webalkalmazások létrehozásához. Lehetővé teszi olyan önálló Spring-alkalmazások létrehozását, amelyek azonnal futtathatók jegyzetek, XML-konfiguráció vagy sok további kód írása nélkül.
Fő funkciója? Függőséginjektálás Automatikus konfigurálás
Beágyazott kiszolgálók? Nem. A Springben explicit módon kell beállítania a kiszolgálókat. Igen, a Spring Boot beépített HTTP-kiszolgálókat tartalmaz, ilyen például a Tomcat és a Jetty.
Hogyan van konfigurálva? A Spring-keretrendszer rugalmasságot biztosít, de a konfigurációját manuálisan kell létrehozni. A Spring Boot a Springet és más külső keretrendszereket a „konvencióalapú kódolás” alapértelmezett alapelvével konfigurálja automatikusan.
Tudnom kell XML-lel dolgozni? A Springben szükség van az XML-konfiguráció ismeretére. A Spring Boot nem igényel XML-konfigurációt.
CLI-eszközök? A Spring-keretrendszer önmagában nem biztosít CLI-eszközöket. Spring-modulként a Spring Boot rendelkezik egy CLI-eszközzel.
Megközelítés Vélemény nélküli Véleményezett

Tanulási Tippek és Erőforrások Kezdőknek

Miért tanulja meg a Java-t? A Java szinte a legjobb programozási nyelv, amelyet programozási útja során elkezdhet. Biztos, hogy nincs más programozási nyelv, amely szélesebb körű munkalehetőséget kínál, mint a Java? Tehát nem lehet munkanélküli, ha tudja, hogyan kell Java nyelven kódolni (65 986 állás az Egyesült Államokban a Glassdoor webhelye szerint).

Hatékony Tanulási Módszerek

Ha jól és gyorsan szeretne tanulni, és Java-ban kódolni, mint egy profi, keményen meg kell dolgozni érte. A Java programozás elsajátítása szórakoztató és egyszerű lehet, ha csak ismeri és alkalmazza a megfelelő módszereket. A tanulási eszközök használata és a folyamatos gyakorlás kulcsfontosságú.

  • CodeGym: A CodeGym-en elsajátíthatja a Java programozást kezdőknek. A platform kizárólag a Java programozásra összpontosít. Minden a kódolásról, kódolásról és kódolásról szól. Kezdje azzal, hogy egyszerre tanul és gyakorol, mindkettőt egyszerűen gamified formában.
  • Mobilalkalmazások: Néhány nagyszerű mobilalkalmazás, amellyel megtanulhatja, a Kickstart Java és a Java programozási útmutató.
  • Oktatóvideók: Az oktatóvideók megtekintése szintén nagyszerű módja a Java programozási nyelv elsajátításának. A Youtube-on nagyszerű kurzusokat találhat, például Java oktatóanyagot kezdőknek vagy Bevezetés a Java programozásba.
  • Hálózatépítés más tanulókkal: Sokkal gyorsabb módja annak, hogy elmélyítse készségeit, ha hálózatot épít ki azokkal, akik Java-programozást is tanulnak. A Java Programing Forum és az Oracle Community két fő platform, amelyhez csatlakozni kell.

Tippek Jó Java Kód Írásához Kezdőként

Ha kezdőként jó Java kódokat szeretne írni, vegye figyelembe a következő tippeket:

  • Először értse meg az alapokat.
  • Ne siessen mindent egyszerre megtanulni.
  • Dobja le a felesleges tárgyakat.
  • Ne felejtse el lefoglalni a memóriát.
  • Használja a Java szabványos könyvtárát.
  • Válasszon egy primitív osztályt.
  • Kódoljon naponta.
  • Soha ne hagyja abba a kódolást.

tags: #cdi #java #alapok #mi #az #bevezetés