Anar al contingut

Java (llenguage de programació)

De L'Enciclopèdia, la wikipedia en valencià


Java és un llenguage de programació i una plataforma informàtica que va ser comercialisada per primera volta en 1995 per Sun Microsystems.[1][2]

El llenguage de programació Java va ser desenrollat originalment per James Gosling, de Sun Microsystems (constituïda en 1983 i posteriorment adquirida el 27 de giner de 2010 per la companyia Oracle),[3] i publicat en 1995 com un component fonamental de la plataforma Java de Sun Microsystems. La seua sintaxis deriva en gran mida de C i C++, pero té menys utilitats de baix nivell que qualsevol d'ells. Les aplicacions de Java són compiladas a bytecode (classe Java), que pot eixecutar-se en qualsevol màquina virtual Java (JVM) sense importar l'arquitectura de la computadora subjacent.

La companyia Sun va desenrollar l'implementació de referència original per als compiladorés de Java, màquines virtuals i llibreries de classes en 1991, i les va publicar per primera volta en 1995. A partir de maig de 2007, en compliment de les especificacions del Procés de la Comunitat Java, Sun va tornar a llicenciar la majoria de les seues tecnologies de Java baixe la Llicencia Pública General de GNU. Uns atres han desenrollat també implementacions alternes a estes tecnologies de Sun, tals com el Compilador de Java de GNU i el GNU Classpath.

Java va guanyar popularitat poc despuix del seu llançament i ha segut un llenguage de programació popular des de llavors.[4]  Java va ser el tercer llenguage de programació més popular en 2022 segons GitHub.[5]  Encara que seguix sent molt popular, hi ha hagut una disminució gradual en l'us de Java en els últims anys, a mida que atres llenguages que utilisen JVM guanyen popularitat.[6]

Història

[editar | editar còdic]
Logotip "get powered"

Java es va crear com una ferramenta de programació per a ser usada en un proyecte de set-top-box en una chicoteta operació denominada the Green Project en Sun Microsystems en 1991. L'equip (green team), compost per tretze persones i dirigit per James Gosling, va treballar durant 18 mesos en Sand Hill Road, Menlo Park (Califòrnia), per a desenrollar-ho.

El llenguage es va denominar inicialment Oak (per un roure que hi havia fora de l'oficina de Gosling), després va passar a cridar-se green, despuix de descobrir que Oak era ya una marca comercial registrada per a adaptadors de targetes gràfiques, i finalment se li renombró Java.[7]


Algunes fonts senyalen que el nom podria tractar-se d'un acrònim, com les inicials dels seus dissenyadors, James Gosling, Arthur Van Hoff i Andy Bechtolsheim, o, senzillament, Just Another Vague Acronym (‘simplement un atre acrònim ambigu més’). També, està l'hipòtesis de que prové d'un tipo de café disponible en una cafeteria propenca, d'ahí que l'icon de Java siga una tassa de café calent;[7] un fet que dona força a esta teoria és que els quatre primers bytes (el número mágico) dels archius .class que genera el compilador són en hexadecimal 0xCAFEBABE. A pesar de tot, el nom sembla haver segut triat d'entre una llista de paraules aleatòries seleccionades per l'equip.[8]

Els objectius de Gosling eren implementar una màquina virtual i un llenguage en una estructura i sintaxis similar a C++. Entre juny i juliol de 1994, despuix d'una sessió maratoniana de tres dies entre John Gage, James Gosling, Patrick Naughton, Wayne Rosing i Eric Schmidt, l'equip reorientó la plataforma cap a la Web. Varen sentir que l'arribada del navegador web Mosaic propiciaria que Internet es convertira en un mig interactiu, com el que pensaven era la televisió per cable. Naughton va crear llavors un prototip de navegador, WebRunner, que més vesprada seria conegut com HotJava.

En 1994, se'ls va fer una demostració de HotJava i la plataforma Java als eixecutius de Sun. Java 1.0a va poder descarregar-se per primera volta en 1994, pero va caldre esperar al 23 de maig de 1995, durant les conferències de SunWorld, a que veren la llum pública Java i HotJava, el navegador Web. L'acontenyiment va ser anunciat per John Gage, el director científic de Sun Microsystems. L'acte va estar acompanyat per una chicoteta sorpresa adicional, l'anunci per part de Marc Andreessen, vicepresident eixecutiu de Netscape, de que Java seria soportat en els seus navegadors. El 9 de giner de l'any següent, 1996, Sun va fundar el grup empresarial JavaSoft per a que s'encarregara del desenroll tecnològic. Dos semanes més tarde la primera versió de Java va ser publicada.[9]

La promesa inicial de Gosling era Write Once, Run Anywhere (Escriu-ho una volta, eixecuta-ho en qualsevol lloc), proporcionant un llenguage independent de la plataforma i un entorn d'eixecució (la JVM) llauger i gratuït per a les plataformes més populars, de manera que els binarios (bytecode) de les aplicacions Java pogueren eixecutar-se en qualsevol plataforma.

L'entorn d'eixecució era relativament segur, i els principals navegadors web pronte varen incorporar la possibilitat d'eixecutar applets Java incrustades en les pàgines web.

Java ha experimentat numerosos canvis des de la versió primigènia, JDK 1.0, aixina com un enorme increment en el número de classes i paquets que componen la biblioteca estàndar.[10]

Versions

[editar | editar còdic]

Des de J2SE 1.4, l'evolució del llenguage ha segut regulada per el JCP (Java Community Process), que usa Java Specification Requests (JSRs) per a propondre i especificar canvis en la plataforma Java. El llenguage en sí mateixa està especificat en la Java Language Specification (JLS), o Especificació del Llenguage Java. Els canvis en els JLS són gestionats en JSR 901.[11]

  • JDK 1.0 (23 de giner de 1996) — Primer llançament.[12]
  • JDK 1.1 (19 de febrer de 1997) — Principals adició incloses:[13]
    • una reestructuració intensiva del model d'events AWT (Abstract Windowing Toolkit)
    • classes internes (inner classes)
    • JavaBeans
    • JDBC (Java Database Connectivity), per a l'integració de bases de senyes
    • RMI (Remote Method Invocation)
  • J2SE 1.2 (8 de decembre de 1998) — Nom clau Playground. Esta i les següents versions varen ser arreplegades baix la denominació Java 2 i el nom «J2SE» (Java 2 Platform, Standard Edition) va reemplaçar a JDK per a distinguir la plataforma base de J2EE (Java 2 Platform, Enterprise Edition) i J2ME (Java 2 Platform, Micro Edition). Atres millores afegides incloïen: comunicat de prensa[14]
  • J2SE 1.3 (8 de maig de 2000) — Nom clau Kestrel. Els canvis més notables varen ser: comunicat de prensa[15] llista completa de canvis[16]
  • J2SE 1.4 (6 de febrer de 2002) — Nom clau Merlin. Est va ser el primer llançament de la plataforma Java desenrollat baix el Procés de la Comunitat Java com JSR 59. Els canvis més notables varen ser: comunicat de prensallistacompleta de canvis
    • Paraula reservada assert (Especificat en JSR 41.)
    • Expressions regulars modelades a l'estil de les expressions regulars Perl
    • Encadenación d'excepcions Permet a una excepció encapsular l'excepció de baix nivell original.
    • senar-blocking NIO (New Input/Output) (Especificat en JSR 51.)
    • Logging API (Specified in JSR 47.)
    • API I/O per a la llectura i escritura d'imàgens en formats com JPEG o PNG
    • Parser XML integrat i processador XSLT (JAXP) (Especificat en JSR 5 i JSR 63.)
    • Seguritat integrada i extensions criptográficas (JCE, JSSE, JAAS)
    • Java Web Start inclós (El primer llançament va ocórrer en març de 2001 per a J2SE 1.3) (Especificat en JSR 56.)
  • J2SE 5.0 (30 de setembre de 2004) — Nom clau: Tiger. (Originalment numerat 1.5, esta notació encara és usada internament.[2]) Desenrollat baix JSR 176, Tiger va afegir un número significatiu de noves característiques comunicat de prensa
    • Plantilles (genèrics) — proveïx conversió de tipos (type safety) en temps de compilació per a coleccions i elimina la necessitat de la majoria de conversió de tipos (type càsting). (Especificat per JSR 14.)
    • Metadatos — també cridats anotacions, permet a estructures del llenguage com les classes o els métodos, ser etiquetats en senyes adicionals, que puguen ser processats posteriorment per utilitats de procés de metadatos. (Especificat per JSR 175.)
    • Autoboxing/unboxing — Conversió automàtiques entre tipos primitius (Com els int) i classes d'envoltura primitives (Com Plantilla:Javadoc:SE). (Especificat per JSR 201.)
    • Enumeracions — la paraula reservada enum crea una typesafe, llista ordenada de valors (com Dia.LUNES, Dia.MARTES, etc.). Anteriorment, açò solament podia ser portat a terme per constants sanceres o classes construïdes manualment (enum pattern). (Especificat per JSR 201.)
    • Varargs (número d'arguments variable) — L'últim paràmetro d'un método pot ser declarat en el nom del tipo seguit per tres punts (i.g. void drawtext(String... lines)). En la cridada al método, pot usar-se qualsevol número de paràmetros d'eixe tipo, que seran almagasenats en un array per a passar-los al método.
    • Bucle for millorat — La sintaxis per al bucle for s'ha estés en una sintaxis especial per a iterar sobre cada membre d'un array o sobre qualsevol classe que implemente Plantilla:Javadoc:SE, com la classe estàndar Plantilla:Javadoc:SE, de la següent forma:
 void displayWidgets (Iterable<Widget> widgets) {
     for (Widget w : widgets) {
         w.display();
     }
 }

Este eixemple itera sobre l'objecte Iterable widgets, assignant, en orde, cada u dels elements a la variable w, i cridant al método display() de cada u d'ells. (Especificat per JSR 201.)

  • Java SE 6 (11 de decembre de 2006) — Nom clau Mustang. Va estar en desenroll baix la JSR 270. En esta versió, Sun va canviar el nom «J2SE» per Java SE i va eliminar el «.0» del número de versió.[3] Està disponible en https://java.sun.com/javase/6/. Els canvis més importants introduïts en esta versió són:
    • Inclou un nou marc de treball i API que fan possible la combinació de Java en llenguages dinàmics com PHP, Python, Ruby i JavaScript.
    • Inclou el motor Rhino, de Mozilla, una implementació de Javascript en Java.
    • Inclou un client complet de Servicis Web i soporta les últimes especificacions per a Servicis Web, com JAX-WS 2.0, JAXB 2.0, STAX i JAXP.
    • Millores en l'interfaç gràfic i en el rendiment.
  • Java SE 7 — Nom clau Dolphin. En l'any 2006 encara es trobava en les primeres etapes de planificació. El seu llançament va ser en juliol de 2011.
    • Soport per a XML dins del propi llenguage.
    • Un nou concepte de superpaquete.
    • Soport per a closures.
    • Introducció d'anotacions estàndar per a detectar fallos en el software.
  • No oficials:
    • NIO2.
    • Java Module System.
    • Java Kernel.
    • Nova API per al maneig de Dies i Dates, la qual reemplaçarà les antigues classes Dona't i Calendar.
    • Possibilitat d'operar en classes BigDecimal usant operants.
  • Java SE 8 — llançada en març de 2014. cal destacar:
    • Incorpora de forma completa la llibreria JavaFX.
    • Diferents millores en seguritat.
    • Diferents millores en concurrència.
    • Afig funcionalitat per a programació funcional per mig d'expressions Lambda.
    • Millora l'integració de JavaScript.
    • Noves API per a maneig de dates i temps (dona't - clave).
  • Java SE 9 — llançada el 21 de setembre del 2017.
  • Java SE 10 — llançada el 20 de març de 2018.
  • Java SE 11 — llançada el 25 de setembre de 2018.
  • Java SE 12 — llançada el 19 de març de 2019.
  • Java SE 15 — llançada el 15 de setembre de 2020.
  • Java SE 16 — llançada el 18 de març de 2021.[17]
  • Java SE 17 — llançada el 14 de setembre de 2021. Va tindre soport fins a setembre de 2024 i té soport estés fins a setembre de 2029 en ser una versió LTS (Long Term Support - Soporte a llarc determini).[18]
  • Java SE 18 — llançada el 22 de març de 2022.[19]
  • Java SE 19 — llançada el 20 de setembre de 2022.[20]
  • Java SE 20 — llançada el 21 de març de 2023.[21]
  • Java SE 21 — llançada el 19 de setembre de 2023. Té soport fins a setembre de 2028 i soport estés fins a setembre de 2031 en ser una versió LTS (Long Term Support - Soporte a llarc determini).[22]
  • Java SE 22 — llançada el 19 de març de 2024.[21]
  • Java SE 23 — llançada el 17 de setembre de 2024.[23]
  • Java SE 24 — llançada el 18 de març de 2025.[24]
  • Java SE 25 — llançada el 16 de setembre de 2025. Té soport fins a setembre de 2030 i soport estés fins a setembre de 2033 en ser una versió LTS (Long Term Support - Soporte a llarc determini).[25]

En el 2005 es calculava en 4,5 millons el número de desenrolladors i 2500 millons de dispositius habilitats en tecnologia Java.

Filosofia

[editar | editar còdic]

El llenguage Java es va crear en cinc objectius principals:

  1. Deuria usar el paradigma de la programació orientada a objectes.
  2. Deuria permetre l'eixecució d'un mateix programa en múltiples sistemes operatius.
  3. Deuria incloure per defecte soporte per a treball en ret.
  4. Deuria dissenyar-se per a eixecutar còdic en sistemes remots de forma segura.
  5. Deuria ser fàcil d'usar i prendre lo millor d'atres llenguages orientats a objectes, com a C++.

Per a conseguir l'eixecució de còdic remot i el soport de ret, els programadors de Java a voltes recorren a extensions com CORBA (Common Object Request Broker Architecture), Internet Comunication Engine o OSGi, respectivament.

Orientat a objectes

[editar | editar còdic]

La primera característica, orientat a objectes («OO»), es referix a un método de programació i al disseny del llenguage. Encara que hi ha moltes interpretacions per a OO, una primera idea és dissenyar el software de manera que els distints tipos de senyes que usen estiguen units a les seues operacions. Aixina, les senyes i el còdic (funcions o métodos) es combinen en entitats anomenades objectes. Un objecte pot vore's com un paquet que conté el «comportament» (el còdic) i el «estat» (senyes). El principi és separar allò que canvia de les coses que permaneixen inalterables. Freqüentment, canviar una estructura de senyes implica un canvi en el còdic que opera sobre els mateixos, o viceversa. Esta separació en objectes coherents i independents oferix una base més estable per al disseny d'un sistema software. L'objectiu és fer que grans proyectes siguen fàcils de gestionar i manejar, millorant com a conseqüència la seua calitat i reduint el número de proyectes fallancs.


Una atra de les grans promeses de la programació orientada a objectes és la creació d'entitats més genèriques (objectes) que permeten la reutilisació del software entre proyectes, una de les premisses fonamentals de l'Ingenieria del Software. Un objecte genèric «client», per eixemple, deuria en teoria tindre el mateix conjunt de comportament en diferents proyectes, sobretot quan estos coincidixen en certa mida, alguna cosa que sol succeir en les grans organisacions. En este sentit, els objectes podrien vore's com a peces reutilisables que poden amprar-se en múltiples proyectes distints, possibilitant aixina a l'indústria del software construir proyectes d'envergadura amprant components ya existents i de comprovada calitat, conduint açò finalment a una reducció dràstica del temps de desenroll. Podem usar com a eixemple d'objecte l'alumini. Una volta definits senyes (densitat, maleabilidad, etc.), i el seu «comportament» (soldar dos peces, etc.), l'objecte «alumini» pot ser reutilisat en el camp de la construcció, de l'automòvil, de l'aviació, etc.

La reutilisació del software ha experimentat resultats dispars, trobant dos dificultats principals: el disseny d'objectes realment genèrics és pobremente comprés, i falta una metodologia per a l'àmplia comunicació d'oportunitats de reutilisació. Algunes comunitats de «còdic obert» (open source) volen ajudar en este problema donant mijos als desenrolladors per a disseminar l'informació sobre l'us i versatilitat d'objectes reutilisables i biblioteques d'objectes.

Independència de la plataforma

[editar | editar còdic]

La segona característica, l'independència de la plataforma, significa que programes escrits en el llenguage Java poden eixecutar-se igualment en qualsevol tipo d'hardware. Aixina resa l'axioma de Java: «write onze, run anywhere» que traduït a l'espanyol és: escriu una volta, eixecuta en qualsevol part.

Per a això, es compila el còdic font escrit en llenguage Java, per a generar un còdic conegut com «bytecode» (específicament Java bytecode), instruccions màquina simplificades específiques de la plataforma Java. Esta peça està «a mig camí» entre el còdic font i el còdic màquina que entén el dispositiu destí. El bytecode és eixecutat llavors en la màquina virtual (JVM), un programa escrit en còdic natiu de la plataforma destine (que és el que entén el seu hardware), que interpreta i eixecuta el còdic. Ademés, se suministren biblioteques adicionals per a accedir a les característiques de cada dispositiu (com els gràfics, eixecució per mig de bri o threads, l'interfaç de ret) de forma unificada. Es deu tindre present que, encara que hi ha una etapa explícita de compilació, el bytecode generat és interpretat o convertit a instruccions màquina del còdic natiu pel compilador JIT (Just In Clave).

Hi ha implementacions del compilador de Java que convertixen el còdic font directament en còdic objecte natiu, com GCJ. Açò elimina l'etapa intermija a on es genera el bytecode, pero l'eixida d'este tipo de compiladors solament pot eixecutar-se en un tipo d'arquitectura.

La llicència sobre Java de Sun insistix que totes les implementacions siguen «compatibles». Açò va donar lloc a una disputa llegal entre Microsoft i Sun, quan este últim va alegar que l'implementació de Microsoft no donava soport als interfaços RMI i JNI ademés d'haver afegit característiques ‘’depenents’’ de la seua plataforma. Sun va demandar a Microsoft i va guanyar per danys i perjuïns (uns 20 millons de dólars), aixina com una orde judicial forçant el acatamiento de la llicència de Sun. Com a resposta, Microsoft no oferix Java en la seua versió de sistema operatiu, i en recents versions de Windows, el seu navegador Internet Explorer no admet l'eixecució de applets sense un conector (o plugin) aparte. No obstant, Sun i atres fonts oferixen versions gratuïtes per a distintes versions de Windows.


Les primeres implementacions del llenguage usaven una màquina virtual interpretada per a conseguir la portabilitat. No obstant, el resultat eren programes que s'eixecutaven comparativament més llents que aquells escrits en C o C++. Açò va fer que Java es guanyara una reputació de llent en rendiment. Les implementacions recents de la JVM donen lloc a programes que s'eixecuten considerablement més ràpit que les versions antigues, amprant diverses tècniques, encara que seguix sent molt més llents que atres llenguagescita requerida.

La primera d'estes tècniques és simplement compilar directament en còdic natiu com fan els compiladors tradicionals, eliminant l'etapa del bytecode. Açò dona lloc a un gran rendiment en l'eixecució, pero tapa el camí a la portabilitat. Una atra tècnica, coneguda com a compilació JIT (Just In Clave, o «compilació al vol»), convertix el bytecode a còdic natiu quan s'eixecuta l'aplicació. Atres màquines virtuals més sofisticades usen una «recompilación dinàmica» en la que la VM és capaç d'analisar el comportament del programa en eixecució i recompila i optimisa les parts crítiques. La recompilación dinàmica pot conseguir major grau d'optimisació que la compilació tradicional (o estàtica), ya que pot basar el seu treball en el coneiximent que de primera mà té sobre l'entorn d'eixecució i el conjunt de classes carregades en memòria. La compilació JIT i la recompilación dinàmica permeten als programes Java aprofitar la velocitat d'eixecució del còdic natiu sense per això perdre la ventaja de la portabilitat en abdós.

La portabilitat és tècnicament difícil de conseguir, i l'èxit de Java en eixe camp ha segut dispar. Encara que és de fet possible escriure programes per a la plataforma Java que actuen de forma correcta en múltiples plataformes de distinta arquitectura, el gran número d'estes en menuts errors o inconsistencias duen a que a voltes es parodie l'eslògan de Sun, «Write onze, run anywhere»¡ com «Write onze, debug everywhere» (o ‘Escriu-ho una volta, eixecuta-ho en qualsevol part’ per ‘Escriu-ho una volta, depura-ho en tots els llocs’).

El concepte d'independència de la plataforma de Java conte, no obstant, en un gran èxit en les aplicacions en l'entorn del servidor, com els Servicis Web, els Servlets, els Java Beans, aixina com en sistemes empotrats basats en OSGi, usant entorns Java empotrats.

El recolector de fem

[editar | editar còdic]
Vore també: Recolector de fem

En Java el problema de fugues de memòria s'evita en gran mida gràcies a la recolecció de fem (o automatic garbage collector). El programador determina quàn es creen els objectes, i l'entorn, en temps d'eixecució de Java (Java runtime), és el responsable de gestionar el cicle de vida dels objectes. El programa, o atres objectes, poden tindre localisat un objecte per mig d'una referència a est. Quan no queden referències a un objecte, el recolector de fem de Java borra l'objecte, lliberant aixina la memòria que ocupava prevenint possibles fugues (eixemple: un objecte creat i únicament usat dins d'un método solament té entitat dins d'est; en eixir del método l'objecte és eliminat). Aixina i tot, és possible que es produïxquen fugues de memòria si el còdic almagasena referències a objectes que ya no són necessaris; és dir, poden encara ocórrer, pero en un nivell conceptual superior. En definitiva, el recolector de fem de Java permet una fàcil creació i eliminació d'objectes i major seguritat.

Vore també

[editar | editar còdic]

Referències

[editar | editar còdic]
  1. «Programming Language Espanyol». Archivat des d'el original, el 16 de giner de 2025. Consultat el 16 de giner de 2026/5.
  2. «TIOBE Programming Community Index». Consultat el 6 de maig de 2025.
  3. Sun and Oracle (Oracle.com)
  4. «Don’t call it a comeback: Why Java is still champ» (en en). GitHub. Consultat el 2025-05-22.
  5. «The top programming languages» (en en-gb). The State of the Octoverse. Consultat el 2025-05-22.
  6. «[1]». Consultat el 2025-05-22 (en en-US).
  7. 7,0 7,1 «Baix why did they decidix to call it Java?» (en en-us). InfoWorld. Consultat el 2025-05-22.
  8. «Jonathan Schwartz's Blog: Different Isn't Always Better, But Better's Always Different». Blogs.sun.com. Archivat des d'el original, el 5 de setembre de 2009. Consultat el 24 de setembre de 2010.
  9. «SUN MICROSYSTEMS ANNOUNCES FORMATION OF JAVASOFT» (en en-us). www.sun.com. Archivat des d'el original, el 2006-12-31. Consultat el 2026-06-15.
  10. M. Domínguez-Dorat,. Tot Programació. Nº 8. Págs. 39-42. Editorial Iberprensa (Madrit). DL M-13679-2004. Febrer, 2005.
  11. «JSR 63: JavaTM API for XML Processing 1.1».
  12. «JAVASOFT SHIPS JAVA 1.0». web.archive.org. Consultat el 2025-05-22.
  13. «Explore Oracle Hardware» (en en-us). www.oracle.com. Archivat des d'el original, el 2025-05-21. Consultat el 2025-05-22.
  14. «12/8/98 - SUN DELIVERS NEXT VERSION OF THE JAVA PLATFORM». www.sun.com. Archivat des d'el original, el 2002-06-07. Consultat el 2026-06-15.
  15. «05/08/00 - SUN MICROSYSTEMS RELEASES FASTEST CLIENT-SIDE JAVA[tm PLATFORM TO DATE]». www.sun.com. Archivat des d'el original, el 2000-12-02. Consultat el 2026-06-15.
  16. «New Features». java.sun.com. Archivat des d'el original, el 2006-11-07. Consultat el 2026-06-15.
  17. Redacció Oracle, Oracle anuncia Java 16, 18 de març de 2021.
  18. «JDK 17». openjdk.org. Consultat el 2025-12-30.
  19. «Notes de la versió JDK 18». oracle.com. Consultat el 2025-12-30.
  20. «JDK 19». openjdk.org. Consultat el 2025-12-30.
  21. 21,0 21,1 «JDK 20». openjdk.org. Consultat el 2025-12-30.
  22. «JDK 21». openjdk.org. Consultat el 2025-12-30.
  23. «JDK 23». openjdk.org. Consultat el 2025-12-30.
  24. «JDK 24». openjdk.org. Consultat el 2025-12-30.
  25. «JDK 25». openjdk.org. Consultat el 2025-12-30.

Bibliografia

[editar | editar còdic]
  • Tim Lindholm i Frank Yellin. The Java Virtual Machine specification, segona edició. Addison-Wesley, 1999. ISBN 0-201-43294-3.


Referències

[editar | editar còdic]