tifyty

pure Java, what else ?

Java interjú kérdés, eszelős szívatás / 1

Hány tömb indexet lehet egy változó után írni? Írhatok a[1][1][1][1]....[1] akárhány tömb indexet?

A türelmetlenek kedvéért elmondom: maximum 255 index lehet.

A még türelmetlenebbek kedvéért, akik mint a kismalac a gödörben nem hajlandók várni: kit érdekel?

Tulajdonképpen nekik van igazuk, hacsak nem akarjuk a Java nyelvet célnyelvként használni, azaz valamilyen bemenetről arra fordítani. Persze ez sem lehetetlen, és Java 6, 7 stb. óta a fordító is része a Java környezetnek, akár le is fordíthatjuk a generált kódot, és be is tölthetjük és meg is hívhatjuk azonnal. (Lásd még https://github.com/verhas/jscglib és https://github.com/verhas/jscc ha ilyesmire vágysz.)

Valójában azonban ebbe a 255-ös határba nem nagyon fogunk gyakran beleütközni. Magam sem kerültem szembe ezzel a limitációval éles helyzetben, és ha eszembe is jutott, hogy van-e rá limit, valószínűleg elhessegettem a gondolatot azzal, hogy a Java normális nyelv (az is) és a fordító számára rendelkezésre álló memórián kívül nincs más limit. És valóban, a Java nyelvben, mint absztrakt, a JLS által definiált programozási nyelvben valóban nincs ilyen limit. De a megvalósításban van. Ha nagyon szigorú akarok lenni, akkor azt is mondhatom, hogy a SUN/ORACLE Java megvalósítás nem felel meg a szabványnak. No de ez teljesen akadémikus, és értelmetlen lenne, még ha igaz is.

Történt azonban, hogy a JVM specifikációt olvastam, és ott elébem került az array létrehozás byte kódja és ott bizony a dimenziók száma 1 bájton van tárolva. Akkor pedig …

5 responses to “Java interjú kérdés, eszelős szívatás / 1

  1. Mefi október 23, 2013 8:51 du.

    Az ilyen jellegű kérdések azok, amiknél legszívesebben felállnék és kimennék a szobából, ha tényleg feltennék egy állásinterjú során. Érdekes és jó tudni, ha utolsó, amolyan “nem sokat számít, de hátha” kérdésnek teszik fel, azzal nincsen gond, de alapjában véve nem egy ilyen kérdés megválaszolása határozza meg, hogy egy fejlesztő alkalmas-e a pozíció betöltésére.

    (Az persze más kérdés, hogy arra kiváló lehet, hogy olvasgatja-e a specifikációt, érdekli-e mi van azon eszközök és módszerek mögött, amit minden nap használ.)

  2. Király Péter október 31, 2013 10:44 du.

    Az Oracle Press által kiadott OCA Java SE 7 Programmer I Study Guide-ban felhívják erre a figyelmet: “The Java Language specification does not place a limit on the number of dimensions that an array can have. However the Java virtual machine (JVM) specification does place a practical limit of 256 dimensions.” Más kérdés, hogy ki az, aki minden efféle, a valós életben soha nem használt részletet képes megjegyezni.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: