1. melléklet
És még
Közös hibák
Kérdés: Van-e globális változó Java-ban?
Válasz: Java-ban nincsenek globális változók. A globális változók tulajdonságaihoz legközelebb álló statikus osztályváltozók. Ezeket az osztálynév segítségével érik el, például Math.PI.
Kérdés: Belső osztályokat használhatok a Java-ban.
Válasz: Lehet. Ebben az esetben a belső osztályfájl neve a fordítás után fog kinézni: External Class $ InternalClass.class.
Kérdés: Hogyan jelennek meg a Java a függvény paraméterei - érték, mutató vagy hivatkozás alapján?
Válasz: A szabványtípusok paramétereit érték szerint adják át. Tárgyak - hivatkozás alapján. A mutatónak nincs átvitele Java-ban.
Kérdés: Ha nincsenek mutatók Java-ban, akkor néha egy NullPointerException is dobható.
Válasz: A Java-mutatók "az alsó szinten" vannak - a virtuális gép szintjén. A programozók számára nincs hozzáférésük. Egy NullPointerException eldobásra kerül, ha nem létező objektum érhető el (azaz a változót deklarálták és az objektumot nem hozták létre). Például:
String s;
int n = s.hossz ();
Kérdés: Miért a Java nyelven? amely új memóriaelosztási művelettel rendelkezik. nincs törlés memória művelet. mint például a C ++.
Válasz: A Java nyelvben a programozó megszabadul a memória független kezelésétől. Az objektumok tárolásához itt van egy bizonyos memóriahely, amelyet egy halomnak neveznek. A halom mérete korlátozott. A Java virtuális gép automatikus "szemétgyűjtést" hajt végre - a memória visszaszerzésének folyamata az olyan objektumok által elfoglalt helyeken, amelyekre már nincs szükség a rendszer számára, és új objektumokhoz való felkészítésre. Nem lehet hívni a szemétgyűjtőt. A programozó csak kérést küldhet a szemétgyűjtés elindításához a System objektum gc módszerével. Valójában a szemétgyűjtés a rendszerhez megfelelő időben történik meg.
Kérdés: Lehetséges-e felülbírálni a +, -, *,%, stb. Műveleteket Java-ban?
Válasz: Lehetetlen. A kivétel csak a + műveletre vonatkozik, amely a String osztályra van definiálva, és egy string összefűzés.
Válasz: A képosztály grafikus fájlokkal dolgozik.
- Először be kell jelentenie egy változót:
- Másodszor tölts fel egy képet:
- Harmadszor, a grafikus környezet segítségével jelenítse meg a képet a képernyőn:
Kérdés: Hogyan tudok képet megjeleníteni egy grafikus fájlban egy ablakalkalmazásban?
Válasz: Ez az Image osztály használatával történik. mint az applet esetében. Különlegessége az Applet osztálytól eltérően. amelyben a getImage módszer megvalósul. ha egy adott fájlból betöltődik a kép, a Frame vagy a Window osztályok nem rendelkeznek ilyen módszerekkel. Ez a feladat megoldható a Toolkit osztály (eszköz környezet) objektumának segítségével.
Toolkit toolkit = Toolkit.getDefaultTookit ();
Ezt követően letöltheti a képet a megadott fájlból, például:
Kép im = toolkit.getImage ("example.gif");
Az így létrejövő im már betölthető a vászonba, hogy további elhelyezést biztosítson az ablakban. Egyébként a vászon a BorderLayout elrendezéskezelő használatával történő elhelyezésekor a vásznat a középpontba kell helyezni. Ellenkező esetben a vászon nem lesz látható az ablakban. Kérdés: Hogyan kerülhető el a "villódzás" a gyakori újrafestés a kép az applet?
Válasz: Ebben az esetben a "virtuális ablak" technológiáját gyakran használják. Ehhez a BufferedImage osztályt használják. amely lehetővé teszi a RAM-ban egy "virtuális ablak" létrehozását, ahol az összes kimenő információ megjelenik. Egyes pillanatok alatt a képet át kell másolni az igazi ablakba. Így a munka sorozata a következő lesz:
- Csatlakoztatjuk a szükséges csomagot
- Az applet osztályban új változókat ismertetünk:
- Az applet init eljárásában létre kell hoznia egy virtuális ablakot és egy kompatibilis grafikus környezetet:
- Minden további kimenet a imageGr kontextusában készült. például,
- Abban a pillanatban, amikor át kell adni a virtuális ablak tartalmát az igazi ablakba, az applet festési módjában a következő funkciót kell megadni az igazi ablak kontextusának
- És végül, a legfontosabb titka az update () metódus felülbírálása. Valójában, még akkor is, ha ezt a módszert nem szerepelted a programodban, már létezik (implicit módon) - és mindössze annyit kell tennie, hogy tisztítsa a képernyőt, mielőtt átírná. Az egész keretet azonban teljes egészében kicseréljük, így a képernyőkép tisztítása egyszerűen nem szükséges. És még káros is - mert villogni fog (mivel a képernyő először törlődik, és csak akkor tölthető ki új keretgel). És hogy megszabaduljunk ettől, a módszert az alábbiak szerint definiáljuk:
Kérdés: Hogyan lehet a servleteket és a JSP-szkripteket megfelelően létrehozni az orosz betűket tartalmazó HTML-kódot?
Válasz: A servletnek meg kell adnia az ügyfélnek küldött adatok kódolását: Ha egy JSP szkriptet használ, akkor a szkriptbe kell beírnia a következő sort:
Kérdés: Hogyan lehet a servleteket és a JSP forgatókönyveket helyesen elküldeni a HTML űrlapból?
Válasz: A HTML formátumú paraméterek általában az "ISO-8859-1" kódolásban kerülnek továbbításra. Ezért, miután megkapta a paramétert, azt újra kell kódolni, például a "Cp1251" kódolásba. Ezt a transzkódust a String osztály egyik szerkesztője végzi el. például:
Közös hibák
Ne felejtsd el. hogy hozzon létre egy Applet osztályt az Applet-ből. nyilvános hozzáférési típusnak és a fájl nevének megfelelő névnek kell lennie.
Ne felejtsd el kifejezetten új parancsokkal létrehozni az objektumokat. Bizonyos esetekben az objektumok implicit módon hozhatók létre - például a hozzárendelés során:
String s = "Tanulás Java";
vagy valamilyen funkción belül:
Grafika g = getGraphics ();
Minden más esetben használja az új parancsot. A nem létező objektumhoz tartozó hívás NullPointerException-ot dob
- A csomagot a JRE kiterjesztési könyvtárba kell helyezni. azaz a C: \ j2sdk1.4.0 \ jre \ lib \ ext;
- vagy ezt a fájlt bármelyik könyvtárba teheti, és összekapcsolhatja a JCreator tulajdonságokkal. Válassza a "Konfigurálás" - "Beállítások" menüpontot. akkor a "JDK profilok" sor. válassza ki a profilt, és kattintson a "Szerkesztés" gombra. Ezután a megjelenő ablakban adja hozzá a kívánt archívumot vagy könyvtárat.